ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp メンバーのログインの問題
うーん、これは AdminAction コードです。何が起こっているのかわかりません。ユーザー名またはパスワードが間違っているというメッセージが表示されます。どうしたの?
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(); } } ?>
"select * from developers where username='".$POST['username']."' and password='".$_POST['password']."'"
クエリ操作の後に追加します: 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']."'この種類 すべての場所を一重引用符で囲む必要があります