ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp メンバーのログインの問題

thinkphp メンバーのログインの問題

WBOY
WBOYオリジナル
2016-06-23 14:18:381205ブラウズ

うーん、これは AdminAction コードです。何が起こっているのかわかりません。ユーザー名またはパスワードが間違っているというメッセージが表示されます。どうしたの?


ディスカッションへの返信(解決策)

データベース内のSQL文のクエリ結果に問題がないか確認します。

SQL が正しいと確信していますか? ?

<?phpsession_start();header('Content-Type:text/html; charset=utf-8');class AdminAction extends Action{      public function index(){	  if(isset($_POST['username'])){	        if(isset($_POST['username'])&&isset($_POST['password'])){			    $db=M();				$select=$db->query("select * from developers where username=".$POST['username']." and password=".$_POST['password']."");				if($select){				    $_SESSION['admin']=$_POST['username'];					$this->redirect('Index/index','',2,'用户'.$_POST['username'].'登录成功!');                 }else{					$this->redirect('Index/index','',2,'用户名或者密码不正确');					}				}else{				    $this->redirect('Index/index','',2,'用户名或密码不能为空!');					}					}					$this->display();					}	    	}	?>

SQL が正しいと確信していますか? ?

"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"


あなたのしたように変更しましたが、新しい問題が発生しました。つまり、何も入力されておらず、ユーザーが正常にログインしたことが表示され、その後、何を入力しても、ユーザー名またはパスワードが正しくない。これ。 。 。どうしたの?

クエリ操作の後に追加します: echo $db->getLastSql();exit; SQL ステートメントを出力して結果を確認します。

クエリ操作の後に追加します: echo $db->getLastSql();exit; SQL ステートメントを出力して結果を確認します。

これを使用して問題が発生しました。何を入力してもユーザー名は印刷できませんが、パスワードは問題ありません。どこで間違いを犯したかわかりませんでした

クエリ操作の後に、次のコードを追加します。SQL ステートメントを出力するだけで、結果がわかります。
これを使用して問題が発生しました。何を入力してもユーザー名は印刷できませんが、パスワードは問題ありません。どこで間違えたのか分かりませんでした

クエリ操作の後に追加します。 SQL を出力します。結果を知るためのステートメント。
これを使用して問題が発生しました。何を入力してもユーザー名は印刷できませんが、パスワードは問題ありません。どこを間違えたのか分かりませんでした
フォームの name 属性に間違いはありませんか
もちろん、間違っているはずはありません。 。 。どうすればそのような低レベルの間違いを犯すことができますか...


クエリ操作の後に追加します: echo $db->getLastSql();exit; SQL ステートメントを出力するだけで、結果がわかります。
これを使用して問題が発生しました。何を入力してもユーザー名は印刷できませんが、パスワードは問題ありません。どこを間違えたのか分かりませんでした
フォームの name 属性に間違いはありませんか
もちろん、間違っているはずはありません。 。 。どうすればそのような低レベルの間違いを犯すことができますか...

あなたのパスワードには MD5 がありませんか?

データベースに md5 はありますが、クエリには md5 がありませんか?

ユーザー名があるかどうかを確認するには、$_POST を直接印刷できます

ユーザー名があるかどうかを確認するには、$_POST を直接印刷できます

まず、パスワードはmd5です。データベースには md5 もあります。直接印刷してもユーザー名は表示されません。パスワードは出力できますが、ユーザー名は出力できません

まず post 値を取得して確認し、次に SQL を出力して、SQL を実行して結果セットが返されるかどうかを確認します。

ブラウザの Cookie を確認してください

username='".$POST['username']."'

問題は見つかりましたか?

username='".$_POST['username']."'

問題はありましたか? SQLは正しいですか? ?

すごいです

あなたはそれを見つけましたが、彼らもそれを見つけませんでした...
それは $select= であるはずです。 $db->query("開発者から選択します。ユーザー名 = ".$_POST['ユーザー名']." およびパスワード = ".$_POST['パスワード'].""); SQLは正しいですか? ?
すごいです
あなたはそれを見つけましたが、彼らもそれを見つけませんでした...
それは $select= であるはずです。 $db->query("開発者から * ユーザー名 = ".$_POST['ユーザー名']." およびパスワード = = ".$_POST['パスワード'].""); .$_POST['username']."'この種類 すべての場所を一重引用符で囲む必要があります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。