我已经设置了一个允许用户登录和注册的简单网站。我正在使用MySQL数据库将登录详细信息存储在表的列中。我将提供更多详细信息,但基本上,我已经使登录页面正常工作,它正确连接到数据库并登录或通知用户他们的登录详细信息无效。我的问题是注册页面不会注册用户。我不是非常擅长PHP,但我很不错,我能够使登录页面工作,我已经做了研究,无法弄清楚为什么注册页面不起作用。
我用来创建数据库的代码:
CREATE TABLE `users` (
`id` INT NOT NULL auto_increment ,
`username` VARCHAR( 20 ) NOT NULL ,
`password` VARCHAR( 20 ) NOT NULL ,
`fullname` VARCHAR( 20 ) NOT NULL ,
`email` VARCHAR( 20 ) NOT NULL,
`ip` VARCHAR( 20 ) NOT NULL,
PRIMARY KEY ( `id` )
)
代码我曾经连接到数据库并注册:(这很麻烦而且很简单,请记住,我所要做的就是让它正确地注入数据库,一旦我知道了,我可以轻松添加更多)
仅供参考,为了这篇文章的目的,我将连接到MySQL服务器的实际细节更改为假的东西。对我来说,我有真正的细节,它确实成功连接,登录脚本工作,而不是注册脚本。问题不在于它不会连接,只是它不会将用户提交的信息注入表“users”中的相应列。另外,我使用按下提交按钮的if语句来删除部分,等等,因为这些parets与问题无关。
<?php session_start(); ?>
<?php
ob_start();
//Defining server variables
$host ="000webhost.com";
$username ="username1";
$password ="pass1";
$db_name = "database1";
$tbl_name ="users";
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Define register variables
$myusername=$_SESSION['myusername'];
$mypassword=$_SESSION['mypassword'];
$myemail=$_SESSION['myemail'];
$myname=$_SESSION['myname'];
$myip=$_SERVER['REMOTE_ADDR'];
$sql="INSERT INTO users (username,password,fullname,email,ip)VALUES('$myusername','$mypassword','$myname','$myemail','$myip')";
$_SESSION['registersuccess'] = "Registration success"
header('location:index.php');
ob_end_flush();
?>
?>
我显然做错了,因为当我在我的MySQL查询上运行这个代码而不是它注入到表中但是当我尝试使用php而不是它时。不确定我做错了什么,这就是我需要帮助的地方。在此先感谢,任何帮助将非常感激。
答案 0 :(得分:0)
我复制了PHP documentation中的示例。 但是请记住,不要使用mysql库使用mysqli或PDO。
<?php
$result = mysql_query($sql);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
mysql_close();
?>
答案 1 :(得分:0)
主要原因:自PHP 5.5.5以来,MySQL已被弃用
$mysqli = new mysqli($host, $username, $password, $db_name);
INSERT INTO users (username,password,fullname,email,ip)VALUES('$myusername','$mypassword','$myname','$myemail','$myip')
我认为,这是由VALUES字
周围缺少空格引起的您也忘了执行查询
您可以按
打印查询错误MySQL(&lt; PHP 5.5.0)
mysql_error()
MySQLi(&gt; = PHP 5)
$mysqli->error
答案 2 :(得分:0)
修复了行尾并添加了查询,这是你的工作代码好先生:
<?php
session_start();
ob_start();
// Connect to server and select databse.
mysql_connect("000webhost.com", "username1", "pass1")or die("cannot connect");
mysql_select_db("database1")or die("cannot select DB");
// Define register variables
$myusername=$_SESSION['myusername'];
$mypassword=$_SESSION['mypassword'];
$myemail=$_SESSION['myemail'];
$myname=$_SESSION['myname'];
$myip=$_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO users (username,password,fullname,email,ip)VALUES('$myusername', '$mypassword', '$myname', '$myemail', '$myip')");
$_SESSION['registersuccess'] = "Registration success";
header('location:index.php');
ob_end_flush();
?>
请不要忘记首先清理您的输入。