php
1<?php 2//入力されたユーザー名とパスワードを元に、ユーザーが存在するか確認する 3 4function check_user($username,$password){ 5 $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; 6 $result = mysqli_query($query); 7 8//クエリ実行の戻り値がflaseでなければ、クエリ実行自体は正常 9if ($result !== false) { 10 //取得したレコード数が1以上ならログイン成功 11$rows = mysqli_num_rows($result); 12if ($rows >= 1) { 13 # code... 14 return true; 15} 16} 17return false; 18} 19 20//POSTの場合は、ログインチェック 21if (strtolower($_SERVER['REQUEST_METHOD']) === 'post'){ 22 # code... 23 $conn = mysqli_connect('127.0.0.1', 'root', 'root'); 24 $db = mysqli_select_db($conn,'users'); 25 $result = check_user($_POST['username'],$_POST['password']); 26 if ($result === true) { 27 echo '<span style="color:#0000ff">ログインに成功しました。</span>' ; 28 }else{ 29 echo'<span style="color: #ff0000">ログインに失敗しました。</span>'; 30 } 31 mysqli_close($conn); 32 exit(); 33} 34?> 35 36//ログインフォームを表示する 37header('Content-type: text/html; charaset=utf-8'); 38echo <<<EOF 39<html> 40 <head> 41 <title>ログイン画面</title> 42 <meta http-equiv="content-type" content=text/html; charaset=utf-8 /> 43 </head> 44 <body> 45 <filedset> 46 <legend>ログインフォーム</legend> 47 <form action="sql_injection_01.php" method="post"> 48 ユーザー名<input type="text" name="username" value =""/><br /> 49 パスワード<input type="text" name="password" value =""/><br /> 50 <input type="submit" value="ログインする" /> 51 </form> 52 <filedset> 53 </body> 54 </html> 55 EOF;
これを実行することで、 Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /Applications/MAMP/htdocs/sql_injection_01.php:23 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/sql_injection_01.php on line 23
とでてきます。たすけてください。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。