2015-03-13 2 views
0

регистрационная форма подключается к базе данных через db.php, но у меня возникают проблемы с отправкой данных для входа.Страница входа не подключена к странице регистрации

<html> 
<head> 
<?php 
include('db.php'); 

$username = @$_POST['username']; 
$password = @$_POST['password']; 
$submit = @$_POST['submit']; 

основной проблемой является после нажатия кнопки отправить щелкнута существующего пользователя он должен дать сообщение, но есть проблема в если заявление о, потому что на WAMP сервер его показ только еще сообщение, т.е. Ошибка.

if ($submit) 
{ 
$result = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password'"); 
if (mysql_num_rows($result)) { 
    $check_rows = mysql_fetch_array($result); 
$_POST['username'] = $check_rows['username']; 
$_POST['password'] = $check_rows['password']; 

echo "<center>"; 
echo "You are now Logged In. "; 
echo "</center>";      
} 
else { 
echo "<center>"; 
echo "No User found. "; 
echo "</center>"; 
} 
} 
else echo "Error"; 
?> 
</head> 
<body> 
<form method="post"> 
Username : <input name="username" placeholder="Enter Username" type="text"><br></br> 
Password : <input name="password" placeholder="Enter Password" type="password"><br> 
<input type="submit" value="Submit"> 
</body> 
</html> 
+1

Ваш '' не имеет атрибута name 'name =" submit ", поэтому' $ submit = @ $ _ POST ['submit']; 'всегда будет быть пустым, и 'if ($ submit)' всегда будет 'false' – Sean

ответ

1

Вы хотите получить $_POST с именем submit, но не отправлять его в виде

изменения Try

<input type="submit" value="Submit"> 

в

<input type="submit" name="submit" value="Submit"> 
0

Во-первых, это старый стиль PHP/MySQL. Так что посмотрите PDO на php.net, увидев, как вы настраиваете новый проект, на самом деле не составит труда внести изменения сейчас, а не позже.

Теперь на ваш вопрос. если вы собираетесь продолжать свой старый метод, попробуйте это.

$sql = "SELECT * FROM user WHERE username=' . $username . ' AND password=' . $password . '"; 

// check the query with the die & mysql_error functions 
$query = mysql_query($sql) or die(mysql_error()); 
$result = mysql_num_rows($query); 

// checking here equal to 1 In a live case, for testing you could use >= but not much point. 
if ($result == 1) { 

    // Checking needs to be Assoc Now you can use the field names, 
    // otherwise $check_rows[0], $check_rows[1] etc etc 
    $check_rows = mysql_fetch_assoc($query); // oops we all make mistakes, query not result, sorry. 

    // This is bad but for example il let this by, 
    // please dont access user supplied data without 
    // validating/sanitising it.   
    $_POST['username'] = $check_rows['username']; 
    $_POST['password'] = $check_rows['password']; 

} else { 

    // do not logged in here 

} 

То же самое в PDO

$sql=" Your query here "; 
$pdo->query($sql); 
$pdo->execute(); 
$result = $pdo->fetch(); 

if ($result = 1) { 
    // do login stuff 
} else { 
    // no login 
} 

Помните, что вам нужно настроить PDO и не могут быть доступны на сервере по умолчанию (старше PHP/MySQL версии), но ваш компьютер должен быть достаточно доволен, чтобы настроить их.

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