2016-04-16 8 views
1

私はあまりにも2つの入力をunameとpasswodをチェックしようとしている問題を抱えています。私は自分自身で動作するようになることができますが、私は両方のバックアップを渡すときにエラーが発生し続けます。PHPのWebサイト検証は機能していませんか?

<?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); 
     } 
    } 

ここに問題があります。私は攻撃を止めるためにデータをチェックするために渡しています。私はそれらを一緒に結合する複数の方法を試みたが、すべてが失敗した。

これは機能していることを確認するために印刷しています。

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

助けがあれば助かります。

+2

同じ名前の同一機能が2つあることに気が付いていますが、そのうちの1つを削除してみてください。 –

+0

ただ1つを削除してください。 – itzmukeshy7

+1

そして 'else'の両方の場合、変数は空です。 – itzmukeshy7

答えて

0

両方の関数はので、それらをあなたのチェック処理の呼び出しで今すぐ

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

を一般と同じことをやっている

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

またはこのサニタイズがで不要ですが

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

yならば最悪で最善で破壊的これらのフィールドをクエリで使用する場合は、パラメータ化されたクエリとPDOデータベース拡張を使用する方がよいでしょう。

関連する問題