많은 질문을 받았지만 모든 사람의 코드가 다르다고 생각합니다. 그러나 등록 양식을 확인하는 데 문제가 있습니다.왜 내 양식이 잘못 검증 되었습니까?
스 니펫 아래에 제 코드를 게시합니다.
지금 정확히 내가 뭘 잘못하고 있니? 모든 필드가 채워 졌는지 확인하고 싶지만 아래 코드를 사용하거나 die() 함수에 오류를 추가하더라도 나머지 코드는 여전히 실행되고 양식이 전송됩니다.
아래 스 니펫은 제가 시도한 것입니다.
if(isset($_POST["submit"])){
if(empty($firstname) || empty($lastname) || empty($username) || empty($password) ||
empty($passwordconf)
{
echo "You did not fill out the required fields.";
die();
}
$user=$_POST['user'];
$pass=$_POST['pass'];
이것은 현재 사용중인 코드입니다.
if(isset($_POST["submit"])){
$user=$_POST['user'];
$pass=$_POST['pass'];
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['email'];
$username = "DBname";
$password = "DBpass";
$hostname = "DBhost";
$md5pass = md5($pass);
if(empty($email)){ //this is what I've tried
$errors[] = "email cannot be left empty";
}
//connection to the database
$dbhandle = mysqli_connect($hostname, $username, $password)
or die("Unable to connect to server");
$con=mysql_connect($hostname, $username, $password) or die(mysql_error());
$select=mysql_select_db("Database", $con) or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
{
$sql="INSERT INTO login(username,password,firstname,lastname,email)
VALUES('$user','$md5pass','$fname','$lname','$email')";
$result=mysql_query($sql);
if($result){
echo "Account Successfully Created, Please login to continue";
} else {
echo "Failure!";
}
} else {
echo "That username already exists! Please try again with another.";
}
}
데이터베이스가 주입 –
**에 매우 취약은 위험 ** : 당신은 ** [믹싱 더 이상 쓸모없는 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)와 현대적인 것 (작동하지 않을 것입니다) 만 사용해야합니다 [현대 대체] (http://php.net/ manual/ko/mysqlinfo.api.choosing.php). 또한 ** [SQL 주입 공격] (http://bobby-tables.com/) **에 현대적인 API를 사용하면 쉽게 방어 할 수 있습니다 ** (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)을 사용하십시오. – Quentin
[적합하지 않은 해싱 알고리즘] (http://php.net/manual/en/faq.passwords.php)을 사용하고 있으며 [주의를 기울여야합니다.] (https://www.owasp.org/index. php/Password_Storage_Cheat_Sheet)를 입력하십시오. – Quentin