사용자가 양식에 입력 한 정보를 DB에 게시하는 스 니펫 (snippet) 코드가 있습니다. DB에 데이터를 제출하는 PHP의 마지막 행 뒤에 나는 다음과 같은 내용이 있습니다.양식 제출이 작동하지 않아 PHP 헤더가 리디렉션됩니다.
header("location:http://www.site.com/page.htm");
이것은 아무 것도하지 않습니다. 그것은 여전히 모든 사용자 정보를 DB에 게시하지만 페이지가 삭제되고 그 내용이 그대로 유지됩니다. 리디렉션 없음. 여기
전체 조각입니다 :<?php
if(isset($_POST['register'])){
$username = ($_POST['username']);
$password = ($_POST['password']);
$email = ($_POST['email']);
$email2 = ($_POST['email2']);
$password2 = ($_POST['password2']);
$commname = ($_POST['commname']);
$outpostname = ($_POST['outpost']);
$special = ($_POST['specialty']);
if($username == "" || $password == "" || $email == "" || $password2 == "" || $email2 == "" || $commname == "" || $outpostname == "" || $special == "no"){
echo "Please supply all required fields!";
}elseif(strlen($username) > 20){
echo "Username must be less than 20 characters!";
}elseif(strlen($email) > 100){
echo "E-mail must be less than 100 characters!";
}elseif(strlen($email2) > 100){
echo "E-mail verify must be less than 100 characters!";
}elseif(strlen($commname) > 20){
echo "Your Commander's name must be less than 20 characters!";
}elseif(strlen($outpostname) > 20){
echo "Your Outpost's name must be less than 20 characters!";
}else{
$register1 = mysqli_query($myConnection,"SELECT `id` FROM `user` WHERE `username`='$username'") or die(mysqli_error($myConnection));
$register2 = mysqli_query($myConnection,"SELECT `id` FROM `user` WHERE `email`='$email'") or die(mysqli_error($myConnection));
if(mysqli_num_rows($register1) > 0){
echo "That username is already in use!";
}elseif(mysqli_num_rows($register2) > 0){
echo "That e-mail address is already in use!";
}else{
$spec = ($_POST['specialty']);
$comnam = ($_POST['commname']);
$postnam = ($_POST['outpost']);
$rand_col = rand(1,5); /*Number of Colonies that exist in the game*/
$ins1 = mysqli_query($myConnection,"INSERT INTO `stats` (`username`,`credits`,`food`,`land`,`energy`,`turns`,`turns_max`,`gas`,`ore`,`population`,`buildeff`,`offpts`,`defpts`,`score`,`specialty`) VALUES ('$username',2000,2000,100,2000,30,30,2000,2000,500,100,0,0,0,'$spec')") or die(mysqli_error($myConnection));
$ins2 = mysqli_query($myConnection,"INSERT INTO `unit` (`username`,`trainee`,`juggernaut`,`infantry`,`marauder`,`terminator`,`reconsq`,`prisoner`,`destroyer`,`colossus`) VALUES ('$username',100,0,50,0,0,0,0,0,0)") or die(mysqli_error($myConnection));
$ins3 = mysqli_query($myConnection,"INSERT INTO `user` (`colonynum`,`username`,`password`,`email`,`specialty`,`commname`,`outpostname`) VALUES ('$rand_col','$username','".md5($password)."','$email','$spec','$comnam','$postnam')") or die(mysqli_error($myConnection));
$ins4 = mysqli_query($myConnection,"INSERT INTO `structure` (`username`,`agridome`,`spaceport`,`barrack`,`researchfac`,`laserbat`,`factory`,`infirmary`,`trainingfac`) VALUES ('$username',1,0,5,0,0,0,1,1)") or die(mysqli_error($myConnection));
header("location:http://www.site.com/page.php");
}
}
}
?>
그래 내가 어떤 SQL 주입 보호를 사용해야하지만, 단지 작업을 아직 것은 .. 즉 나중에 올 것이다 것을 위선적 인 말투, 알고)
는 HTTP 헤더 대소 문자를 구분합니다 : – David
대문자를 입력했는데 위치와 URL 사이에 공백이 없어야했습니다. –
리디렉션 전에 아무것도 출력되지 않는 것을 확인 했습니까? – JBES