Hey Leute,
ich habe mal wieder ein kleines Problemchen.
In einem Registrierungsformular validiere ich die Felder mittels des formvalidation.io Plugins. Nun möchte ich, dass eben bereits registrierte Emails sich nicht noch einmal Anmelden können.
Dazu habe ich folgendes gefunden:
LINK
Mein Code sieht wie folgt aus:
checkUsername.php
anhand des Echos sehe ich aber, dass die $_GET schonmal richtig ankommt. Weiter...
Die Klasse:
Und zu guter letzt, dass Problem-Kind glaube ich:
Der loggt nämlich nichts in der Konsole. Gibt mir aber auch keinen Fehler aus, folglich gehe ich davon aus, dass da gar nix zurück kommt irgendwie ?!
Hoffe ihr könnt mir weiterhelfen.
Bis dahin!
LG
ich habe mal wieder ein kleines Problemchen.
In einem Registrierungsformular validiere ich die Felder mittels des formvalidation.io Plugins. Nun möchte ich, dass eben bereits registrierte Emails sich nicht noch einmal Anmelden können.
Dazu habe ich folgendes gefunden:
LINK
Mein Code sieht wie folgt aus:
checkUsername.php
Code:
$db = @new mysqli('localhost', '***', '***', '***');
require 'checkUsername.class.php';
$config = array('DB' => $db,
'Table' => 'usr_users',
'Row' => 'reg_email',
'Output' => true,
'Format' => 'JSON');
$usernameChecker = new usernameChecker($config);
echo $_GET['mail'];
if(isset($_GET['mail']) && strlen($_GET['mail']) > 3) {
$usernameChecker->check($_GET['mail']);
}
anhand des Echos sehe ich aber, dass die $_GET schonmal richtig ankommt. Weiter...
Die Klasse:
Code:
<?php
class usernameChecker {
private $db;
private $table;
private $row;
private $output;
private $format;
public function __construct($config) {
if(!is_array($config)) trigger_error('NO CONFIG');
$isset = isset($config['DB'], $config['Table'], $config['Row']);
if(!$isset) trigger_error('CONFIG NOT VALID');
$this->format = (isset($config['Format']) && ($config['Format'] === 'JSON')) ? 'json' : 'default';
$this->output = (isset($config['Output']) && ($config['Output'] === true)) ? true : false;
$this->db = $config['DB'];
$this->table = $config['Table'];
$this->row = $config['Row'];
}
public function check($username) {
$exist = false;
$sql = '
SELECT
COUNT(*)
FROM
'.$this->table.'
WHERE
'.$this->row.' = ?';
$stmt = $this->db->prepare($sql);
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($exist);
$stmt->fetch();
$stmt->close();
$exist = (bool)$exist;
if($this->format === 'json') $exist = json_encode($exist);
if($this->output === true) {
echo $exist;
return;
}
return $exist;
}
// ENDE DER KLASSE
}
?>
Und zu guter letzt, dass Problem-Kind glaube ich:
Code:
(...)
(window.jQuery));
;(function($){
$.fn.bootstrapValidator.validators.mailfrei = {
html5Attributes: {
message: 'message'
},
validate: function(validator, $field, option){
var mail = $field.val();
//console.log(mail);
console.log(mail.length);
$.getJSON('script/checkUsername.php', { mail: mail, nocache : Math.random()*Math.random() }, function(data) {
if(data) {
console.log("ja");
return false;
} else {
console.log("mhhh");
return true;
}
});
}
}
}
(...)
Der loggt nämlich nichts in der Konsole. Gibt mir aber auch keinen Fehler aus, folglich gehe ich davon aus, dass da gar nix zurück kommt irgendwie ?!
Hoffe ihr könnt mir weiterhelfen.
Bis dahin!
LG