2015-09-11 58 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

相關問題