2017-01-27 32 views
-1

Ich möchte überprüfen, ob ein Benutzer bereits existiert. Ich habe den folgenden Code gemacht, aber es funktioniert nicht. Die echo in der checkUser ist nur zu sehen, wenn es in der if Klausel springt.Überprüfen Sie, ob ein Benutzername bereits existiert

Ich hoffe, jemand kann mir helfen, ich weiß nicht, was zu tun ist.

+0

die einzige Möglichkeit, dies würde fehlschlagen würde sein, dass Ihr gesamter Code fehlgeschlagen ist. –

+1

Bei jeder Verwendung von [mysql_'] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) Datenbankerweiterung im neuen Code ** [ ein Kätzchen wird irgendwo in der Welt erdrosselt] (http://2.bp.blogspot.com/-zCT6jizimfI/UjJ5UTb_BeI/AAAAAAAACgg/AS6XCd6aNdg/s1600/luna_getting_strangled.jpg) ** es ist veraltet und ist seit Jahren und ist weg für immer in PHP7. Wenn Sie nur PHP lernen, verbringen Sie Ihre Energie mit dem Lernen der Datenbankerweiterungen und vorbereiteten Anweisungen 'PDO' oder' mysqli'. [Start hier] (http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

Sie meinen die Datenbankverbindung? –

Antwort

0

kann ich die folgenden Probleme mit Ihrem code--

  1. Sie haben sehen keine Datenbankverbindung hergestellt.

  2. Sie sollten überprüfen, ob die Variablen $ _POST verfügbar sind oder nicht. Das ist der Versuch, if (isset) -Funktion zu verwenden, um es zu überprüfen.

  3. Verwenden Sie vorbereitete Anweisungen, da diese sicherer sind.

1

Ich empfehle Ihnen, die PDO-Bibliothek zu verwenden. Für Ihr Problem ist die beste Lösung, den Benutzernamen in der Tabelle als PRIMATY KEY oder mit einem UNIQUE CONSTRAINT zu haben. Wenn Sie versuchen, zweimal den gleichen Benutzernamen einzugeben, löst die Abfrage eine Ausnahme aus (oder gibt false zurück, je nachdem, wie Sie sie festgelegt haben). Dies ist einfacher.

0

vor allem ur Code ist anfällig für SQL-Injektionen. Wrapped die Formulardaten mit der Funktion.

<?php 

//function to prevent sql injections 
function validateFormData($formData) { 
    $formData = trim(stripslashes(htmlspecialchars(strip_tags(str_replace(array('(', ')'), '', $formData)), ENT_QUOTES))); 
    return $formData; 
} 
$email = validateFormData($_POST['email']); 
$username = validateFormData($_POST['username']); 
$password = validateFormData($_POST['password']); 
$checkUserID = mysql_query("SELECT * 
          FROM users 
          WHERE username = '$username'"); 

if (mysql_num_rows($checkUserID) >= 1) { 
    //echo "User id exists already."; 
    echo "testststst"; 

    while ($row = mysqli_fetch_assoc($checkUserID)){ 
     //set some variables to save some data 
     $usernameD = $row['username']; 


    } 

      //compare form username with db username{ 

    if($usernameD === $username){ 
     echo "Username already taken"; 
    }else{ 

     //continue the rest... 

    } 


} 

?> 
Verwandte Themen