2010-02-18 3 views
0

Я только что создал скрипт с нуля, но я все еще собираюсь его улучшить. В основном я тестирую его первым, прежде чем я его улучшить - как-то, это не работает ...PHP Register Script - Не работает

if(isset($_POST['submit'])) 
{ 
    $username = mysql_escape_string(trim($_POST['login'])); 
    $password = $_POST['password']; 
    $vpassword = $_POST['vpassword']; 
    $email = mysql_escape_string(trim($_POST['email'])); 
    $vemail = mysql_escape_string($trim($_POST['vemail'])); 

    $ip = $_SERVER['REMOTE_ADDR']; 
    $date = date("jS F Y"); 

if(!empty($username) || !empty($password) || !empty($vpassword) || !empty($email) || !empty($vemail)) 
{ 
    if($password == $vpassword && $email == $vemail) 
    { 
     $sql = "SELECT username FROM members WHERE username='" . $username . "'"; 

     $result = mysql_query($sql) or die(mysql_error()); 

     if(mysql_affected_rows($result) == 1) 
     { 
      echo "The account already exists!"; 
     } 
     else 
     { 
      $sql = "INSERT INTO members 
        (username, password, email, ip, level, type, signed, hide, hidemail, avatar, notes) 
        VALUES('" . $username . "', '" . $password . "', '" . $email . "', '" . $ip . "', '0', '0', '" . $date . "', '1', '1', '', '')"; 

      $result = mysql_query($sql) or die(mysql_error()); 
     } 
    } 
    else 
    { 
     echo "Please check the fields so that they match"; 
    } 
} 
else 
{ 
    echo "Check the missing fields!"; 
} 

if($result) 
{ 
    echo "Account created successfully!"; 
} 
else 
{ 
    echo "Error creating account"; 
} 
} 

Что может быть неправильно об этом ...?

Помощь ценится :-)

+0

Не могли бы вы объяснить, что именно не работает? –

+2

Я думаю, что ваш условный должен быть && вместо || – sshow

+0

sshow - это правильно! Вы также можете попытаться выполнить эхо-запрос, полученный в результате запроса INSERT, и выдать команду непосредственно вашей базе данных, вы можете обнаружить, что ошибка не в PHP, а в SQL-запросе. Может быть, поле «дата»? – Thomas

ответ

0

Вы проверяете, если одно из значений не является пустым, когда вы используете ||. Используйте вместо этого &&. Таким образом, вы не позволяете пустому поле. Итак:

if(!empty($username) || !empty($password) || ...

Это означает, что "если любой из них не является пустым". Используйте вместо этого:

if(!empty($username) && !empty($password) && ...

Что означает «если нет пустых полей».

+0

Хорошо, я изменил его ... но когда я представляю регистр, он просто показывает пустой, белый, ничто :( У меня есть это для моей таблицы базы данных: CREATE TABLE '( членов организации' id' BigInt (40) NOT NULL AUTO_INCREMENT, 'username' varchar (35) NOT NULL, ' password' varchar (30) NOT NULL, 'email' varchar (60) NOT NULL, ' ip' varchar (18) NOT NULL, ПЕРВИЧНЫЙ КЛЮЧ ('id') ) ENGINE = MyISAM DEFAULT CHARSET = latin1 AUTO_INCREMENT = 1; – MacMac

+0

Как эта база данных выше, я отредактировал ее и скрипт PHP после публикации этого, чтобы узнать, работает ли он, оказалось, – MacMac

Смежные вопросы