2012-09-04 84 views
-5

我正在製作login.php,如果成功,它將返回home.php。我想用$ _SESSION,這裏是我的代碼:(!)注意:未定義的索引:用戶名在C: wamp www HavenInWonderland home.php在線15

的login.php

<?php require_once('Connections/conn.php'); ?> 
<?php 
if (!function_exists("GetSQLValueString")) { 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{ 
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; 

    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); 

    switch ($theType) { 
    case "text": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break;  
    case "long": 
    case "int": 
     $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
     break; 
    case "double": 
     $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; 
     break; 
    case "date": 
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
     break; 
    case "defined": 
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
     break; 
    } 
    return $theValue; 
} 
} 
?> 
<?php 
// *** Validate request to login to this site. 
if (!isset($_SESSION)) { 
    session_start(); 
} 

$loginFormAction = $_SERVER['PHP_SELF']; 
if (isset($_GET['accesscheck'])) { 
    $_SESSION['PrevUrl'] = $_GET['accesscheck']; 
} 

if (isset($_POST['username'])) { 
    $loginUsername=$_POST['username']; 
    $password=$_POST['pass']; 
    $MM_fldUserAuthorization = "username"; 
    $MM_redirectLoginSuccess = "home.php"; 
    $MM_redirectLoginFailed = "login.php"; 
    $MM_redirecttoReferrer = false; 
    mysql_select_db($database_conn, $conn); 

    $LoginRS__query=sprintf("SELECT username, pass, username FROM member WHERE username=%s AND pass=%s", 
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 

    $LoginRS = mysql_query($LoginRS__query, $conn) or die(mysql_error()); 
    $loginFoundUser = mysql_num_rows($LoginRS); 
    if ($loginFoundUser) { 

    $loginStrGroup = mysql_result($LoginRS,0,'username'); 

    //declare two session variables and assign them 
    $_SESSION['MM_Username'] = $loginUsername; 
    $_SESSION['MM_UserGroup'] = $loginStrGroup;  

    if (isset($_SESSION['PrevUrl']) && false) { 
     $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; 
    } 
    header("Location: " . $MM_redirectLoginSuccess); 
    } 
    else { 
    header("Location: ". $MM_redirectLoginFailed); 
    } 
} 
?> 
<html> 
<head> 
    <title>session</title> 
</head> 

<body> 
<form method="POST" action="<?php echo $loginFormAction; ?>"> 
    Please enter you name: 
    <input type="text" id="username" name="username" /> 
    <input type="password" id="pass" name="pass" /> 

<input type="submit" value="Login" /> 
    </form> 
</body> 
</html> 

,這裏是我的HOME.php

<?php 
session_start(); 

?> 

<html> 
    <head> 
    <title>welcome</title> 
    </head> 

    <body> 
    <h1>Thnx for signing in</h1> 
    <?php 
    echo "Welcome" . " " . $_POST['username']; 
    $_SESSION['chorva'] = $_POST['username']; 




    ?> 

    </body> 
</html> 

我有用戶名作爲我的文本框的名字這就是我放在home.php上的原因,但爲什麼它總是說我有一個未定義的索引?

請別人幫我嗎?

+0

當你重定向'$ _POST'變量都將丟失,所以'username'始終將是一個不確定的指數。 – froddd

+0

因爲'$ _POST'數組是空的,或者至少沒有''用戶名'鍵,因爲你沒有在當前請求中發送任何東西。 – deceze

+0

因爲'$ _POST'是空的。當您使用行動'a.php'和'a.php'提交表單時,您將重定向到'b.php'發佈的數據將不會被髮送。把'$ _SESSION ['username'] = $ _POST ['username']'放在login.php中,然後在'session_start'之後使用它。 – Leri

回答

0

那是因爲$_POST['username']不存在,這將是永遠的空當您重定向他到另一個頁面,而不是我看到你分配給他的會話的用戶名和你可以做:

也許你想要的東西像這樣:

<?php 
    if(isset($_SESSION['MM_Username'])){ 
     echo "Welcome ".$_SESSION['MM_Username']; 
    } 
?> 
+0

哇!非常感謝!感謝您的幫助, – aianananalalala

1

你需要使用

<?php 
session_start(); 

?> 

<html> 
    <head> 
    <title>welcome</title> 
    </head> 

    <body> 
    <h1>Thnx for signing in</h1> 
    <?php 
    echo "Welcome" . " " . $_SESSION['MM_Username']; 
    $_SESSION['chorva'] = $_SESSION['MM_Username']; 




    ?> 

    </body> 
</html> 

既然您已經定義了$ _SESSION [ 'MM_Username']中的login.php會話的用戶名

+0

非常感謝你! :) – aianananalalala

1

改變這一行:

echo "Welcome" . " " . $_POST['username'];

echo "Welcome" . " " . isset($_POST['username']) ? $_POST['username'] : '';

相關問題