2012-05-03 65 views
1

我正在研究PHP類的最終項目,我在驗證代碼時遇到了問題。在其他部分代碼中,如果語句和應用程序停止處理,我總是會在這兩處發生錯誤。 下面的代碼是.php文件的一部分,它具有用於設置提醒的HTML表單。PHP驗證問題

} else if (!checkdate($_POST['reminderMonth'],$_POST['reminderDate'],$_POST['remindereEar'])) { 
    $error_message = "Selected date does not exist."; 
} else if ($reminderDate <= $t_date) { 
    $error_message = "Selected date has already occured."; 

所有代碼:

if(isset($_POST['submit'])) { 
//get data 
$t_date = date(Ymd); 
$year = $_POST['reminderYear']; 
$month = $_POST['reminderMonth']; 
$day = $_POST['reminderDay']; 
//validate data 
$reminderDate = $year.$month.$day; 
if (empty($_POST['reminderName'])) { 
    $error_message = "Name is a required field."; 
} else if (!checkdate($_POST['reminderMonth'],$_POST['reminderDate'],$_POST['remindereEar'])) { 
    $error_message = "Selected date does not exist."; 
} else if ($reminderDate <= $t_date) { 
    $error_message = "Selected date has already occured."; 
} else { 
    $error_message = ''; } 
//redirect 
if(empty($error_message)) { 
    mysql_query("INSERT INTO reminder_event 
        (reminderName,reminderDescript,reminderDate) 
       VALUES 
        ('{$reminderName}','{$reminderDescript}','{$reminderDate}')"); 
header("Refresh: 1;url=reminder_list.php"); 
} else { 
echo($error_message); } } 
+0

什麼錯誤? –

+0

對不起,我錯過了......厭倦了所有的考試費用。 – cmorris1441

回答

1

日期(年月日)會產生誤差應

date('Y m d'); 

,並確保$ reminderDate = $每年$ $天的月份。;以同樣的方式被格式化

$reminderDate = $year.' '.$month.' '.$day; 

另外2個錯別字:

$_POST['reminderDate'],$_POST['remindereEar'] 

不知道這是否是一個解決方案,但看起來還是一樣,如果你運行它自己的方式就會造成問題

+0

謝謝,它的工作! – cmorris1441

+0

很高興幫助:) – Wesley

+0

看來,年份和月份都存儲在數據庫中,但實際日期並不是。 – cmorris1441

1

我看到2個錯別字:

$_POST['reminderDate'],$_POST['remindereEar'] 

它應該是:

$_POST['reminderDay'],$_POST['reminderYear'] 
+0

只是修復它,仍然會出現錯誤。現在是第二個else語句,第一個語句似乎工作。 – cmorris1441

+0

請參閱下面的@韋斯利的答案以解決該問題 –

1

你跟reminderDate和remindereEar犯了一個錯誤。

應該改爲:$_POST['reminderDay'], $_POST['reminderYear']

告訴我,如果你改變這種後獲得更多的錯誤。

+0

只需修復它,仍然會出現錯誤。現在是第二個else語句,第一個語句似乎工作。 – cmorris1441

+0

試試這個:$ reminderDate = $ year。' '$一個月。' 。」 $天;你也可以嘗試改變:date('Y m d');如果它不工作。 – ChapMic