我还是个新手,想要学习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>
感谢,
约瑟夫
如果表单没有提交,它回应正确,你应该填写someting。至少代码是这样的。把'if(!isset($ _ POST ['login_button'])){...'放在正确的行。但我担心你不能。 – djot
第一次运行代码时,我收到消息说'没有设置字段(我的php代码的最后一行),但是我想删除它并将变量设置在第一位。 – joebegborg07
**通过构建带有外部变量的SQL语句,您可以全面开放SQL注入攻击。**此外,任何带有单引号的输入数据,如名称“O'Malley”,都会炸毁您的SQL查询。请了解使用参数化查询(最好是使用PDO模块)来保护您的Web应用程序。 http://bobby-tables.com/php有例子让你开始,并且[这个问题](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in- php)有很多例子的细节。 –