-1
我需要一些幫助,我的腳本,我正在做一個庫登錄/出和頁面,我有它的工作,以便它張貼表單時,他們登錄和出,但我如果他們試圖註銷,並且他們實際上從未登錄過,會想彈出一個js警報告訴他們,但我無法完全明白。PHP更新與if和else語句
下面的代碼:
<?php
session_start();
include_once("connect.php");
date_default_timezone_set("America/Winnipeg");
$date = ("m-d-Y");
$timeout = date("g:i:s a");
//search for existing entries
if ("SELECT EXISTS(SELECT * FROM signin_out WHERE
lname='".$_POST['lastname']."' AND fname='".$_POST['firstname']."'
AND date='".$date."')") {
//if they exist run this
mysql_query("UPDATE signin_out SET timeout='" . $timeout . "'
WHERE lname='" . $_POST['lastname'] . "'
AND fname='" . $_POST['firstname'] . "' AND timeout='' ");
header("Location: ../index.html");
//if they don't exist run this
} else {
header("Location: ../index.html");
echo "<script type='text/javascipt'>\n";
echo "alert('You did not sign in!');\n";
echo "</script>";
}
?>
什麼不工作?當它們不存在時它是否在'它們存在'區塊之間?或者事情只是輸出不正確? – Jordan
header(「location ...」)會在該腳本被調用之前重定向頁面。喲,我們應該重定向到一個get var或其他東西的索引。 like index.php?exists = no然後使用該獲取var來顯示一個錯誤,而不是一個侵入性的js警報 –
請在編寫任何**更多SQL接口代碼之前,您必須閱讀[正確的SQL轉義]( http://bobby-tables.com/php)避免嚴重的[SQL注入漏洞](http://bobby-tables.com/)。另外,'mysql_query'不應該在新的應用程序中使用。這是從PHP的未來版本中刪除的不推薦使用的界面。像[PDO這樣的現代替代品並不難學](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/)並且將讓你的數據庫代碼更容易得到正確的。 '$ _GET'和'$ _POST'變量應該不會被內插。 – tadman