-1

log.php に値パスを送信する html ページがあります。

<?php 
$PHONE = $_POST['pass'];

mysql_connect('host.com', 'user', 'pass'); mysql_select_db('userdb');  

$results = mysql_query(sprintf("SELECT FNAME,LNAME FROM `details` WHERE PASS='$PASS'",
mysql_real_escape_string($PASS))) or die(mysql_error()); while($row = mysql_fetch_assoc($results))
{ $rows[1] = $row; }
echo "Welcome ";
echo "$rows[1][FNAME]." ".$rows[1][LNAME]"
echo " you are logged in successfully"

?>

値「pass」がデータベースに登録されていない場合、次の形式で log.php ファイルに結果を取得します。

Welcome [//here user's first & last name if registered or remains blank] you are logged in successfully

テーブル「詳細」を作成しました

FNAME-First name
LNAME-Lastname
BIRTHDAY-Birthday
PHONE- user's no.
PASS- user's password.

私の質問は、パス値がデータベースに登録されていないときに「あなたは登録ユーザーではありません」と表示したいということです。

4

3 に答える 3

1

実際にレコードを取得するかどうか、またはmysql_num_rowsを使用していないかどうかを確認してください。

$results = mysql_query(sprintf("SELECT FNAME,LNAME FROM `details` WHERE PASS='$PASS'",
           mysql_real_escape_string($PASS))) or die(mysql_error());
if(mysql_num_rows($results) > 0){
   while($row = mysql_fetch_assoc($results))
   { 
      $rows[1] = $row; 
   }
   echo "Welcome ";
   echo $rows[1]['FNAME']." ".$rows[1]['LNAME'];
   echo "You are logged in successfully";
}
else{
    //Redirect them back with error message
    header("Location: http://www.example.com/index.php?err='You are not registered user'");
}

注: 新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりに準備済みステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事は、どちらを決定するのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-06-24T06:15:12.863 に答える
0
if(empty($rows[1][FNAME])){
    echo 'You are not registered user';
}
else{
    echo "Welcome ";
    echo "$rows[1][FNAME]." ".$rows[1][LNAME]";
    echo " you are logged in successfully";
}
于 2013-06-24T06:15:01.280 に答える
0

パスワードの $phone 変数で値を取得し、選択クエリで PASS= $PASS を使用したので、どのように実行できますか?

これを変更して、以下のように実行します。

$results = mysql_query(sprintf("SELECT FNAME,LNAME FROM `details` WHERE PASS='$PHONE'",
mysql_real_escape_string($PHONE))) or die(mysql_error());
于 2013-06-24T06:32:09.670 に答える