2013-08-08 5 views
0

Я получаю проблему там, где мои регистрационные данные обыкновения позвольте мне войти в моей страницу :(Войти страницу обыкновения войти

поэтому мои настроить страницы

<?php 

    $db = mysql_connect("$host", "$dblogin", "$dbpassword"); 
    mysql_select_db("$dbname"); 

$res = mysql_query("SELECT * FROM userdb WHERE email='$email'"); 
$playerinfo = mysql_fetch_array($res); 
$date2 = date("H:i"); 

function error($type) 
{ 
    if($type == "field") 
    { 
echo '<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" bgcolor="#000000" text="#FFFFFF">'; 
     echo '<p align=center><font color="red">You have left fields blank. Please <a href="index.php">relogin</a></font></center></p>'; 
    } 

    elseif($type == "password") 
    { 
     echo '<p><center><font color="red">Incorrect password. Please <a href="index.php">relogin</a></font></center></p>'; 
    } 
} 
echo '</body>'; 
?> 

моей страница Войти в

<body link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF" bgcolor="#000000" text="#FFFFFF"> 

<p align="center"> 
<img border="0" src=logo.jpg></img></p> 
<p align="center"> 
<form action=check.php method=post> 
<p align="center"><font size=1><b><font face="Tahoma" size="2">Login.</font></b><br><br> 
<samp style="font-weight: normal; font-size: 7pt; font-family: tahoma"><font face="Tahoma" size="2"><b>Email -</fomt></b></font></samp><font face="Tahoma" size="2"><b> 
<input type="text" name="email" size="20" style="border: 1px solid black"> 
</b></font></font><font face="Tahoma" size="2"> 
<br> 
<samp style="font-weight: normal; font-size: 7pt; font-family: tahoma"> 
<b><font face="Tahoma" size="2">Pass -</font></b></samp><b><font size="1" face="Tahoma"><input type="password" name="password" size="20" style="border: 1px solid black"></font></b><br><input type="submit" value="Log In" style="border: 1px solid black"> 
<br> 
</form> 
</body> 

и моя страница check.php является

<? 
session_start(); 
include("setup.php"); 

if(!$email || !$password) { 

error("field"); 

exit(); 
} 

if($password == $info['password']) { 

session_register("password"); 
session_register("email"); 

include("top.php"); 

echo "<p><b><center>Welcome</center></b></p>"; 

echo "<p><u><b>Members Area</b></u></p>"; 

echo "<p><center>- <b><a href=>Page</a></b> -</center></p>"; 

echo "<p><center>- <b><a href=logout.php>Log Out</a></b> -</center></p>"; 

include("bottom.php"); 

} 
else 
{ 
    error("password"); 
} 
?> 

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

Где я провалился?

+1

[Обновление с расширения mysql] (http://www.oleaass.com/why-people-needs-to-stop-using-the-mysql-extension/) –

+0

У меня возникли проблемы с тем, что делает ваш код на самом деле, половина ваших переменных просто появляется из ниоткуда, поэтому я понятия не имею, что они должны содержать, а другая половина назначается на вещи, но мы никогда не видим, как они используются , Вы слишком сильно сокращаете свои фрагменты кода. Я думаю, что – Lochemage

+0

@lonelyranger .. я думаю, что вы забыли указать свои переменные ... проверьте мой ответ ниже. Может быть, это помогает – woofmeow

ответ

0

Я думаю, что вы даже не установить переменные: D Вот почему он говорит «Вы оставили поля пустыми»

 
session_start(); 
include("setup.php"); 

После этого включают

 
$email = $_POST["email"]; 
$password = $_POST["password"]; 

Кроме этого: Используйте подготовленные операторы, чтобы избежать SQL Injection

+0

Это пробка, которую я искал, только проблема теперь заключается в том, что он говорит о некорректном пароле lol –

+0

Это потому, что вы вызываете его 'error (" field ");' string .. и затем сравнивая его с тем, что было напечатано в '$ password' !! lol .. не стесняйтесь повышать это и принимать ответ, если он решил исходную проблему, которую вы отправили @LonelyRanger :) – woofmeow

+0

1 из 2 вы сделали то, что я спросил @LonelyRanger: P lol ... anyways дайте мне знать, если вы снова застрянете .. но попробуйте использовать подготовленные заявления ... или это может быть опасно. – woofmeow

0

Проблема может быть в следующем:

$db = mysql_connect("$host", "$dblogin", "$dbpassword"); 

Я думаю, что вы имели в виду:

$db = mysql_connect("{$host}", "{$dblogin}", "{$dbpassword}"); 

Вы не можете включать переменные в строку без {}.

Но даже в этом случае вам необходимо определить эти переменные перед этой строкой.

 $host = "ipaddress"; 

Кроме того, как только вы получите за что вы лечите строки как булевы:

 if(!$email || !$password) 
+0

Извините, что те $ host-места заменяются фактическим адресом хоста , имя базы данных, пароль базы данных. Он получает информацию, необходимую для этого процесса, который я использовал на моей главной странице, чтобы извлекать данные из моей базы данных, чтобы они отображались на моем сайте. –

+0

Что насчет в электронной почте = '$ email'? и вы меня редактируете, вы обрабатываете строки как булевы. ! $ email означает, что электронная почта не равна 1, не так ли? вы имели в виду нечто большее, чем $ email! = '' – developerwjk

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