php注册mysql不是有效的资源
好的帮助..我的注册页面在本地服务器上工作,但是现在它说当它联机时这两行mysql是无效的..为什么它联机时会改变?粘贴的代码是所有相关的。出于某种原因,它不喜欢这个事务..和电子邮件检查mysql位php注册mysql不是有效的资源,php,mysql,transactions,Php,Mysql,Transactions,好的帮助..我的注册页面在本地服务器上工作,但是现在它说当它联机时这两行mysql是无效的..为什么它联机时会改变?粘贴的代码是所有相关的。出于某种原因,它不喜欢这个事务..和电子邮件检查mysql位 include 'Connect.php'; //Connects to database //When form is submit:- if(isset($_POST['submit'])) { // On submit, re
include 'Connect.php'; //Connects to database
//When form is submit:-
if(isset($_POST['submit']))
{
// On submit, retrieve table values for php.
$Firstname = mysql_real_escape_string($_POST['firstname']);
$Surname = mysql_real_escape_string($_POST['surname']);
$Password = mysql_real_escape_string($_POST['password']);
$PasswordCheck = mysql_real_escape_string($_POST['passwordcheck']);
$Email = mysql_real_escape_string($_POST['email']);
$EmailCheck = mysql_real_escape_string($_POST['emailcheck']);
//CHECKS.
//Check username is available by retrieving any same values from the DB table.
$CheckEmailAvailable = mysql_query("SELECT * FROM 'user_details' WHERE Email = '$Email'");
echo $CheckEmailAvailable;
// $result = mysql_query("SELECT * FROM $tbl WHERE Email='$email' and LoginPassword='$password'");
$Results = mysql_fetch_array($CheckEmailAvailable);
//If Username field is blank.
if($Email == null )
{
echo "You must enter an email address.";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<br/><br/>";
echo "<a href='$url'>Click Here To Return</a>";
die();
}
//If RESULTS is any value other than NULL, die.
if($Results != null )
{
echo "Email already taken. Please try another.";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<br/><br/>";
echo "<a href='$url'>Click Here To Return</a>";
die();
}
//If Password and PasswordCheck fields in reg do not match, die.
if($Password != $PasswordCheck)
{
echo "The passwords you have entered do not match. Please try again.";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<br/><br/>";
echo "<a href='$url'>Click Here To Return</a>";
die();
}
//If Password field is NULL (i.e. blank) die.
if($Password == Null)
{
echo "Your password must not be blank.";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<br/><br/>";
echo "<a href='$url'>Click Here To Return</a>";
die();
}
//If Email and EmailCheck are not equal, die.
if($Email != $EmailCheck)
{
echo "The email addresses you have entered do not match. Please try again.";
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
echo "<br/><br/>";
echo "<a href='$url'>Click Here To Return</a>";
die();
}
//ELSE add data to DB.
else
{
//BEGIN TRANS
mysql_query("BEGIN TRAN");
//TABLE ADD.
$sql=mysql_query("INSERT INTO `user_details` (`Firstname`, `Surname`, `Email`, `Password`) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
or mysql_query("ROLLBACK TRAN") . die(mysql_error("Error registering, the database may be down, please try again later."));
//COMMIT transaction, to ensure data is added properly.
mysql_query("COMMIT TRAN");
header( 'Location: RegSucc.php' ) ;
}
} ?>
<html>
<!--Registration Form-->
<form name="form1" method="post" style="margin-left: 28%" action="Register.php">
<table width="100%" border="0" cellpadding="3" cellspacing="1">
<tr>
<td colspan="3"><strong>Register Account</strong></td>
</tr>
<tr>
<td style="width: 83px">First Name:</td>
<td>:</td>
<td><input name="firstname" type="text"/></td>
</tr>
<tr>
<td style="width: 83px">Surname:</td>
<td>:</td>
<td><input name="surname" type="text"/></td>
</tr>
<tr>
<td style="width: 83px">Email Address:</td>
<td>:</td>
<td><input name="email" type="text"/></td>
</tr>
<tr>
<td style="width: 83px">Email Address Confirmation:</td>
<td>:</td>
<td><input name="emailcheck" type="text"/></td>
</tr>
<tr>
<td style="width: 83px">Password:</td>
<td>:</td>
<td><input name="password" type="password"/></td>
</tr>
<tr>
<td style="width: 83px">Verify Password:</td>
<td>:</td>
<td><input name="passwordcheck" type="password"/></td>
</tr>
<tr>
<td style="width: 83px"> </td>
<td> </td>
<td><input type="submit" name="submit" value="Register"/></td>
</tr>
</table>
</form>
包括“Connect.php”//连接到数据库
//提交表格时:-
如果(isset($_POST['submit']))
{
//提交时,检索php的表值。
$Firstname=mysql\u real\u escape\u字符串($\u POST['Firstname']);
$LANSAME=mysql_real_escape_string($_POST['姓氏]);
$Password=mysql\u real\u escape\u字符串($\u POST['Password']);
$PasswordCheck=mysql\u real\u escape\u字符串($\u POST['PasswordCheck']);
$Email=mysql\u real\u escape\u字符串($\u POST['Email']);
$EmailCheck=mysql\u real\u escape\u字符串($\u POST['EmailCheck']);
//支票。
//通过从DB表中检索任何相同的值来检查用户名是否可用。
$CheckEmailAvailable=mysql_查询(“从'user_details'中选择*,其中Email='$Email');
echo$CheckEmail可用;
//$result=mysql_查询(“从$tbl中选择*,其中Email='$Email'和LoginPassword='$password'”);
$Results=mysql\u fetch\u数组($CheckEmailAvailable);
//如果用户名字段为空。
如果($Email==null)
{
echo“您必须输入电子邮件地址。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“
”;
回声“;
模具();
}
//如果结果不是NULL,则为die。
如果($Results!=null)
{
echo“电子邮件已被接收。请尝试另一封。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“
”;
回声“;
模具();
}
//如果注册表中的密码和密码检查字段不匹配,请退出。
如果($Password!=$PasswordCheck)
{
echo“您输入的密码不匹配。请重试。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“
”;
回声“;
模具();
}
//如果密码字段为空(即空白),则为空。
如果($Password==Null)
{
echo“您的密码不能为空。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“
”;
回声“;
模具();
}
//如果Email和EmailCheck不相等,则终止。
如果($Email!=$EmailCheck)
{
echo“您输入的电子邮件地址不匹配。请重试。”;
$url=htmlspecialchars($_服务器['HTTP_REFERER']);
回声“
”;
回声“;
模具();
}
//否则将数据添加到数据库中。
其他的
{
//开始转换
mysql_查询(“开始传输”);
//表ADD。
$sql=mysql\u查询(“插入到'user\u details'('Firstname','names','Email','Password')值('$Firstname','$namname','$Email','$Password'))
或者mysql_query(“ROLLBACK TRAN”).die(mysql_error(“注册错误,数据库可能已关闭,请稍后再试”);
//提交事务,以确保正确添加数据。
mysql_查询(“提交传输”);
标题('Location:regsuch.php');
}
} ?>
注册帐户
名字:
:
姓:
:
电邮地址:
:
电子邮件地址确认:
:
密码:
:
验证密码:
:
查询
SELECT * FROM 'user_details' WHERE Email = '$Email'
这是无效的。在表示表名时,最好使用反勾号,但使用引号将不起作用
SELECT * FROM `user_details` WHERE Email = '$Email'
在本地主机上,可以将其设置为使用引号。但是,这不是“应该”的方式,服务器的安装可能会有所不同。这个故事的寓意是:不要走捷径或使用丑陋的代码。不要忘记勾选表名或列,不要使用PHP短标记等
$sql=mysql_query("INSERT INTO `user_details` (`Firstname`, `Surname`, `Email`, `Password`) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
应该是
$sql=mysql_query("INSERT INTO user_details (Firstname, Surname, Email, Password) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
SELECT * FROM user_details WHERE Email = '$Email'
也
应该是
$sql=mysql_query("INSERT INTO user_details (Firstname, Surname, Email, Password) VALUES ('$Firstname', '$Surname', '$Email', '$Password')")
SELECT * FROM user_details WHERE Email = '$Email'
就这样…更改这行
$CheckEmailAvailable = mysql_query("SELECT * FROM 'user_details' WHERE Email = '$Email'");
到