我正在使用函數來驗證表單的每個部分。對於此特定表單,電話號碼是可選條目。於是我想出了以下功能:沒有正確返回PHP函數的值?
if(isset($_POST['phone'])) { $phone = $_POST['phone']; }
//Call phone validation function
$phone = validPhone($phone);
if (strlen($phone) == 0) {
$mistakes[] = 'Your phone number must contain only NUMERIC characters.';
}
function validPhone($phone) {
if ($phone != '') {
$phone = trim($phone);
if (!ctype_digit(str_replace(' ', '', $phone))) {
$phone = '';
} else {
//accept phone entry and sanitize it
$phone = mysql_real_escape_string(stripslashes($phone));
}
} else {
$phone = 'not specified';
}
return $phone;
}
我的問題是,當你沒有爲$手機輸入內容時,該位:
else {
$phone = 'not specified';
}
似乎被跳過,因爲沒有什麼進入數據庫。
下面是相應的數據庫PHP:
//Insert Into Database
$sql="INSERT INTO signups (phone)
VALUES
(''".$phone."')";
if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}
我的本意是,只要沒有被用戶輸入,進入到數據庫將是「未指定」。我做錯了什麼嗎?
你應該在你傳遞給你的函數之前修剪($)'$ phone'的值* –
@ Simo389第一次嘗試廣告將缺省值設置爲validPhone函數中的參數,因爲在當前狀態下,如果它們沒有電話號碼輸入,validPhone函數將在沒有參數的情況下執行,並且不帶有空參數,因此您需要將函數的$ phone參數設置爲默認值值,所以如果沒有值傳遞給函數作爲參數,它將使用您預定義的默認值作爲值 需要解釋我在這裏:) –
我應該在哪裏指定此默認值?當然,如果我在提交表格後這樣做,如果有人進入表格,它會'覆蓋'表格中提交的值。 – Simo389