2012-02-21 25 views
0

私はログインフォームを提出しました。ログインページにリダイレクトされます。構文エラーが見つからないようで、ログインフォームに欠かせないものを本当に欠落しているはずです。ここにコードがあります。ログインフォーム自分自身に戻ってリダイレクト

login.php:

<? 
require ('../includes/config.inc.php'); 
if ($_POST['act'] == "Insert") { 
    #// Additional security check 
    $RR = mysql_query("SELECT id from BPLA_adminusers"); 
    if (mysql_num_rows($RR) > 0) { 
     print "Fatal error: user cannot be inserted - one or more administrators are already present in the database.<a href=login.php>login page</a>"; 
     exit ; 
    } 
    $md5_pass = md5($MD5_PREFIX . $_POST['password']); 
    echo $query = "insert into BPLA_adminusers values (10,'$_POST[username]', '$md5_pass', '20011224', '20020110093458', 1)"; 
    $result = @mysql_query($query); 
    #// Redirect 
    Header("Location: login.php"); 
    exit ; 
} 
$query = "select MAX(id) from BPLA_adminusers"; 
$result = @mysql_query($query); 
while ($row = mysql_fetch_row($result)) { 
    $id = $row[0] + 1; 
} 
?> 
<? 
if($id==1) { 
$id=0; 
?> 
<form name="login" data-ajax="false" action="login.php" method="post"> 
    <span><? print $ERR;?></span> 
    <label for="<? print "Username";?>"><? print "Username";?></label> 
    <input type="text" name="username" /> 
    <label for="<? print "Password";?>"><? print "Password";?></label> 
    <input type="password" name="password" /> 
    <input type="submit" name="action" value="<? echo $MSG_5204;?>"> 
</form> 
<? 
} else { 
$id=1; 
#// 
if($_POST[action] == "login") { 
if(strlen($_POST[username]) == 0 || strlen($_POST[password]) == 0) { 
$ERR = $ERR_047; 
} else { 
$query = "select * from BPLA_adminusers where username='$_POST[username]' and password='".md5($MD5_PREFIX.$_POST[password])."'"; 
$res = @mysql_query($query); 
if(!$res) { 
print "Error: $query<BR>".mysql_error(); 
exit; 
} 
if(mysql_num_rows($res) == 0) { 
$ERR = $ERR_048; 
} else { 
$admin = mysql_fetch_array($res); 
#// Set sessions vars 
$BPLowbidAuction_ADMIN_LOGIN = $admin[id]; 
$BPLowbidAuction_ADMIN_USER = $admin[username]; 
$_SESSION["BPLowbidAuction_ADMIN_LOGIN"]=$BPLowbidAuction_ADMIN_LOGIN; 
$_SESSION["BPLowbidAuction_ADMIN_USER"]=$BPLowbidAuction_ADMIN_USER; 
#// Update last login information for this user 
$query = "update BPLA_adminusers set lastlogin='".date("YmdHis")."' where username='$admin[username]'"; 
$rr = mysql_query($query); 
if(!$rr) { 
print "Error: $query<BR>".mysql_error(); 
exit; 
} 
#// Redirect 
print "<SCRIPT Language=Javascript> 
parent.location.href='index.php'; 
</SCRIPT>"; 
//Header("Location: home.php"); 
exit; 
} 
} 
} 
?> 
<? if(!$act || ($act && $ERR)) { 
?> 
<form name="login" data-ajax="false" action="login.php" method="post"> 
    <span><? print $ERR;?></span> 
    <label for="<? print "Username";?>"><? print "Username";?></label> 
    <input type="text" name=username /> 
    <label for="<? print "Password";?>"><? print "Password";?></label> 
    <INPUT TYPE=password name=password /> 
    <input type="submit" NAME="action" VALUE="login"> 
</form> 
<? }?> 
<? } 
    require("./footer.php"); 
?> 

このコードは、index.phpの内に配置されており、それが提出されていますとき、再びindex.phpにリダイレクトするのif/else文で使用されています。

のindex.php:

<? 
require ('../includes/config.inc.php'); 
include ('bar.php'); 
if (!empty($_SESSION['BPLowbidAuction_ADMIN_LOGIN'])) { 
    include ('home.installation.php'); 
} else { 
    include ('login.php'); 
} 
?> 

問題は、ログインフォームが最初にリダイレクトするということであるログインフォームのコードが示されているバック「のindex.php」とし、「login.php」とするかのように私は決して"bar.php"はヘッダーにすぎず、ページのメニューと "home.installation.php"は実際に表示されるはずのホームページです。

+1

あなたが(にsession_startを使用している必要があります? – Deepak

+1

okay add session_start(); <?の直後の最初のindex.phpとlogin.phpの両方で。 – Deepak

+0

何がわからないのですか? – Deepak

答えて

3
Header("Location: login.php"); 

Locationヘッダは絶対、有効なURIを指していなければなりません。私。 $ _SESSION変数を使用する前に)スキーマ(http://)で始まる、またはスラッシュ/login.php

HTTP 1.1 RFC on Location

+0

チップをありがとう、しかしそれは私の問題を解決しませんでした。私はコードを 'Header(" Location:login.php ");'から 'Header(" Location:http://www.luvbid.com/admin/login.php ")に変更しました; – Cary

+1

絶対パスの缶header()で使われていて、http://の前に置く必要はありません。セッション変数には値が格納されていないと思います。 config.inc.phpには何が含まれていますか? – Deepak

+0

'parent.location.href = 'index.php''はまた絶対URI /パスを必要とするかもしれません。 (絶対パスはスラッシュで始まります) – Vitamin

関連する問題