2014-01-09 2 views
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> 

이 기능이 작동하지 않는 이유를 알 수 없습니다. 유효성 검증 기능을 호출 한 후

+1

음, 하나, 당신은 결코 '으로 session_start()를'그래서 아무것도 당신이 경우 손실 될 것입니다 $ _SESSION으로 물건을 호출하지거야 스크립트가 종료됩니다. –

+0

어떤 결과가 있습니까? –

+0

Do var_dump ($ errors); 비어 있는지 확인하기 전에 ($ errors). 당신이 무엇을 가지고 있는지 보자. – mkabanen

답변

0
echo ($_SESSION['errors']); 

필요가 올

validation(($_POST['username']),($_POST['password']));