나는이 간단한 로그인 폼을 테스트 중입니다. Chrome에서 PHP, XAMPP 테스트를하고 있습니다.PHP - CSS - 간단한 폼 유효성 검사 - 빈 결과에 대한 테두리 색 변경
<form action="login.php" method="POST">
<label>User: </label>
<input type="text" name="user" <?php if($errors){echo 'style="border:1px solid red;"';}?>>
<?php echo '<script>console.log("Value for $errors: '.$errors.'")</script>';?>
<label>Password: </label>
<input type="password" name="password" <?php if($errors){echo "style='border:1px solid red;'";}?>>
<div class="text-center">
<button type="submit" name="submit">Sign in</button>
</div>
</form>
이 코드는 login.php의 일부이며, 처음에, 나는 PHP 라인은 다음과 같습니다 :
<?php
session_start();
$user = "";
$password = "";
$errors = 0;
if(isset($_POST['submit'])){
if(isset($_POST['user'])){
if(!empty($_POST['user'])){
$user = $_POST['user'];
}
}else{
$errors = 1;
}
if(!empty(isset($_POST['password']))){
$password = $_POST['password'];
}else{
$errors = 1;
}
$_SESSION['user'] = $user;
$_SESSION['password'] = $password;
}
?>
동작을
이
는 폼의 코드 속성 자체를 호출합니다 (동일한 파일을 호출 -> login.php) PHP 스크립트에서 양식을 제출하는 경우 그것을 달성하기 위해 노력한 다음 모든 유효성 검사 등을 수행합니다. 수신 된 POST 값을 변수에 할당하십시오. 존재하지 않으며 비긴하지 않습니다. 비어 있거나 존재하지 않는 경우 -> $ errors = 1;두 가지 입력에 오류가있는 경우 테두리 색을 빨간색으로 변경해야합니다. 그래서 내가 한 :
<label>User: </label>
<input type="text" name="user" <?php if($errors == 1){echo 'style="border:1px solid red;"';}?>>
<?php echo '<script>console.log("Value for $errors: '.$errors.'")</script>';?>
나는 비어를 사용하여 약간의 리디렉션을 시도했습니다 콘솔에서 항상 0
을 보여주는 $ 오류의 값을 인쇄하려고에 추가 한 마지막 라인 ($ 사용자), 그리고 입력을 건드리지 않고 양식을 제출할 때 실제로 값이 비어 있음을 보여줍니다. 여전히 비어있는 이유를 완전히 알 수는 없지만 $ 오류는 항상 값 0입니다.
미리 감사드립니다. :)
호기심에서 ^^ 말할 트림을 검사하고 사용자로부터 들어오는 모든 데이터를 살균 할 필요가 1' 대신'TRUE '의 및'false'? 어쨌든 –
게시 됨 주로 학습 중이므로 주로 콘솔로 인쇄 할 때 true/false를 시도했지만 아무 것도 반환하지 않은 경우 숫자를 유지했습니다 – xragdollqueen
왜 당신이 노력하는지 잘 모르겠습니다. 이것들을 JS 콘솔에 기록하십시오. 그냥 대신 var_dump()를 사용하십시오 .' var_dump ($ errors);' –