2012-05-29 5 views
1

또 다른 질문 .. PHP MYSQL 등록 페이지 확인

아래 그 코드가 ... .. 나는 그것이 통과하는 형태하고자한다 기본적으로 위 (아래에 명시된 코드) 카운트 된 오류가 0이면 "INSERT INTO"코드를 실행하십시오. 카운트 된 오류가 1 이상이면 오류 및 데이터가 표시되지 않습니다.

그러나 한 가지 생각 .. 아래에 언급 된 코드는 실제로 "작업"을 수행하고 오류 :(

모든 의견 정말 감사를 줄 나던! 정말 감사합니다

<?php 
    global $pdo; 
     $pdo = new PDO('mysql:host=localhost;dbname=clubresults', 'root', '12345678'); 
    #Set Error Mode to ERRMODE_EXCEPTION. 
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    ?> 

<<<<<<<FORM GOES HERE>>>>>>>> 

<?php 

function validatePattern(&$errors, $field_list, $field_name, $pattern) 
{ 
    if (!isset($field_list[$field_name]) || $field_list[$firld_name] == '') 
     $errors[$field_name] = 'Required'; 
    else if (!preg_match($pattern, $field_list[$field_name])) 
     $errors[$field_name] = 'Invalid'; 
} 
    $errors = array(); 
    validatePattern($errors, $_GET, ':firstname', '/^[A-Z][a-zA-Z -]+$/'); 
    validatePattern($errors, $_GET, ':surname', '/^[A-Z][a-zA-Z -]+$/'); 
    validatePattern($errors, $_GET, ':Player1', '/^[0-9a-zA-Z_]$/'); 
    validatePattern($errors, $_GET, ':Player2', '/^[0-9a-zA-Z_]$/');  
    validatePattern($errors, $_GET, ':Player3', '/^[0-9a-zA-Z_]$/'); 
    validatePattern($errors, $_GET, ':Player4', '/^[0-9a-zA-Z_]$/');  
    validatePattern($errors, $_GET, ':Player5', '/^[0-9a-zA-Z_]$/');  


    if (count($errors) >0){ 
echo "<font face='Verdana' size='2' color=red>$msg</font><br><input type='button' value='Retry' onClick='history.go(-1)'>"; 
}else{ 
if(("$stmt = $pdo->prepare('INSERT INTO members (firstname, surname, DD, MM, YYYY, email, Player1, Player2, Player3, Player4, Player5) 
VALUES (:firstname, :surname, :DD, :MM, :YYYY, :email, :Player1, :Player2, :Player3, :Player4, :Player5)'); 
$stmt->bindParam(':firstname', $_GET['firstname']); 
$stmt->bindParam(':surname', $_GET['surname']); 
$stmt->bindParam(':DD', $_GET['DD']); 
$stmt->bindParam(':MM', $_GET['MM']); 
$stmt->bindParam(':YYYY', $_GET['YYYY']); 
$stmt->bindParam(':email', $_GET['email']); 
$stmt->bindParam(':Player1', $_GET['Player1']); 
$stmt->bindParam(':Player2', $_GET['Player2']); 
$stmt->bindParam(':Player3', $_GET['Player3']); 
$stmt->bindParam(':Player4', $_GET['Player4']); 
$stmt->bindParam(':Player5', $_GET['Player5']); 
$stmt->execute();")){ 
echo "<font face='Verdana' size='2' color=green>Welcome, You have successfully signed up</font>";} 
else{ echo "Database Problem, please contact Site admin"; 
} 
?> 
+0

C를 작동 희망

if(isset($_POST['submit'])){ //get data and validation code comes here }else{ //your form comes here } 

제출에 대한 $ _GET이 (hehe) 매우 커질 수 있기 때문에'$ field_list'를'& $ field_list'에 hange하십시오. –

+0

완료! 귀하의 제안에 감사드립니다. 하지만 한가지 토 .. 실제로 작동하지 않는 위의 코드와 내가 왜 작동하지 않는 이유를 찾을 수 없습니다 : ( – Tuzki

+0

음 폼 PHP에서 유효성 검사가 최선의 방법이 아니며 jquery 유효성 검사기를 사용하여 시도한 적이 있습니까? – zaw

답변

0

검사와 이 내가이

당신이해야
+0

uni에서 돌아올 때 시도해보십시오! 제안 해 주셔서 감사합니다! – Tuzki