2013-05-22 4 views
-2

Я использую этот код для регистрации пользователей, но он не работает. Это всегда эхо «Ошибка регистрации». Я пробовал много раз, но ничего не работаетРегистрационная форма не работает

if(isset($_POST['sub'])) 
{ 
    $uname = $_POST['uname']; 
    $email = $_POST['email']; 
    $pass_hash = PassHash::hash($_POST['pass']); 

    $sq="SELECT * FROM user WHERE username='$uname'"; 
    //echo $sq; 
    $re=mysqli_query($link,$sq); 
    if(mysqli_num_rows($re)>0) 
    { 
     echo "Username already taken !"; 
    } 
    else 
    { 
     $SQ = "SELECT * FROM user WHERE email='$email'"; 
     //echo $SQ; 
     $res=mysqli_query($link,$SQ); 
     if(mysqli_num_rows($res)>0) 
     { 
      echo "Email already taken !"; 
     } 
     else 
     { 
      $SQL = "INSERT INTO user(username,email,password) VALUES('$uname','$email','$pass_hash')"; 
      //echo $SQL; 
      $result = mysqli_query($link,$SQL); 
      if(!$result) 
      { 
       echo "Registration failed !"; 
      } 
      else 
      { 
       echo"register done"; 
      } 
     } 
    } 
} 

ниже структура таблицы

CREATE TABLE `user` (
    `id` int(11) NOT NULL auto_increment, 
    `username` varchar(20) NOT NULL, 
    `password` varchar(100) NOT NULL, 
    `email` varchar(20) NOT NULL, 
    `status` int(11) default '0', 
    `sdate` date NOT NULL, 
    `s_type` varchar(2) NOT NULL, 
    `amount` decimal(10,2) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Кто-нибудь знает, в чем проблема?

+0

Что означает 'echo mysqli_error ($ link)' print? – andrewsi

+3

За исключением уязвимой уязвимости SQL-инъекции, являющейся проблемой, каков фактический результат запроса? Есть ли ошибки в базе данных? Если бы я мог угадать, основываясь только на запрошенном запросе, я мог бы предложить обернуть «пользователь» в обратном тике, поскольку это может быть зарезервированное слово в MySQL. (Обычно безопасно обертывать другие идентификаторы объектов одинаково). – David

+0

@andrewsi показывает пустую страницу – gss

ответ

2

У вас в таблице есть группа из not null полей, но вы не назначаете им никаких значений, поэтому ваш запрос insert не выполняется.