check både brugernavn og email samme tid
HejDet er sådan at jeg få også hjælp her ;http://www.udvikleren.dk/forum/39015/check-brugernavn-og-email/#msg187068
Det skal være sådan at den check op på både brugernavn og email, som det ser ud nu så siger den ligemeget hvad om admin og jesper@jesper.dk er optaget så siger den bare "Tilgængelig" ligemeget hvad.
Men hvis jeg valge at prøve at opret en brugernavn med det navn og email så har jeg gjort sådan at den skal finde ude af det ligemeget hvad.
sådan ser min kode ud til javascript/ajax
<script type="text/javascript">
// man skal escape / i end tag, afh validator, her vist ved <\/span>
function CheckUserName(username){
if(username.length > 3){
var url = "ajax_check_username.php";
var params = "brugernavn="+ username +"&rand="+Math.random();
http = new XMLHttpRequest();
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
http.onreadystatechange = function () {
if(http.readyState == 4 && http.status == 200 ){
var val = parseInt(http.responseText);
var html=(val > 0) ? '<span class="red">Brugernavn er optaget!<\/span>' : '<span class="green">Tilgængelig Brugernavn!<\/span>';
document.getElementById('availability_status_username').innerHTML = html;
}
}
}
else{
document.getElementById('availability_status_username').innerHTML = '<font color="#cc0000">Brugernavn for kort</font>';
}
}
function CheckUserEmail(email){
if(email.length > 3){
var url = "ajax_check_email.php";
var params = "email="+ email +"&rand="+Math.random();
http = new XMLHttpRequest();
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.send(params);
http.onreadystatechange = function () {
if(http.readyState == 4 && http.status == 200 ){
var val = parseInt(http.responseText);
var html=(val > 0) ? '<font color="red">optaget!</font>' : '<font color="Green">Tilgængelig</font>';
document.getElementById('availability_status_email').innerHTML = html;
}
}
}
else{
document.getElementById('availability_status_email').innerHTML = '<font color="#cc0000">for kort</font>';
}
}
</script>
Sådan her ser min html ude;
<tr>
<td><p>Email</p></td>
<td><input type="email" name="email" id="email" onblur="CheckUserEmail(this.value)"></td>
<td><span id="availability_status_email"></span></td>
</tr>
<tr>
<td><p>Brugernavn</p></td>
<td><input type="text" name="brugernavn" id="brugernavn" onblur="CheckUserName(this.value)" ></td>
<td><span id="availability_status_username"></span></td>
</tr>
Sådan her ser min check ud til brugernavn og email dog skal det siges at de ikke er i samme file.
Navn til den her file : ajax_check_username.php
<?php
require_once ("inc/db/db.php");
require_once ("inc/functions.php");
$conn=MySqlIConnOOP();
$brugernavn = $_POST["brugernavn"];
$status = IsUsernameCreated($conn, $brugernavn);
echo ($status >0)? 1 : $status;
?>
Navn til den her file : ajax_check_email.php
<?php
require_once ("inc/db/db.php");
require_once ("inc/functions.php");
$conn=MySqlIConnOOP();
$email = $_POST["email"];
$status = IsUserEmailCreated($conn, $email);
echo ($status >0)? 1 : $status;
?>
Min functions.php ser sådan her ude
<?php
function MySqlIConnOOP(){
$conn = new mysqli("localhost", "", "", "");
if (!$conn) {
echo 'Der opsod en fejl.';
exit();
}
$conn->set_charset("utf8");
return $conn;
}
// retunerer 0 eller brugerens id (tal størrer end 0)
function IsUsernameCreated($mysqli, $username){
if(@$stmt = $mysqli->prepare("SELECT `id` FROM `bruger` WHERE `brugernavn` = ? ")){
/* bind parameters for markers */
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($id);
$stmt->fetch();
$status = ($id >0) ? $id : 0;
$stmt->close();
}
else $status = -1;
return $status;
}
// retunerer 0 eller brugerens id (tal størrer end 0)
function IsUserEmailCreated($mysqli, $email){
if(@$stmt = $mysqli->prepare("SELECT `id` FROM `bruger` WHERE `email` = ? ")){
/* bind parameters for markers */
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($id);
$stmt->fetch();
$status = ($id >0) ? $id : 0;
$stmt->close();
}
else $status = -1;
return $status;
}
?>
Jeg har valgt at gøre sådan at jeg har slette mit brugernavn og password til min database da jeg ikke ønsker andre skal vide det eller ligne ;)
når Jeg prøve at opret den via bare php hvor den bare sige Tilgængelig lige meget hvad jeg gøre osv. så har jeg gjort sådan med email at den finder ude af det for mig og hvis jeg skrive noget som er i databasen kommer den frem og siger det om den er opret eller ej.
Så det jeg tænker det er at det kan være noget med ajax/js da den siger det forkert ellers kan det være noget med min functions.php eller ligne i den still
Du er meget mere endnu velkommen til at spørger hvis der er noget som du gerne vil vide?..
