2013-11-19 7 views
-2

привет, я создал базовую систему входа php (не используя PDO), так как я не получил доступа к базовому php.PHP basic login system login borken

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

пожалуйста нежный: S

вот мой код.

<?php 
if($logged_in == 1) 
    { 
    die('You are already logged in, '.$_SESSION['name'].'.'); 
    } 
//---------------------------------------------------------------- 
//Escape any Dangerous SQL Characters in the text 
//---------------------------------------------------------------- 
function QuoteSmart($value, $handle) 
    { 
    if (get_magic_quotes_gpc()) 
    { 
    $value = stripslashes($value); 
    } 
    if (!is_numeric($value)) 
    { 
    $value = "'" . mysql_real_escape_string($value, $handle) . "'"; 
    } 
    return $value; 
    } 
if (isset($_POST['submit'])) //if the form has been submitted 
    { // check they filled in what they were supposed to and authenticate */ 
    if(!$_POST['txt_email'] | !$_POST['txt_password']) 
    { 
    die('You did not fill in a required field.'); 
    } 
    // authenticate the username and passsword. 
    $email = $_POST['txt_email']; 
    $password = $_POST['txt_password']; 

    //------------------------------ 
    //Connect to the database 
    //----------------------------- 
    $server = "zzz"; 
$schema = "Marwick"; 
$uid = "xxx"; 
$pwd = "yyy"; 

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



$db_connect = mysql_connect($server , $UserID , $PassWord); 
$db_select = mysql_select_db($schema, $db_connect); 


    if ($db_select) 
    { 
    $email = QuoteSmart($email, $db_connect); 
    $password = QuoteSmart($password, $db_connect); 
    $SQL = "SELECT * FROM account WHERE email = $email AND password = $passwordword"; 
    $Result = mysql_query($SQL); 
    $NumberRows = mysql_num_rows($Result); 
    //------------------------------------------------------------------------ 
    // Check to see if the value of the $result variable is true 
    //----------------------------------------------------------------------- 
    if ($Result) 
     { 
     if ($NumberRows == 1) 
     { 
     $ErrorMessage = "Logged On"; 
     header("Location: home.html"); //The page to go to 
    } 
     else 
     { 
    $ErrorMessage = "Not logged on"; 
     header("Location: login.html"); //Try to login again 
    } 
     } 
     mysql_close($db_connect); 
     } 
    else 
    { 
    $ErrorMessage = "Error with the Form!"; 
    } 
    } 
?> 


    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post"> 
    <input name="btn_login" type="submit" class="btn_ragister" value="Submit"; onclick="" /> 
</form> 
form id="form4" name="form4" method="post" action=""> 

    <input name="btn_register" type="button" class="btn_ragister" value="Register" 
    onclick= "window.location ='../Pages/register.html' "/> 
</form> 


</div> 
</body> 
</html> 
+0

'$ SQL =" SELECT * FROM account WHERE email = $ email AND password = $ passwordword ";' выглядит как опечатка ... Вы действительно имели в виду '$ passwordword'? –

+0

Вам нужно выполнить некоторую базовую отладку. Вы не проверяете, что ваш запрос преуспел - попробуйте вызвать 'mysql_error()', чтобы увидеть, есть ли что-нибудь там. Кроме того, ваш пароль БД (и я надеюсь, что они не являются живыми учетными данными) находится в '$ pwd', но вы подключаетесь с помощью' $ PassWord'. – andrewsi

+1

Dont для любви к кошкам, храните простые текстовые пароли в базе данных !!! –

ответ

1

Ваш код ПОЛНЫЙ синтаксических ошибок:

if(!$_POST['txt_email'] | !$_POST['txt_password']) 
         ^---not a valid operator 

и

$SQL = "SELECT * [..snip..] AND password = $passwordword"; 
              ^^^^^^^^^^^^^-undefined variable 

Короче говоря, вы должны изучить основные методы отладки.

Также функции mysql _ *() устарели и устарели. Do NOT узнайте, как их использовать, поскольку вы только начинаете с PHP. Изучите mysqli (обратите внимание на i) или PDO.