PHP Form Validator / MySQL Insert - PullRequest
       5

PHP Form Validator / MySQL Insert

1 голос
/ 24 сентября 2010

Я написал небольшой PHP-файл, который получает информацию, которая была размещена на нем, а затем проверяет, не является ли он пустым. Если он не пустой, он проверяет, что имя пользователя еще не существует. Если это так, он перенаправляет. Если нет, он добавляет информацию в базу данных MySQL. Я не знаю, в чем проблема, но при попытке перейти к ней после нажатия кнопки «Отправить» в форме браузер отображает ошибку, сообщающую, что страница не может быть отображена. Вот код.

<?php
$firstname = $_POST['fname'];
$lastname = $_POST['lname'];
$email = $_POST['email'];
$username = $_POST['user'];
$password = $_POST['pass'];


$con = mysql_connect("localhost","USER","PASS");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("zach_blogin", $con);

$query="SELECT username FROM members WHERE username=$username";



if (mysql_num_rows($username) > 0 ) {
  header("Location: register.php?invalid");
} else {
  $sql=("INSERT INTO members (username, password, FirstName, LastName, Email)
  VALUES ($username, $password, $firstname, $lastname, $email)");
  if (!mysql_query($sql,$con))
    {
    die('Error: ' . mysql_error());
    }
else {
  header("Location: register.php?required");
}
?>

Ответы [ 2 ]

5 голосов
/ 24 сентября 2010

Вы не выполняете запрос:

$query="SELECT username FROM members WHERE username=$username";
//You need to execute the query here before you get num of rows.
if (mysql_num_rows($username) > 0 ) // also mysql_num_query takes an object.

Что-то вроде:

$query="SELECT username FROM members WHERE username=$username";
if(($result = mysql_query($query)) !== false) {
  if (mysql_num_rows($result) > 0 ) {
   .....
  }
}
2 голосов
/ 24 сентября 2010

Изменить это

if (mysql_num_rows($username) > 0 ) {

до

if (mysql_num_rows(mysql_query($query)) > 0 ) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...