나는 폼의 각 부분을 검증하는 함수를 사용하고있다. 이 특정 양식의 경우 전화 번호는 선택 항목입니다. 그래서 나는 다음과 같은 기능을 함께했다 :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' * 값을'trim()'해야합니다. –
@ Simo389 first try 광고 전화 번호 항목이없는 경우 현재 상태에서 validPhone 함수가 매개 변수없이 실행되고 빈 매개 변수없이 실행되므로 validPhone 함수의 매개 변수에 기본값을 지정합니다. 따라서 함수의 $ phone 매개 변수에 기본값을 지정해야합니다 값입니다. 매개 변수로 함수에 값이 전달되지 않으면 값으로 미리 정의한 기본값을 사용합니다. 여기에 설명이 필요합니다. –
어디에서이 기본값을 지정해야합니까? 분명히 양식을 제출 한 후에이 작업을 수행하면 양식이 제출 된 경우 양식에 제출 된 값이 '대체'됩니까? – Simo389