기본 콘텐트 관리 시스템을 만들고 있는데 양식에 입력되는 데이터의 유효성 확인에 박차를 가하고 있습니다.PHP 양식 데이터 유효성 확인 문제
예를 들어 하나의 양식은 탐색 메뉴에있는 제목의 이름을 편집하는 것입니다. 양식에는 몇 가지 데이터 조각이 있지만 주요 초점은 "menu_name"필드 (제목 이름)입니다.
"menu_name"의 양식 제출 데이터가 비어 있지 않은지 확인하고 오류가있는 경우 데이터를 제출해야합니다. 무슨 일이 일어나고있는 건 스크립트가 제목 이름을 계속 편집하는 것처럼 입력하지 않으면 양식 유효성 검사가 작동하지 않는 것 같습니다.이 경우 공백으로 만듭니다.
데이터는 당신이 볼 수있는 두 개의 사용자 정의 유효성 검사 기능으로 선택되어if (isset($_POST['submit']))
{
// Process the form
// Validations
$required_fields = array("menu_name", "position", "visible");
validate_presences($required_fields);
$fields_with_max_lengths = array("menu_name" => 30);
validate_max_lengths($fields_with_max_lengths);
// If errors occured, redirect
if(empty($errors))
{
// Perform update
// Assign POST data to variables
$id = $current_subject["id"];
$menu_name = mysql_prep($_POST["menu_name"]);
$position = (int) $_POST["position"];
$visible = (int) $_POST["visible"];
// 2. Perform database query
$query = "UPDATE subjects SET ";
$query .= "menu_name = '{$menu_name}', ";
$query .= "position = '{$position}', ";
$query .= "visible = '{$visible}' ";
$query .= "WHERE id = {$id} ";
$query .= "LIMIT 1";
$result = mysqli_query($connection, $query);
if ($result && mysqli_affected_rows($connection) >= 0)
{
// Success
$_SESSION["message"] = "Subject updated.";
redirect_to("manage_content.php");
}
else
{
// Failure
$message = "Subject update failed.";
}
}
}
, 두 번째는 내 관심사하지만 첫 번째 기능 validate_presences (되지 않습니다 :
이
은 양식 제출에 실행되는 스크립트입니다), 여기에 기능입니다 :function validate_presences($requried_fields)
{
GLOBAL $errors;
foreach($required_fields as $field)
{
$value = trim($_POST[$field]);
if (!has_presence($value))
{
$errors[$field] = fieldname_as_text($field) . " can't be blank";
}
}
}
당신은 그것을 인 has_presence() 함수를 참조하는이 볼 수
:
function has_presence($value)
{
return isset($value) && $value !== "";
}
을
누군가가 무엇이 잘못 되었습니까에 대한 아이디어가 있으면 도움을 주시면 감사하겠습니다. 자세한 정보가 필요한지 물어보십시오. 미리 감사드립니다.
유효성 검사 함수를 호출하기 전에'$ errors' 변수를 정의 했습니까? – Pierre
$ errors = array(); 유효성 검증 기능 페이지의 시작 부분에 정의됩니다. – Rubixryan
다음을 시도하십시오 return isset ($ value) &&! empty ($ value); has_presence 함수에서 – Pierre