Я все еще новичок и пытаюсь изучить php. У меня есть форма, и каждый раз, когда я запускаю ее, я получаю сообщение об ошибке, что переменная не была установлена, когда они должны быть. Я определенно чего-то не хватает. Пожалуйста, объясните, почему почему переменная $ _POST ['login_button'] не установлена в первый раз, когда я запускаю страницу?Не задано при первом открытии страницы
Код можно найти ниже:
<?php
require 'connect.inc.php';
if (isset($_POST['login_button']) && isset($_POST['username']) && isset($_POST['password'])){
$login_button = $_POST['login_button'];
$username = $_POST['username'] ;
$password = $_POST['password'];
$password_hash = md5($_POST['password']);
if(!empty($username)&&!empty($password)){
$sql = "SELECT `id` FROM `golden_acres_username` WHERE `uname`='$username' AND '".$password_hash."'";
if($sql_run = mysql_query($sql)){
$query_num_rows = mysql_num_rows($sql_run);
}
if($query_num_rows==0){
echo'User name and password are incorrect';
}
else if($query_num_rows==1)
{
echo 'Username and password are correct';
}
}
else
{
echo 'Please fill in user name and password';
}
}
else
{
echo'Fields are not set';
}
?>
<form class="home_logon_area" action="test.php" method="POST">
Username:
<input type="text" name="username" />
Password:
<input type="password" type="password" name="password"/>
<input type="submit" name="login_button">
</form>
Спасибо заранее,
Джозеф
Если форма не отправлена, это правильно отразится на ней, и вы должны заполнить ее. По крайней мере, код такой. Поместите 'if (! Isset ($ _ POST ['login_button'])) {...' в правильные строки. Но я боюсь, что вы не сможете. – djot
В первый раз, когда я запускаю код, я получаю сообщение о том, что «Поля не установлены (последняя строка моего php-кода), однако я бы хотел удалить это и установить переменные в первую очередь. – joebegborg07
** Построение SQL-операторов с внешними переменными позволяет полностью открыть атаки SQL-инъекций. ** Кроме того, любые входные данные с одинарными кавычками в нем, такие как имя «O'Malley», взорвут ваш SQL запрос. Пожалуйста, узнайте об использовании параметризованных запросов, желательно с модулем PDO, для защиты вашего веб-приложения. У http://bobby-tables.com/php есть примеры, чтобы вы начали, и [этот вопрос] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php) имеет много примеров. –