PHP 및 MySQL로 사용자 등록 및 로그인을 설정하려고합니다. 나는 그것이 작동해야하는 시점에 이르렀지만 실제로 Register 단추를 클릭 한 후에 빈 페이지 이외의 것을 얻으려고 애 쓰고 있습니다. 내 'db.php'파일의 자격 증명을 변경하면 오류가 발생하므로 데이터베이스가 잘 연결되고 있음을 알고 있습니다. 나는 PHP 쇼 오류를 만들려고했지만 아무 소용이 없어도 여전히 빈 페이지!제출 후 빈 페이지가 나타나는 사용자 등록 양식
다음 코드에 문제가 발생할 수있는 것으로 튀어 나와있는 것이 있습니까? 등록 성공 여부에 관계없이 양식을 표시해야하는 오류 처리 코드가 있지만 공백으로 만 표시됩니다.
<html>
<head>
<title>Registration</title>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<?php
require('db.php');
if (isset($_REQUEST['username'])) // If form submitted, insert values into the database.
{
$username = stripslashes($_REQUEST['username']); // removes backslashes
$username = mysqli_real_escape_string($con,$username); //escapes special characters in a string
$email = stripslashes($_REQUEST['email']);
$email = mysqli_real_escape_string($con,$email);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con,$password);
$query = "INSERT INTO users (username, password, email) VALUES ('$username', '".md5($password)."', '$email')";
$result = mysqli_query($con,$query);
echo $result;
if($result) {
echo "<div class='form'><h3>You are registered successfully.</h3><br>Click here to <a href='login.php'>Login</a></div>";
}
} else {
?>
<div class="form">
<h1>Registration</h1>
<form name="registration" action="" method="post">
<input type="text" name="username" placeholder="Username" required />
<input type="email" name="email" placeholder="Email" required />
<input type="password" name="password" placeholder="Password" required />
<input type="submit" name="submit" value="Register" />
</form>
</div>
<?php } ?>
</body>
RiggsFolly 나에게 주어진 몇 가지 오류보고에
가) 문자열 이스케이프는 완전히 SQL 인젝션으로부터 당신을 보호하지 않습니다 - ** 매개 변수가있는 문을 사용 ** B)를 사용하여 'password_hash()'와'password_verify()'사용 c)'var_dump ($ result)'시도 -'echo'는 아무것도 출력하지 않는다. false –
'ini_set ('display_errors', 1)을 추가하십시오. ini_set ('log_errors', 1); error_reporting (E_ALL); mysqli_report (MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);'를 스크립트 상단에 추가하십시오. 이것에 의해, mysqli_의 모든 에러가 강제적으로 무시되어 버리거나 무시할 수없는 Exception을 생성한다 ( ). – RiggsFolly
이것은 문자 그대로 이런 식으로 일하는 첫 번째 모습입니다. 베스트 프랙티스를 적용하기 전에 보안되지 않은 버전을 사용하기를 원했습니다. 그러나, 나는 심지어 그것을 얻으려고 고투하고있다. – LegendEater