[英]php mysql INSERT INTO mysql by using register form
我是php的初學者,我正嘗試使用php進行電子商務。 我正在嘗試制作注冊表,我想將這些數據保存到mysql服務器中。 編碼看起來不錯,但是數據沒有存儲在mysql服務器中。 你能給出答案嗎? php語言是我第一次感到掙扎。 請給一些建議。 謝謝。
--registerForm.php--
<h4>Create a new account</h4>
<div class="box">
<form action="register.php" method="post">
<p>User ID: <input type="text" name="userId" size="30"/>*</p>
<p>Password: <input type="password" name="password" size="30"/>*</p>
<p>Retype Password: <input type="password" name="repassword" size="30"/>*</p>
<p>First Name: <input type="text" name="firstName" size="30"/>*</p>
<p>Last Name: <input type="text" name="lastName" size="30"/>*</p>
<p>Your Address (*):</p>
<p> <textarea name="address" rows="5" cols="30"></textarea></p>
<p>Phone: <input type="text" name="phone" size="20"/>*</p>
<p>E-mail: <input type="text" name="email" size="21"/>*</p>
<p><input type="submit" value="Create Account"/></p>
</form>
</div>
--register.php--
<?php
require "sql_connection.php";
if(isset($_POST['submit']))
{
if($_GET["userId"]==$_GET["repassword"]){
mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email)
values
('$_GET[userId]','$_GET[password]','$_GET[firstName]','$_GET[lastName]','$_GET[address]','$_GET[phone]','$_GET[email]')")
or die(mysql_error());
}
echo "Done!!!!";
}
?>
--sql_connection.php--
<?php
$db_host = "localhost";
$db_username = "root";
$db_pass = "**MY_PASS**";
$db_name = "**MY_DB**";
@mysql_connect("$db_host", "$db_username", "$db_pass", "$db_name") or die("connection is fail.");
@mysql_select_db("$db_name") or die("database does not exsist.");
echo "Successfully connection!!";
?>
if($_GET["userId"]==$_GET["repassword"])
為什么將userid與重新輸入pssword字段進行比較?
我認為應該是:
if($_GET["password"]==$_GET["repassword"])
還要確保轉義字符串以防止SQL注入攻擊。
http://php.net/manual/zh/function.mysql-real-escape-string.php
就像保羅所說,要正確檢索數據,請使用$ _POST
一些事情。 您的$_GET
和$_POST
混在一起了。 並且永遠不要公開發布您的db_pass和uername。 另外,您可以使用@
抑制錯誤。 不要那樣做
即
if($_GET["userId"]==$_GET["repassword"]){
應該
if($_POST["userId"]==$_POST["repassword"]){
並將所有這些更改為$_POST
您的代碼:
$_GET[userId]','$_GET[password]','$_GET[firstName]','$_GET[lastName]','$_GET[address]','$_GET[phone]','$_GET[email]')
應該:
$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[address]','$_POST[phone]','$_POST[email]')"
由於您定義的表單方法是POST
因此請使用$_POST
在提交后獲取值,而不是$_GET
require "sql_connection.php";
if(isset($_POST['submit']))
{
if($_POST["userId"]==$_POST["repassword"]){
mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email)
values
('$_POST[userId]','$_POST[password]','$_POST[firstName]','$_POST[lastName]','$_POST[address]','$_POST[phone]','$_POST[email]')")
or die(mysql_error());
}
echo "Done!!!!";
}
?>
值未正確引用。 在插入之前,您應該先引用。
mysql_query("insert into customer (userId, password, firstName, lastName, address,
phone, email)
values
('".$_POST[userId]."','".$_POST[password]."','".$_POST[firstName]."','".$_POST[lastName]."','".$_POST[address]."','".$_POST[phone]."','".$_POST[email]."')")
我認為您正在嘗試做的是:
if($_GET["password"]==$_GET["repassword"]) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.