Я все еще новичок в php и стараюсь учиться. У меня есть следующий код, и переменные $ username и password не установлены, и я на 99% уверен, что с ними ничего не случилось.PHP переменная не установлена
Можете ли вы посоветовать мне, что я могу сделать, чтобы решить эту проблему. Каждый раз, когда я запускаю скрипт, я получаю имя пользователя и пароль, которые не задают сообщение (задано с инструкцией if).
<?php
require 'connect.inc.php';
if (isset($_POST['login_button'])&&($_POST['username'])&&($_POST['password'])){
$login_button = $_POST['login_button'];
$username = $_POST['username'];
$password = $_POST['password'];
$password_hash = md5($password);
if(!empty($username)&&!empty($password)){
$sql = "SELECT `id` FROM `golden_acres_username` WHERE `uname`='$username' AND `password`='$password_hash'";
if($sql_run = mysql_query($sql)){
$query_num_rows = mysql_num_rows($sql_run);
}
if($query_num_rows==0){
echo mysql_result($sql_run);
}
else if($query_num_rows==1){
echo 'ok';
}
} else {
echo 'You must supply a username and a password.';
}
}
else {
echo $array;
echo 'Username and password are not set';
}
?>
<form class="home_logon_area" action="" method="POST">
<table border="0">
<tr><td colspan="2">Username: </td></tr>
<tr><td colspan="2"><input type="text" class="text_field" name="username" size="30"/></td></tr>
<tr><td colspan="2">Password: </td></tr>
<tr><td colspan="2"><input type="password" class="text_field " type="password" name="password" size="30"/></td></tr>
<tr><td valign="top"><a class="home_content_link_form" href="no_password.html"> Forgor Password </a></td>
<td align="right" rowspan="2"><input type="submit" name="login_button" id="login_button" value="Login"/></td></tr>
<tr><td><a class="home_content_link_form" href="register.php"> Register </a></td></tr>
</table>
</form>
?>
Спасибо заранее,
Джозеф
FYI, вы широко открыты для [инъекции SQL] (HTTP : //stackoverflow.com/q/60174) –
Я новое просто обучение. Я уверен, что позже смогу подробно остановиться на безопасности. На данный момент, если вы можете помочь мне в этом, это будет здорово :) – joebegborg07
FYI, а) вы больше не должны использовать расширение MySQL (предпочитаете MySQLi или PDO, как с подготовленными инструкциями), b) вы не должны использовать 'md5()' для хеширования паролей (предпочитайте bcrypt или scrypt). – ComFreek