0

所以我遇到了这个问题,我从 POST 获取值,但是当插入查询运行时,数据库中没有显示任何内容,但我没有收到任何错误,并且回显工作。这是我的文件:

配置.php:

<?php

$host = "000webhost.com";
$user = "a9257*****";
$pass = "*****";
$db = "a9257*****";

$connect = mysql_connect($host, $user, $pass);
mysql_select_db($db, $connect);

?>

这是我的提交.php:

<?php

include "config.php";

$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$pass = md5($_POST['pass']);

$insert = 'INSERT INTO tblUsers (userFirstName, userLastName, userEmail, userPassword) VALUES("'.$fname.'","'.$lname.'""'.$email.'","'.$pass.'")';

mysql_query($insert);

echo $fname;
echo $lname;
echo $email;
echo $pass;

?>

任何帮助将不胜感激。

4

2 回答 2

2

$insert = 'INSERT INTO tblUsers (userFirstName, userLastName, userEmail, userPassword) VALUES("'.$fname.'","'.$lname.'","'.$email.'","'.$pass.'")';

你忘了一个逗号"'.$lname.'"HERE"'.$email.'"

编辑:转义您的变量或您的数据库将被黑客入侵(将,而不是如果;))

于 2013-07-27T21:56:50.673 回答
2

您不会收到任何错误,因为您没有要求 MySQL 将它们提供给您!

更改此行:

mysql_query($insert);

进入这个版本:

mysql_query($insert, $connect) or die("MySQL error:". mysql_error($connect));

让我们知道错误,或直接自行修复。

并请添加转义!您的所有值都允许 SQL 注入攻击!

并且请不要使用 MD5 进行密码散列!从 PHP 5.5 开始,有易于使用的密码散列函数,这些函数也被向后移植到 PHP 5.3.6。请包括这个简单的库:https ://github.com/ircmaxell/password_compat

于 2013-07-27T21:58:59.640 回答