2014-04-29 6 views
-1

제발 도와주세요, 나는 PHP를 처음 사용하고 등록 페이지를 작성하려고합니다. 오류는 나타나지 않지만 데이터는 데이터베이스에 나타나지 않습니다. 모든 유효성 검사가 올바르게 작동하므로 테이블에 삽입 할 때 잘못된 것이 있다고 생각합니다. 누구든지 도와 줄 수 있습니까?테이블에 삽입하면 작동하지 않지만 오류는 발생하지 않습니다.

<?php 

if($_SERVER['REQUEST_METHOD']=='POST') 
{ 
require('connect_db.php'); 
$errors = array(); 


if(empty($_POST['firstname'])) 
    { 
    $errors[]='Enter your Firstname'; 
    } 
else 
    { 
    $fn = mysqli_real_escape_string($dbc, trim($_POST['firstname'])); 
    } 


if(empty($_POST['surname'])) 
    { 
    $errors[]='Enter your Surname'; 
    } 
else 
    { 
    $sn = mysqli_real_escape_string($dbc, trim($_POST['surname'])); 
    } 


if(empty($_POST['email'])) 
    { 
    $errors[]='Enter your email address'; 
    } 
else 
    { 
    $email = mysqli_real_escape_string($dbc, trim($_POST['email'])); 
    } 

if(!empty($_POST['pass1'])) 
    { 
     if($_POST['pass1']!= $_POST['pass2']) 
      { 
       $errors[] = 'Passwords do not match'; 
      } 
     else 
      { 
       $p = mysqli_real_escape_string($dbc, trim($_POST['pass1'])); 
      } 
    } 
else 
    { 
     $errors[]="Enter your password"; 
    } 

if (empty($errors)) 
    { 
     $q = "INSERT INTO Users(Username, Firstname, Surname, Password) 
      VALUES($email, $fn, $sn, User, SHA1($p))"; 
     $r = mysqli_query ($dbc, $q); 
     if ($r) 
     { 
      echo "success"; 
     } 
    } 
else 
    { 
     echo '<h1>Error</h1><p id="errors">The following error/s occurred:<br/>'; 
     foreach ($errors as $error) 
      { 
       echo"$error <br/>"; 

      } 
     echo"Please try again</p>"; 
     mysqli_close($dbc); 
    } 

}

+0

이 질문은 ** 간단한 인쇄 오류 **로 인한 것입니다. 비슷한 질문이 여기에 주제 일지 모르지만, 이것은 미래 독자를 돕지 않을 방법으로 해결되었습니다. – Kermit

답변

0

당신은 당신의 문자열 값 주위에 따옴표를 놓치고 :

INSERT INTO Users(Username, Firstname, Surname, Password) 
     VALUES($email, $fn, $sn, User, SHA1($p)) 

가 있어야한다 :

INSERT INTO Users(Username, Firstname, Surname, Password) 
     VALUES('$email', '$fn', '$sn', 'User', 'SHA1($p)') 

이유를 오류가 당신이하지 않은 것입니다 수 실제로 어떤 것인지 확인합니다. $r의 값을 확인할 때 else 문을 추가해야하며 그 곳에서 mysqli_error()을 호출하여 오류 메시지를 확인하십시오.

+0

나는 그것도 생각했다. 질문의 저자는 오류가 나타나지 않는다고 말하면서 만, 어떻게해야합니까? 단어 "success"가 나타나지 않으면 SQL에 오류가있는 것입니다. –

+0

고마워요.하지만 고칠 수는 없습니다. – emma

+0

내가 말한 것처럼 오류 처리를 추가 했습니까? –

관련 문제