Avatar billede tobrukDk Novice
26. oktober 2012 - 04:36 Der er 1 løsning

check både brugernavn og email samme tid

Hej


Det 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?..
Avatar billede tobrukDk Novice
27. oktober 2012 - 18:22 #1
Det virker nu,
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester