http://www.w3schools.com/php/func_mysql_real_escape_string.aspのチュートリアルを実行した後、ログインコードをより安全にするために、手動でチュートリアルを実行しました が、次のエラーが表示されます。
警告:mysql_num_rows()は、パラメーター1がリソースであると想定しています。ブール値は/home/content/58/9508458/html/pabrowser/checklogin.phpの32行目にあります。
警告:ヘッダー情報を変更できません-/home/content/58/9508458/html/pabrowser/checkloginの(/home/content/58/9508458/html/pabrowser/checklogin.php:32で開始された出力)によって既に送信されたヘッダー。 46行目のphp
ログインしていません
<?php
function check_input($value)
{
// Stripslashes
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Quote if not a number
if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
$link = mysql_connect('xxxxxxx');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("brainoidultrafb", $link);
// username and password sent from form
$myusername=check_input($_POST['myusername']);
$mypassword=check_input($_POST['mypassword']);
$sql="SELECT * FROM logintbl WHERE stu_email='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_start();
$_SESSION['username'] = $myusername;
$_SESSION['password'] = $mypassword;
header("location:login_success.php");
}
else {
header('Location: http://www.xxxxxx.com/pabrowser/index.php?succmsg1=INVALID.RETRY');
}
?>
それをより安全にするための提案はありますか?