PHP로 처리해야하는 양식을 개발할 때 양식과 PHP를 하나의 파일에 넣는 경향이 있습니다. signup.php를 사용하고 $ _GET 메소드를 사용하여 양식으로 수행해야 할 작업을 파악하십시오.jQuery/Ajax 및 PHP 양식 처리 설계
예를 들어 /site/signup.php가 요청 된 경우 HTML 양식을 표시해야하지만 /site/signup.php?action=newsignup이 요청 된 경우 (HTML 양식 제출시) 그것을 처리해야한다는 것을 알고 있습니다.
적은 파일을 유지해야하고 상호 작용하는 모든 것이 하나의 파일에 포함되어있어 문제를 쉽게 추적 할 수 있다는 점에서이 접근법에 매우 만족하고 있습니다. (데이터를 처리 할 때 페이지간에 연속적으로 리디렉션되는 사이트를 싫어합니다. .)
내가 어떻게 할 것인지의 거친 예입니다 :
<?php
if (isset($_GET['action'] && $_GET['action'] == "newsignup")
{
$name = cleanInput($_POST['name'];
$email = cleanInput($_POST['email'];
if(validUserName($name)== TRUE)
{
// do processing here
} else {
// fail processing here
}
if(validEmail($email)== TRUE)
{
// do processing here
} else {
// fail processing here
}
// Do database stuff etc
// Display success message
} else {
// Not $_GET so must be a new sign-up. Display html form
<form id="signup" action="signup.php?action=newsignup" method="post">
<input type="text" name="name" id="name" />
<input type="text" name="email" id="email" />
<input type="submit" id="submit" value="Submit" />
</form>
}
가 지금은 사용자가 양식을 작성하는 동안 피드백을 제공하기 위해 검증 클라이언트 측을 할 jQuery를/Ajax를 사용하기 시작하고, 양식의 텍스트 상자에 데이터를 입력하면 해당 데이터를 게시하기 위해 keyup 이벤트를 사용하여 실시간으로 데이터의 유효성이 검사됩니다. 유효성 검사를 위해 .php 스크립트에 extbox하십시오. 내가 jQuery를 포스트 사용하고 그렇게하려면, 파일 jquerysignup.php이
function name_check(){
var username = $('name').val();
if(name == "" || name.length < 4){
$('#name').css('border', '3px #CCC solid');
$('#text').text('');
}else{
$.post('jquerysignup.php', { name: $('#name').val()}, function(response) {
$('#phpout').html(response['message']); // return an error string if exists
if(response['returnval'] == 0){
$('#name').css('border', '3px green solid');
$('#submit').fadeIn('slow')
} else if (response['returnval'] == 2){
$('#name').css('border', '3px red solid');
$('#submit').fadeOut('slow')
} else {
$('#name').css('border', '3px red solid');
$('#submit').fadeOut('slow')
}
}, 'json');
} //
}
만 PHP 함수 validUserName 및 validEmail이 포함되어 있습니다.
두 개의 .php 파일이있는 위치에 있는데, 하나는 서버 측 유효성 검사를위한 것이고, 다른 하나는 클라이언트 측 유효성 검사를위한 것입니다. 클라이언트 측 및 서버 측 유효성 검사를 모두 유지하려고하지만 중복 기능을 포함하는 여러 파일을 보관하고 싶지는 않습니다.
나는 통합 솔루션을 찾아 내거나 고민하고 있으며 더 좋은 방법이 있어야한다는 것을 알고 있지만이 특정 문제를 다루기위한 예제는 찾을 수 없습니다.
나는 이것을 위해 모범 사례/해결책에 대한 몇 가지 지침을 정말 고맙게 생각한다. 해커가 항상 자신의 브라우저의 속성으로 그것을 조작 할 수 있기 때문에
감사합니다, 내가 가진 ..이 양식이 표시됩니다 리디렉션하지 않았다 당신이 묘사 한 방법에 대해 생각해 보았습니다.하지만 질문을하는 이유는 기술적 인 해결책보다는이 유형의 시나리오에 '가장 좋은 관행'이 있는지를 보는 것이 었습니다. 나는 모든 것이 서버 측에서 클라이언트 측 코드를 분리하고 싶은지에 달려 있다고 생각한다. 이 문제를 해결하는 방법에 대해서는 아직 두 가지 생각이 있지만 양식 처리 코드를 그대로두고 jQuery 이벤트를 validUserName 및 validPassword 함수가 포함 된 별도의 .php 파일에 게시하도록 결정했습니다. . – amer