ホームページ >バックエンド開発 >PHPチュートリアル >この php ログイン コードは常に失敗します。関連する質問がある場所を参照してください

この php ログイン コードは常に失敗します。関連する質問がある場所を参照してください

WBOY
WBOYオリジナル
2016-06-13 12:53:53950ブラウズ

この php ログイン コードは常に失敗します。どこに問題があるのか​​見てください。

<?php<br />
<br />
 session_start();<br />
 $conn=mysql_connect("localhost","admin","admin") or die ("数据库链接错误".mysql_error());<br />
 mysql_select_db('member',$conn) or die("选择数据库有错".mysql_error());<br />
<br />
 define(ALL_PS, "php123");<br />
<br />
if($_POST[submit])<br />
{<br />
$username=str_replace(" ","",$_POST[username]);<br />
$sql="select * from user_list where 'username' ='$username'";<br />
$query=mysql_query($sql);<br />
$ps = $us ? md5($_POST[password].ALL_PS)==$row[password] : FALSE;<br />
<br />
if($ps){<br />
	$_SESSION[uid]=$row[uid];<br />
	$_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);<br />
	echo "ok";<br />
}else{<br />
	echo "no";<br />
}<br />
<br />
}<br />
<br />
?><br />
<br />
<form action="" method="post""><br />
用户:<input type="text" name="user" /><br /><br />
密码:<input type="password" name="password" /><br /><br />
<input type="submit" name="submit" value="tttt" /><br />
</form><br />




常に「いいえ」を出力します


-----解決策---------
if($ps){ ? ?
コードでは $ps が true になる可能性がないため、 no
のみを出力できます。
$ps に値を割り当てるコード内の唯一の場所は
です。 $ps = $us md5($_POST[パスワード].ALL_PS)==$row[パスワード] : FALSE;
$us には値が割り当てられていないため、$ps には FALSE
のみを指定できます
if($_POST[送信])
{
$username=str_replace(" ","",$_POST[ユーザー名]);
$sql="select * from user_list where 'username' ='$username'";
$query=mysql_query($sql);
$ps = $us md5($_POST[パスワード].ALL_PS)==$row['パスワード'] : FALSE;
次のように書く必要があります:
if($_POST['submit'])<br />
{<br />
$username=str_replace(" ","",$_POST['username']);<br />
$sql="select * from user_list where `username` ='$username'";<br />
$query=mysql_query($sql);<br />
$row = mysql_fetch_assoc($query);<br />
$ps = $row['username'] ? md5($_POST['password'].ALL_PS)==$row[password] : FALSE;<br />


-----解決策---------
$sql=" select * user_list より 'ユーザー名' ='$username'";

一重引用符を削除します。
------解決策----------------------
ユーザー" />

$_POST['ユーザー名']

これら 2 つは同じように書かれています
-----解決策---------
$sql=" select * from user_list where 'username' ='".$username."'";
-----解決策------ -
var_dump($row); データがあるかどうかを確認します
-----解決策----- --
コードに複数のエラーがある可能性があります
一つ一つ試しても原因は見つかりません。 。 。
var_dump を使用すると、値を段階的に出力し、結果を確認できます
私たちは考えられる原因の分析をお手伝いするだけです
-----解決策----------------------
引用:
echo var_dump($row); 結果出力: bool(false)

次のコード行に問題があるでしょうか?

PHP コード?1234$username=str_replace(" ","",$_POST[username]);$sql="select * from user_list where 'username' ='$username'";$query……
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。