php - 简单的 PHP + MySQL 表单不起作用

标签 php mysql

好吧,最近我看了一个教程,并用 Notepad++ 编写了代码。我正在尝试一个简单的 MYSQL 登录/注册表单,但是当我登录时,它给了我我写的“Wrong U/P”错误回显。它将数据库中的所有内容保存为 md5 和其他内容。这是我的代码。

注册.php

<?php
require('config.php');

if(isset($_POST['submit'])){

//Preform the verification of the nation
$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];

if($email1 == $email2) {
if($pass1 == $pass2) {
//All good.  Carry on.


$name = mysql_escape_string($_POST['name']);
$lname = mysql_escape_string($_POST['lname']);
$uname = mysql_escape_string($_POST['uname']);
$email1 = mysql_escape_string($_POST['email1']);
$email2 = mysql_escape_string($_POST['email2']);
$pass1 = mysql_escape_string($_POST['pass1']);
$pass2 = mysql_escape_string($_POST['pass2']);

$pass1 = md5($pass1);


$sql = mysql_query("SELECT * FROM `users` WHERE `uname` = '$uname'");
if(mysql_num_rows($sql) > 0) {
echo "Sorry, that user already exists!";
exit();
}

mysql_query("INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name',  '$lname',  '$uname',  '$email1',  '$pass1')");




}else{
echo "Sorry, your passwords do not match<br><br>";
exit();

}
}else{
echo "Sorry, your emails do not match.<br><br>";

}






}else{

$form = <<<EOT
<form action="register.php" method="POST">
First Name: <input type="text" name="name" /><br />
Last Name: <input type="text" name="lname" /><br />
Username: <input type="text" name="uname" /><br />
Email: <input type="text" name="email1" /><br />
Confirm Email: <input type="text" name="email2" /><br />
Password: <input type="password" name="pass1" /><br />
Confirm Password: <input type="password" name="pass2" /><br />
<input type="submit" value="Register" name="submit" />
</form>
EOT;

echo $form;

}

?>

登录.php

<?php
require('config.php');

if(isset($_POST['submit'])){
$uname = mysql_real_escape_string($_POST['uname']);
$pass = mysql_real_escape_string($_POST['pass']);
$pass = md5($pass);

$sql = mysql_query("SELECET * FROM `users` where `uname` = '$uname' and `pass` = '$pass'");
if(mysql_num_rows($sql) > 0){
echo "You are now logged in.";


exit();
}else{
echo "Wrong U/P combination";
}


}else{
$form = <<<EOT
<form action="login.php" method="POST">
Username: <input tye="text" name="uname" /><br>
Password: <input type="password" name="pass" /><br>
<input type="submit" name="submit" value="Login" />
</form>
EOT;

echo "$form";
}

?>

和config.php

<?php
mysql_connect("localhost", "X", "X");
mysql_select_db("X");

?>

config.php 代码是正确的,但我没有放弃 X。

如您所见,如果 login.php 不正确,此代码会回显错误。即使它是正确的,它也会给我那个错误。我使用了 MD5 哈希传递,所以请帮忙!

最佳答案

首先,您在其中使用了 ` 标签 - 这应该是 ' 。

您需要插入或连接您的变量; IE;而不是

mysql_query("INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name',  '$lname',  '$uname',  '$email1',  '$pass1')");

使用;

mysql_query("INSERT INTO 'users' ('id', 'name', 'lname', 'uname', 'email', 'pass') VALUES (NULL, '{$name}',  '{$lname}',  '{$uname}',  '{$email1}',  '{$pass1}')");

无论如何,除了一些好的做法,看看这一行;

$sql = mysql_query("SELECET * FROM `users` where `uname` = '$uname' and `pass` = '$pass'");

只是一个小小的错别字就毁了你的一切。将 SELECET 更改为 SELECT ,您应该可以开始了。

祝你好运!

  • 欧根

关于php - 简单的 PHP + MySQL 表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11200132/

相关文章:

php - 有一个数组到字符串的转换错误

mysql - 根据满足的所有条件进行选择(关系部门)

mysql - 使用 PowerShell 3 连接到 MySQL 数据库

MySQL 可重复读和脏读

php - 具有数据库读/写功能的 PHP 骰子滚子

javascript - 如何使用 javascript 获取 yii2 中的列值而不是 ID

php - $_SERVER ["HTTP_REFERER"] 无法在 Mozilla 上运行

php - WooCommerce 中一件免费产品的数量折扣

mysql - SQL搜索结果排名

mysql - 如何在触发器中使用具有动态字段名称的变量作为 ON DUPLICATE KEY (MariaDB/MySQL)