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";
}
?>
C를 작동 희망
제출에 대한 $ _GET이 (hehe) 매우 커질 수 있기 때문에'$ field_list'를'& $ field_list'에 hange하십시오. –
완료! 귀하의 제안에 감사드립니다. 하지만 한가지 토 .. 실제로 작동하지 않는 위의 코드와 내가 왜 작동하지 않는 이유를 찾을 수 없습니다 : ( – Tuzki
음 폼 PHP에서 유효성 검사가 최선의 방법이 아니며 jquery 유효성 검사기를 사용하여 시도한 적이 있습니까? – zaw