2012-11-15 48 views
-3

可能重複:
Login script not working as required工作登錄系統

這裏是reuested非常久遠我的代碼

這裏一個新的問題是我的代碼

<?php include "../utilities/config.php"; 

foreach($_GET as $key=>$value) 
{ 
${$key} = trim($value); 
} 
$error = ''; 
if($checking_member_availability == 'yes'){ 
if(empty($user_name)){ 
    $error .= "Please enter user name.<br />"; 
} 
if(empty($password)){ 
    $error .= "Please enter password.<br />"; 
} 
if(empty($error)){ 
     $sql = "select * from `".SITE_TABLE_PREFIX."user` where  email='".$user_name."' and pwd='".$password."'"; 
     $resultUser = mysql_query($sql) or die(mysql_error().$sql); 
     if(mysql_num_rows($resultUser)>0){ 
     $rowUser = mysql_fetch_array($resultUser); 
     $error .= ''; 
     $_SESSION['email']=$user_name; 
     }else{ 
     $error .= "Please check Email and Password."; 
    } 
} 

if(empty($error)){ 

    echo "myaccount.php"; 
} 
else{ 
    echo "<font color='#A01D49'>$error</font>"; 
} 
} 
?> 

請誰能幫助我,我已經花了很多的時間都沒有成功

下面是HTML代碼

<script type="text/javascript" language="javascript"> 
function validation() 
{ 
var password = trim(document.form1.password.value); 
var user_name = trim(document.form1.user_name.value); 
var type = trim(document.form1.type.value); 
http.open("GET", "processor.php?checking_member_availability=yes&password="+ 
        escape(password)+"&user_name="+ escape(user_name)+"&type=" + escape(type) , true); 
http.onreadystatechange = handleHttpResponse; 
http.send(null); 
return false; 
} 
</script> 
</head> 
<table width="241" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td><table width="100%" border="0" cellspacing="0" cellpadding="0" <?php if($_SESSION['user_id']!=''){?> style="display:none;"<?php }?>> 
       <tr> 
       <td align="left" valign="top" class="loginBg"> 
        <img src="img/logintxt.jpg" alt = '' width='100' height='29' border='0'> 
       </td> 
       </tr> 
       <tr> 
       <td align="left" valign="top" class="login"><form name="form1" id="form1" action="" method="post" onSubmit="return validation();"> 
        <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
        <tr><td colspan="3"><span id="user"></span></td></tr> 
         <tr> 
         <td align="left" valign="middle" class="height"><label class="boldtxt">Email:</label></td> 
         <td align="left" valign="middle" class="heightMid"><input type="text" name="email" id="email" /> 
         </td> 
         </tr> 
         <tr> 
         <td align="left" valign="middle"><label class="boldtxt">Password:</label></td> 
         <td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"> 
          <tr> 
           <td align="left" valign="top"><input type="password" name="password" id='password' class="loginfld" /> 
           </td> 
           <td align="left" valign="middle"><input type="image" src="img/submit.jpg" class="submit" onClick="return validation();" /> 
           </td> 
          </tr> 
          </table></td> 
         </tr> 
         <tr> 
         <td align="left" valign="top">&nbsp;</td> 
         <td align="left" valign="top"><a href="forget_password.php" class="normalTxt">Forgot your password?</a><br /> 
         </td> 
         </tr> 
        </table> 
        </form></td> 
       </tr> 
      </table></td> 
     </tr> 
     <tr> 
      <td align="left" valign="top"> 
      <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
        <tr> 
         <td align="left" valign="top"><a href="provider_registration.php"><img src="images/applybut.jpg" alt="" border="0" class="apply" /></a></td> 
        </tr> 
        <tr> 
         <td align="left" valign="top"> 
         <?=$value?> 
         </td> 
        </tr> 
        <tr> 
         <td align="left" valign="top">&nbsp;</td> 
        </tr> 
        <tr> 
         <td align="left" valign="top">&nbsp;</td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
     </table> 

現在能有人幫我解決這個問題,請

+1

您面臨的問題是什麼? –

+1

笏原來的問題是? –

+2

解決*什麼*?請說明您發現的確切問題。 - 另外請注意,你應該逃避數據庫輸入,不應該用隨機變量名稱'$ {$ key} = trim($ value);'(這是register_globals就在那裏),因爲它可能會覆蓋現有的變量。 – mario

回答

0

您可以包括的原初語境您問題?什麼是錯誤/不正確的行爲?這是託管在某處測試嗎?

從我可以告訴它基於

if(empty($error)){ 
    echo "myaccount.php"; 
} 

此行只輸出「myaccount.php」不是重定向在成功登錄。我相信如果你改變你的空($ error)檢查包含重定向,它應該工作。

if(empty($error)) { 
    $sql = "select * from `".SITE_TABLE_PREFIX."user` where  email='".$user_name."' and pwd='".$password."'"; 
     $resultUser = mysql_query($sql) or die(mysql_error().$sql); 
     if(mysql_num_rows($resultUser) > 0) { 
     $rowUser = mysql_fetch_array($resultUser); 
     $error .= ''; 
     $_SESSION['email'] = $user_name; 

     /* Redirect user if successful login */ 
     header('Location: myaccount.php'); 
    } else { 
     $error .= "Please check Email and Password."; 
} 
+0

謝謝回答。我的主要問題是,我看了幾個基本的PHP登錄教程後,寫了thsi php和html代碼。我是新的,不知道它是如何工作的。現在它是在測試服務器上的鏈接:http://www.speculot.com.php53-22.ord1-1.websitetestlink.com/login.php 上一個問題的一些用戶commneted我打開一個新的同樣的問題,他會幫助我,所以我做到了,現在沒有人可以幫忙。 –

+0

對於初學者來說,如果你看看你的JavaScript錯誤日誌和/或瀏覽器控制檯,你可以看到,當你提交你得到的JavaScript錯誤。 trim()不是有效的javascript函數。如果您刪除這些函數調用並重新上傳,您可能會得到不同的結果。 因此,現在只需製作'trim(document.form1.password.value)'document.form1.password.value'。 –