2016-04-16 8 views
1

Ich habe Probleme, zu überprüfen, theses diese zwei Eingänge uname und passwod. Ich kann einen selbst zur Arbeit bringen, aber ich bekomme immer einen Fehler, wenn ich versuche, sie beide wieder hoch zu geben.Website Validierung mit PHP nicht funktioniert?

<?php 
// define variables and set to empty values 
$usernameErr=""; 
$passwordErr=""; 
$username= ""; 
$password=""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 

    if (empty($_POST["uname"])) 
     { 
     $usernameErr = " username is required <br>"; 
     print $usernameErr; 
     } 

    else 
     { 
     $username = checkUserData($username); 
     } 


    if (empty($_POST["passwd"])) 
     { 
     $passwordErr = " password is required <br>"; 
     print $passwordErr; 
     } 

    else 
     { 
     $password = checkUserData($password); 
     } 
    } 

hier waren, ist das Problem. Ich gehe hinunter, um die Daten zu überprüfen, um Angriffe zu stoppen. Ich habe mehrere Wege ausprobiert, um sie zusammenzufügen, aber alles ist gescheitert.

function checkUserData($username) 
{ 
    $username = htmlspecialchars($username); 
    $username = trim($username); 
    $username = stripslashes($username); 
    return $username; 
} 

function checkUserData($password) 
{ 
    $password = htmlspecialchars($password); 
    $password = trim($password); 
    $password = stripslashes($password); 
    return $password; 
} 

Ich drucke nur um zu überprüfen, ob es funktioniert.

print ("welcome " .checkUserData($_POST["uname"])); 
print ("welcome " .checkUserData($_POST["passwd"])); 
?> 

Jede Hilfe wäre toll.

+2

Sie erkennen, dass Sie 2 identische Funktionen mit dem gleichen Namen haben .... Versuchen Sie, eine von ihnen zu entfernen. –

+0

Entfernen Sie einfach eines; – itzmukeshy7

+1

Und in den beiden anderen Fällen verwenden Sie Variablen, die "leer" sind; – itzmukeshy7

Antwort

0

Beide Funktionen werden das gleiche tun sie so verallgemeinern

function SanitizeData($var) 
{ 
    $var= htmlspecialchars($var); 
    $var= trim($var); 
    $var= stripslashes($var); 
    return $var; 
} 

Jetzt in Ihrem Prüfprozess Aufruf

$username = SanitizeData($_POST["uname"]); 

Oder

$password = SanitizeData($_POST["passwd"]); 

Obwohl diese sanitization unnötig ist im schlimmsten Fall am besten und zerstörend, wenn y Wenn Sie diese Felder in einer Abfrage verwenden, ist es besser, eine parametrisierte Abfrage und die PDO-Datenbankerweiterung zu verwenden.

Verwandte Themen