2015-09-11 59 views
-4

我有一个userregistration.php页面,出于某种原因,每次页面重新加载时,都会将NULL用户名/密码添加到我的MYSQL数据库中。就好像在按下提交按钮之前脚本正在运行一样。这里是代码:为什么我的PHP代码在每次加载网站时都运行?

<?php 

include("dbconnect.php"); 


$firstname=$_POST["firstname"]; 
$lastname=$_POST["lastname"]; 
$email=$_POST["email"]; 
$username=$_POST["username"]; 
$password=$_POST["password"]; 

    $personcon=$conn; 


    $bbsSQL = "INSERT INTO TBLUSERS (FIRSTNAME, LASTNAME, EMAIL, USERNAME, PASSWORD) VALUES ('$firstname', '$lastname', '$email', '$username', '$password')"; 

    $personinfo=oci_parse($personcon,$bbsSQL); 
    oci_execute($personinfo); 


    oci_free_statement($personinfo); 
    oci_close($personcon); 

echo "Thank you for registration"; 

?> 


<html> 
<head> 
<title>Register</title> 
</head> 

<body> 
<form name="myForm" action="RegisterUser.php" method="POST" onsubmit="return validate()"> 
<table> 
<tr> 
<td align="right">First name:</td> 
<td align="left"><input type="text" name="firstname" /></td> 
</tr> 

<tr> 
<td align="right">Last name:</td> 
<td align="left"><input type="text" name="lastname" /></td> 
</tr> 

<tr> 
<td align="right">Email:</td> 
<td align="left"><input type="text" name="email" /></td> 
</tr> 

<tr> 
<td align="right">User name:</td> 
<td align="left"><input type="text" name="username" /></td> 
</tr> 

<tr> 
<td align="right">Password:</td> 
<td align="left"><input type="password" name="password" /></td> 
</tr> 

</table> 
<input type="submit" name="Submit"/> 
<input type="reset" name="Reset"/></form> 
</body> 
</html> 

任何人都可以帮我解决这个问题吗?显然,我只想在按下“提交”按钮时创建一个新用户。谢谢!

+0

只是删除行动=“RegisterUser.php”如果(isset($ _ POST)“提交”]){ –

+0

数据库文件和您的回音声明后闭幕后}其实我想这写但是当我这样做时,似乎并没有运行PHP代码。 – bandoy123

+0

您需要了解PHP背后的基本逻辑,每次调用PHP时都会运行PHP,这意味着如果您有一个包含php代码的站点,它将被执行,以避免无意插入,例如,您必须生成一个支票您实际上想要执行数据库插入操作,其中一种方法与SunilPachlangia提到的一样,并检查您的表单是否已提交。 – Epodax

回答

2

将创建帐户的代码封装在if()语句中,该语句检查$ _POST中是否有内容。事情是这样的:

if (isset($_POST['Submit'])) { 
    $firstname=$_POST["firstname"]; 
    $lastname=$_POST["lastname"]; 
    $email=$_POST["email"]; 
    $username=$_POST["username"]; 
    $password=$_POST["password"];   

    $personcon=$conn;  


    $bbsSQL = "INSERT INTO TBLUSERS (FIRSTNAME, LASTNAME, EMAIL, USERNAME, PASSWORD) VALUES ('$firstname', '$lastname', '$email', '$username', '$password')";   

    $personinfo=oci_parse($personcon,$bbsSQL); 
    oci_execute($personinfo);  


    oci_free_statement($personinfo); 
    oci_close($personcon);   

    echo "Thank you for registration"; 
} 
+0

令人惊叹!非常感谢,我实际上有这个代码,但我'提交'而不是'提交'。完善! – bandoy123

+0

是的,它必须与您在表单中为其定义的名称相匹配。 – Chris

相关问题