Php 数据库中未显示注册表单数据
我试着将代码改成这样,这样它就可以先连接到数据库,但现在它只停留在verify.php上,没有重定向,没有数据被发送到数据库Php 数据库中未显示注册表单数据,php,mysql,sql,Php,Mysql,Sql,我试着将代码改成这样,这样它就可以先连接到数据库,但现在它只停留在verify.php上,没有重定向,没有数据被发送到数据库 <?php if(isset($_POST['submit'])){ # connect to the database here $host="XXXXXXX"; // Host name $username="XXXX"; // Mysql username $password="XXXX"; // Mysql passwo
<?php
if(isset($_POST['submit'])){
# connect to the database here
$host="XXXXXXX"; // Host name
$username="XXXX"; // Mysql username
$password="XXXX"; // Mysql password
$db_name="XXXX"; // Database name
mysql_connect("$host", "$username", "$password")or die("cannot connect for insert");
mysql_select_db("$db_name")or die("cannot select DB to insert data");
$user_name = mysql_real_escape_string($_POST['user_name']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$user_password = mysql_real_escape_string($_POST['password']);
$insert_query = "INSERT INTO teachers(`user_name`,`fname`,`lname`,`email`,`password`)
VALUES('".$user_name."$','".$fname."','".$lname."','".$email."','".$user_password."');";
mysql_query($insert_query) or die(mysql_error());
mysql_close();
};
?>
你应该要么放要么死(mysql_error())代码>在以下行中:
$sql = mysql_query($query) or die(mysql_error());
而不是:
mysql_real_escape_string($_POST['password']))or die(mysql_error());
另一件事是,您有错误的if-else
语句
您可以在下面的if
语句中编写代码来检查哪个字段为空:
if($row||empty($_POST['user_name'])|| empty($_POST['fname'])||empty($_POST['lname'])|| empty($_POST['email'])||empty($_POST['password'])|| empty($_POST['re_password'])||$_POST['password']!=$_POST['re_password']){
# if a field is empty, or the passwords don't match make a message
# YOU SHOULD PUT YOUR CODE TO CHECK EMPTY FIELDS SEPARATELY HERE
}
else {
# If all fields are not empty, and the passwords match,
}
如果用户已经存在,则应将检查更改为以下内容:
if(count($row) > 0)
而不仅仅是
if($row)
如果只想测试是否插入了数据,请将代码限制为:
<?php
if(isset($_POST['submit'])){
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="lurnn"; // Database name
/* sanitize post variables */
$user_name = mysql_real_escape_string($_POST['user_name']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$user_password = mysql_real_escape_string($_POST['password']);
/* Database insert query */
mysql_connect($host, $username, $password)or die("cannot connect for insert");
mysql_select_db($db_name)or die("cannot select DB to insert data");
$insert_query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`)
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
mysql_query($insert_query) or die(mysql_error());
mysql_close();
};
?>
如果回显$query,将打印什么查询?为什么要将此函数sprintf
添加到变量“$query”中?我原以为您会想要这样的东西:$query=(“从教师中选择*,其中用户名=“%s”限制1”)
并在开始时执行$user=mysql\u real\u escape\u字符串($\u POST['user\u name'])
获取用户名并清理输入字符串。然后将初始$query变量更改为$query=“SELECT*FROM teachers WHERE user_name=”。“$user.”“LIMIT 1”
您使用的是哪一版本的PHP?顺便问一下,Radical先生同意PHP 5.3,但仍然没有回答为什么没有向DB发送任何内容的问题。同样,没有回答为什么没有向DB发送任何内容的问题。另外,您说要替换的代码与我原来的代码相同,或者这是一个错误?我没有得到您想要我做的更改if-else语句的操作,因为代码是相同的。我如何简化它,忽略字段检查,我只想深入研究注册用户、将数据发送到数据库的代码,这是目前的问题。我尝试了底层代码,得到了一堆错误消息,我在这里无法适应。尝试登录lurnn.com/signup.html,您将看到所有错误消息。@MattMcLaren您忘记发布错误了。B.T.W.我想我可能已经解决了这个错误。请再试一次,我在mysql\u connect
中删除了双引号。非常感谢您花时间帮助我,非常感谢。我过去可以在五秒钟内编写代码,但在过去的一年里,显然有了很大的变化。第10-14行这样写:警告:mysql\u real\u escape\u string()[function.mysql real escape string]:无法通过socket'/var/lib/mysql/mysql.sock'(2)连接到本地mysql服务器在第10行的/home/content/88/10880688/html/verify.php中警告:mysql\u real\u escape\u string()[function.mysql real escape string]:无法在第10行的/home/content/88/10880688/html/verify.php中建立到服务器的链接10@MattMcLaren事情总是在改变,但我相信你会重新回到比赛中。
<?php
if(isset($_POST['submit'])){
$host = "host";
$user = "user";
$password = "password";
$database = "database";
/* sanitize post variables */
$user_name = mysql_real_escape_string($_POST['user_name']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$user_password = mysql_real_escape_string($_POST['password']);
// open connection to database
$link = mysqli_connect($host, $user, $password, $database);
IF (!$link){
echo ("Unable to connect to database!");
}
ELSE {
//INSERT VALUES INTO DATABASE
$query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`)
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
mysqli_query($link,$query) or die(mysql_error());
echo var_dump($query);
}
//close connection to database
mysqli_close($link);
};
?>
<?php
function submit_form(){
$host = "";
$user = "";
$password = "";
$database = "";
/* sanitize post variables */
$user_name = mysql_real_escape_string($_POST['user_name']);
$fname = mysql_real_escape_string($_POST['fname']);
$lname = mysql_real_escape_string($_POST['lname']);
$email = mysql_real_escape_string($_POST['email']);
$user_password = mysql_real_escape_string($_POST['password']);
// open connection to database
$link = mysqli_connect($host, $user, $password, $database);
IF (!$link){
echo ("Unable to connect to database!");
}
ELSE {
//INSERT VALUES INTO DATABASE
$query = "INSERT INTO teachers(`user_name`,`f_name`,`l_name`,`email`,`password`)
VALUES('".$user_name."','".$fname."','".$lname."','".$email."','".$user_password."')";
mysqli_query($link,$query) or die("Insert query failed");
echo var_dump($query);
}
//close connection to database
mysqli_close($link);
}
$form = <<<EODuserform
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Form</title>
</head>
<form action="{$_SERVER['PHP_SELF']}" method="POST" name="userform">
<label for='user_name'>Username:</label></br>
<input type="text" name="user_name" id="first" maxlength="25" tabindex='1' VALUE="user_name" /></br>
<label for='fname'>First Name:</label></br>
<input type="text" name="fname" id="first" maxlength="25" tabindex='2' VALUE="firstname" /></br>
<label for='lname'>Last Name:</label></br>
<input type="text" name="lname" id='lastname' maxlength="25" tabindex='3' VALUE="lastname" /></br>
<label for='email'>E-mail:</label></br>
<input type="text" name="email" id='email' maxlength="100" tabindex='4' VALUE="email" /></br>
<label for='password'>Password:</label></br>
<input type="password" name="password" id='password' maxlength="25" tabindex='5' VALUE="password" /></br>
<label for='re-password'>Re-type password:</label></br>
<input type="password" name="re-password" id='re-password' maxlength="25" tabindex='6' VALUE="re-password" /></br>
<input type="submit" name="submit" value="Sign Up" tabindex='6' />
</form>
</body>
</html>
EODuserform;
IF(!IsSet($_POST['submit'])){ // Check if form is not send, if not display empty form.
echo $form;
}
ELSE{
// in the case you want to send something to the database use
submit_form();
echo ('Thanks for submitting your form');
}
?>