0
등록 시스템을 만들려고하고 있는데 특정 등록을 위해 암호와 사용자 이름을 모두 확인하는 기능이 있습니다. 문제는 $ _POST 세부 정보를 제출하고 다시 가져올 때 호출하는 함수가 $ errors라는 변수를 채우고 세션에 추가되는 것입니다. 문제는 반응해야하는 모든 오류가 아니라는 것입니다. 등록 세션의 PHP 유효성 검사 기능
이
내 기능입니다 :<?php
global $errors;
function validation($username, $password) {
global $errors;
$min = 9;
$max_u = 20;
$max_p = 32;
header('login.php');
if(strlen($username) < $min) {
$errors .= "{$username} is too short for a username, it must be at least 8 characters long.<br/>";
}
if(strlen($password) < $min) {
$errors .= "Your password is too short, it must be at least 8 characters long.<br/>";
}
if(strlen($username) > $max_u) {
$errors .= "{$username} is too long for a username, it must be less than 20 characters long.<br/>";
}
if(strlen($password) > $max_p) {
$errors .= "Your password is too long, it must be less than 32 characters long";
}
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/ ',$password)) {
$errors .= "You used innapropriate characters in your username or password.<br/>";
}
if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/ ',$username)) {
$errors .= "You used innapropriate characters in your username or password.<br/>";
}
}
if (!empty($errors)) {
$_SESSION["errors"] = $errors;
}
?>
그런 다음 내 PHP 양식 및 메인 페이지에, 나는 그것을 사용을 부를 다음 : 나는의 위치를 파악해야
<?php
$errors;
$second_header = "Registration Menu";
require_once('includes/header.php');
if (isset($_POST['register'])) {
echo ($_SESSION['errors']);
그^
validation(($_POST['username']),($_POST['password']));
}
?>
<body>
<form type="submit" name="registration" method="post">
<br/>Username<input type="text" name="username">
<br/>Password:<input type="password" name="password">
<br/>Confirm Password: <input type="password" name="password_confirmation">
<br/><input type="submit" name="register" value="Create Account">
</form>
</body>
</div>
</html>
이 기능이 작동하지 않는 이유를 알 수 없습니다. 유효성 검증 기능을 호출 한 후
음, 하나, 당신은 결코 '으로 session_start()를'그래서 아무것도 당신이 경우 손실 될 것입니다 $ _SESSION으로 물건을 호출하지거야 스크립트가 종료됩니다. –
어떤 결과가 있습니까? –
Do var_dump ($ errors); 비어 있는지 확인하기 전에 ($ errors). 당신이 무엇을 가지고 있는지 보자. – mkabanen