我正在嘗試做我認爲是一件簡單的事情,但事實證明這相當困難。我想要做的就是提供一個1字段的表單,允許用戶輸入一個唯一的ID並點擊提交。如果唯一標識符與數據庫中的某個ID相匹配,那麼它們將被定向到一個頁面。如果ID不匹配,我希望它告訴「ID不匹配,再試一次」或類似的東西。使用PHP驗證Form數據庫與MYSQL數據庫的比較
我已經看過無數的涉及登錄表單的教程,但是這比我需要的多一點,每次我試圖簡化它以成爲我所需要的,它都不起作用。我已經嘗試了很多不同的代碼。這是我現在擁有的。
更新的代碼:
<form name="enterclient" method="post">
<label for="clientid">Enter your client id</label><br />
<input name="clientid" id="clientid"><br /><br />
<input type="submit" value="Submit" name="submit" id="submit">
</form>
<?php global $current_user;
get_currentuserinfo();
$host = 'myhost';
$username = 'myuser';
$pass = 'mypass';
$database = 'mydb';
$link = mysqli_connect($host,$username,$pass, $database);
$clientid = $_REQUEST['clientid'];
if ($link) {
if(isset($_POST['submit'])) {
if (empty ($clientid)) {
//if username field is empty echo below statement
echo "you must enter your unique username <br />";
}
$query = "SELECT * FROM wp_locations WHERE client = '". mysqli_real_escape_string($link,$clientid) ."'" ;
$result = mysqli_query($link, $query) or die("Unable to query");
$option = "";
while($row=mysqli_fetch_array($result, MYSQLI_BOTH)) {
$option .= "<option value='{$row['client']}'>{$row['client']}</option>";
}
}
else {
}//close else
if ($result) {
print $option;
echo "query successful";
header('location: http://www.google.com');
}
else {
echo"query fail";
}
}//end of initial if $db_found
else {
print "Database NOT Found ";
}
// disconnect from the database
mysql_close();?>
更新的輸出: 當我到初始頁面,還在說「查詢失敗」,我猜這是因爲$的clientid可是沒有一個值尚未。
當我在框中輸入某些內容時,無論它是什麼,它都會返回「查詢成功」。我希望它只在輸入匹配數據庫值時才能成功返回。
如果我輸入一個我知道的值匹配數據庫值,它會給我一個該數據庫值的列表,但是它存在多次,並且說查詢成功。
重要的是要注意重定向似乎從來沒有工作。
你在混合mysql和mysqli –
你能更具體嗎? – Chris
你有mysql_connect($ host,$ username,$ pass);並稍後使用$ result = mysqli_query($ query);所以查詢不起作用,你需要檢查http://in1.php。net/mysqli_connect –