-1
我剛開始使用php和html,我正在創建一個供個人使用的小遊戲。不管怎麼說,我寫了一個腳本中,你只需輸入數據,創建一個帳戶,然後將其提交:
<?php include 'header.php';
?>
<br>
<br>
<br>
<table border="1" align="center" cellpadding='25'>
<tr>
<td align='middle'>
<form method='POST' action='insertuser.php' align= 'right'>
Username: <input type='username' name='username'> <br>
Password: <input type='password' name='password'> <br>
Confirm Password: <input type='Password'> <br>
Email: <input type='username'> <br>
<input type='submit' name='submit' align = 'center'>
</td>
</tr>
</table>
<
<table align='right'>
<tr>
<td>
<image src='stillneedimage(square).jpg'>
</td>
</tr>
</table>
<table align='left'>
<tr>
<td>
<image src='stillneedimage(square).jpg'>
</td>
</tr>
</table>
</body>
</html>
然後我創建withh phpmyadmin的數據庫和裏面我有一個表稱爲成員。目前數據庫中有4個表,id,用戶名,密碼和等級。最後我創造了另一個腳本插入數據輸入到數據庫中的用戶:
<?php
include_once "mysqlconnecter.php";
$username1 = $_POST ['username'];
$password1 = $_POST ['password'];
mysql_query("INSERT INTO members Values ('','$username1','$password1','' ") or
die('could not insert member, please try again');
?>
它沒有這樣做,但它的任務是將數據插入到數據庫中。當我運行腳本它給了我這個錯誤:
Notice: Undefined index: username in E:\PortableApps\xampp-
portable\htdocs\xampp\insertuser.php on line 4
Notice: Undefined index: password in E:\PortableApps\xampp-
portable\htdocs\xampp\insertuser.php on line 5
could not insert member, please try again
我可能做錯了什麼?
首先,你忘了關閉你的''。它不在你的代碼中,或者你離開/忘記了它?只有這一點會導致你的問題。 –
這些只是通知,這是不是一個問題,將您的數據插入表...你可以分享我們的輸出mysql_error(http://www.php.net/manual/en/function.mysql-error.php) 。我認爲你的桌子定義可能會有問題。 – tanaydin
再加上你在'<
回答
爲了避免出現問題表單中,添加
</form>
- 標籤並更改類型=「文本」。類型屬性告訴什麼類型的元素,而不是元素被標識爲什麼名稱。你有名稱屬性。看着你insertuser.php
我注意到一些事情。第一個是memberID用戶的qutoes?我想這是和INt(可能是自動增量),在這種情況下,你根本不必包含該字段。其次,你在實際的插入語句中遺漏了一個括號。
也許最重要的部分是,您必須清理數據,以防止不需要的數據進入數據庫。該easisest檢查,你可以做(和應該做)是至少檢查元素分配:
這樣,你不應該得到你所描述的那些錯誤。同時檢查confirmPassword的值與密碼,看看它們是否相等(如果你不這樣做confirmPassword字段是無用的)
我真的會推薦從mysql_ *函數切換到PDO或mysqli,因爲mysql_ *函數已被棄用(意味着這些功能將來無法使用)。
來源
2013-08-03 20:26:41 bestprogrammerintheworld
您正在使用
name="username"
而不是username1
像在您的PHP中一樣。也是
type
是錯誤的。來源
2013-08-03 19:31:46 pajaja
即使我更改它時也會出現此錯誤。 – FireRaven101
您是否將輸入字段的類型更改爲文本/密碼? – pajaja
是的,但它仍然無效。 – FireRaven101
您在$ _ POST
來源
2013-08-03 19:32:18 AndrewK
即使當我改變它給我那個錯誤。 – FireRaven101
你輸入你的輸入標籤訪問了錯誤的名稱應爲「文本」:
,並正在從
$_POST
得到名稱必須一致在您的形式名稱:來源
2013-08-03 19:32:52
更改此:
進入這個
HTML表單的輸入被稱爲「用戶名」和「密碼」,這些名稱傳遞給
$_POST
變量。現在,您不需要清理數據庫輸入。嘗試創建一個名爲
bobby'); DROP TABLE members;--
的用戶。一定要備份成員表。 (擾流板:它會降低你的表)有關如何防止這種情況的更多信息,請參閱How can I prevent SQL injection in PHP?
來源
2013-08-03 19:35:10 AmazingDreams
首先,
沒有
input type="username"
。你應該使用的是input type="text"
。其次,HTML表單中沒有元素的名稱屬性設置爲「username1」或「password1」。我希望你已經注意到了。所以相應地修改PHP文件。
即使在此之後,您仍然會遇到很多錯誤。這是因爲在執行MySQL查詢之前,您需要實際連接到數據庫。
所以讀了一點點,然後才嘗試了這一點。
乾杯!
來源
2013-08-03 19:37:53 kkaosninja
可能使用'include_once「mysqlconnecter.php」'連接。但是,我會同意OP需要對許多事情「閱讀」和「研究」。 –
我正在包括連接到數據庫的頁面(mysqlconnecter.php)。 – FireRaven101
除了表單的結束標記之外,您的發佈代碼中沒有錯誤。我複製了相同的代碼,並且工作完美。我改變的是,
而且在insertuser.php,
我越來越領域。所以,DBconnecting php內部可能會有更多的錯誤。
來源
2013-08-03 19:57:29 Nizam
您確實應該在表單的實際單元格中包含結束標記,而type-attributes屬性不正確。 – bestprogrammerintheworld
我複製粘貼你的表單,仍然有相同的錯誤。 – FireRaven101
相關問題