나는 잠재적 인 직원에 대한 참조 편지를 업로드 할 수있는 응용 프로그램을 작성 중입니다.PHP 양식을 두 번 제출해야합니다.
모든 참고 자료에는 URL 끝에 고유 한 문자열이 포함 된 이메일이 발송됩니다. 예를 들어 주소는 www.mywebaddress? url = 503241a20b5085_18720621과 유사합니다.
고유 한 문자열이 유효한지 (즉, 데이터베이스에 있는지) 확인하려면 쿼리 검색을 수행해야합니다. 그러나 참조가 URL에 액세스하려고하면 보안 질문에 대답해야합니다. 그래서, 나는 그가 대답을 유효하게하는지, 그가 이전에 업로드했는지 등을 검사하여 어떤 페이지로 리다이렉트 할 것인지를 결정해야한다.
하지만 쿼리 때문에 내 코드는 사용자가 "제출"을 두 번 클릭해야합니다. 이건 정말 짜증나지만, 어떻게 해결해야할지 모르겠다.
if (isset ($_GET['url'])) {
$query = "SELECT * FROM ref_info WHERE url='" . $_GET['url'] . "'";
$result = $db->execute($query);
if (empty ($result)) {
//error message
} else {
$url = $_GET['url'];
if ($_SESSION['validated']) {
if ($result[0]['uploaded'] ==1) {
$_SESSION['uploaded'] =true;
} else {
$_SESSION['uploaded'] =false;
}
include_once("process_upload.php");
} else {
if (empty($result[0]['answer'])) {
include_once("security.php");
} else {
include_once("security_check.php");
}
}
}
}
아무것도 양식을 한 번만 제출 될 필요가 있다고 나는 그렇게 할 수 있나요 :
여기 내 코드의 관련 발췌입니까?
미리 제안 해 주셔서 감사합니다 !!
첫 번째 쿼리에는 ajax를 사용하고 유효한지 확인하십시오. – amitchhajer
이 질문에 글 머리 기호 워크 플로를 추가 할 수 있습니까? 왜 사용자가 두 번 제출해야하는지 이해할 수 있을지 모르겠습니다. – Matt
당신은 코드가 SQL 인젝션에 엄청나게 노출되어 있습니다. 준비된 진술에 대해 읽어보십시오. 또한 읽으십시오 : http://stackoverflow.com/a/60496/871050 –