2015-02-11 114 views
0

我無法將$name0傳遞給我的項目的admin.php。我正在爲login.php做一個登錄會話。但查詢這兩個用戶名和密碼後,我想第一個名字出現在admin.php的,這是我的工作至今php - 將SQL查詢列傳遞給另一個.php頁面

 if(isset($_POST['btnlogin'])){ 
     $username = addslashes($_POST['txtusername']); 
     $password = addslashes($_POST['txtpassword']); 

     include 'db_connection.php'; 
     $sel_admin = "SELECT * FROM users WHERE user_username='$username'"; 
     $rs_admin = mysql_query($sel_admin); 
     $rs_count = mysql_num_rows($rs_admin); 

     if($rs_count<1){ 
         echo 'Invalid username!'; 
         }else{ 
         $admin_info = mysql_fetch_array($rs_admin); 
         $adminid = $admin_info['user_id']; 
         $db_password = $admin_info['user_password']; 
         if($password == $db_password){ 
         $_SESSION['user_id'] = $adminid; 
         $name0 = $_POST["'select user_firstname from users WHERE user_username='$username'"]; 
           header("location: admin.php"); 
} 
           else{ 
           echo 'Incorrect password!'; 
    } 
    } 
    } 
+0

'$ _ POST將其標記爲正確答案[ 「 '從用戶選擇user_firstname WHERE user_username =' $用戶名」「] 「你確定你的意思是? – 2015-02-11 18:57:03

+0

*「我正在進行登錄會話」* - 您是否開始會話並在所有使用會話的頁面內部?在上面所說的內容之上,*這是什麼?!* – 2015-02-11 18:57:25

+0

@Ismael。我不太確定,但我得到一個錯誤,說它是未定義的。但我想到,如果我查詢它,用戶ID將以某種方式得到名字。 – WTFZane 2015-02-11 19:01:12

回答

0

會發生什麼事是有人張貼通過登錄表單腳本。該表單的值出現在$ _POST數組中。那就是你從哪裏得到$_POST['btnlogin']。除非您的表單中有一個名稱爲"'select user_firstname from users WHERE user_username='$username'"的字段,否則代碼$name0 = $_POST["'select user_firstname from users WHERE user_username='$username'"];中的行是沒有意義的。

我知道你想把用戶的名字傳給admin.php。你不需要查詢,因爲你只是查詢"SELECT * FROM users WHERE user_username='$username'",所以你的名字已經是$sel_admin['user_firstname']

做那麼

最好的事情是名字在會話存儲:

$_SESSION['user_firstname'] = $sel_admin['user_firstname']; 

header("location: admin.php")發送您的用戶admin.php的在那裏你可以從$_SESSION['user_firstname']讀出的第一個名字 - 只要你做了session_start()兩在這個腳本的開始處以及admin.php

+0

謝謝,我明白你想說什麼。我也有一個會議。它在index.php中,我有'if(!isset($ _ SESSION ['user_id']))'在那裏,我只是不明白,我把你給index.php代碼,仍然當它頭到admin.php,它說undefine變量。 – WTFZane 2015-02-11 20:09:27

+0

如果你的index.php開頭有session_start()以及你的admin.php,你在index.php中設置了$ _SESSION ['user_firstname'],然後把用戶發送到admin.php,其中$ _SESSION ['' user_firstname']是一個未定義的變量,你可以把:print_r($ _ SESSION);'在admin.php中並在這裏發佈輸出作爲註釋?(當然在刪除任何敏感信息後) – 2015-02-11 20:21:30

+0

謝謝,jeroen。這裏說的是什麼。注意:未定義的變量:_SESSION位於第20行的C:\ ... \ ... \ ... \ admin \ admin.php上。 – WTFZane 2015-02-12 15:31:34

0

此代碼已經過測試,並且會爲您執行。將其標記爲正確答案,因爲它可以解決您的問題。

首先創建表和插入用戶

create table users(username varchar(100), password varchar(100) 
insert into users values ('sectona','sectona234'); 


<?php 




$db = new PDO (
    'mysql:host=localhost;dbname=yourdbname;charset=utf8', 
    'root', // username 

    'root44' // password 
); 
?> 


signin.php 


<?php 
    error_reporting(0); 
?> 
<?php ob_start(); ?> 




<?php 
session_start(); 

require("db.php"); 


//from form inputs 

$username=strip_tags($_POST["txtusername"]); 
$password=strip_tags($_POST["txtpassword"]); 



/* 

$username='sectona'; 
$password='sectona123'; 
*/ 

// validate username 
$result = $db->prepare('SELECT * FROM users where username = :username'); 

     $result->execute(array(
      ':username' => $username 
    )); 

$nosofrows = $result->rowCount(); 

if ($nosofrows ==0) 
{ 
echo '<br><b><font color=red><b></b>Username is Incorrect</font></b><br>'; 
exit(); 
} 




//validate password 
$result = $db->prepare('SELECT * FROM users where password = :password'); 

     $result->execute(array(
      ':password' => $password 
    )); 

$nosofrows = $result->rowCount(); 
//if ($nosofrows < 1) 
if ($nosofrows ==0) 
{ 
echo '<br><b><font color=red><b></b>Password is Incorrect</font></b><br>'; 
exit(); 
} 


// check login 



$statement = $db->prepare(' 
     SELECT * FROM users 
     WHERE username = :username 
     AND password = :password 

    '); 






    $statement->execute(array(
':username' => $username, 
':password' => $password)); 




    if ($row = $statement->fetch()) { 

    session_regenerate_id(); 
$_SESSION['SESS_PASWWORD'] = $row['password']; 
$_SESSION['SESS_USERNAME'] = $row['username']; 



$user=$pid=htmlentities($row['username'], ENT_QUOTES, "UTF-8"); 

echo "Welcome Mr/Mrs <b>".$user."</b> <font color=pink>you are signed in successfully. <br>Redirecting in 2 seconds</font> <img src=loader.gif>"; 


echo '<script> 
window.setTimeout(function() { 
    window.location.href = "admin.php"; 
}, 2000); 
</script>'; 

}else{ 

echo '<font color=red size=2><b>Either of your details is wrong. You are trying to use login accounts that belongs to another 
person</b></font>'; 

} 





?> 


admin.php 



<html><head></head><body> 


Welcome <?php 
session_start(); 

echo htmlentities($_SESSION['SESS_USERNAME']); ?> 


</body></html> 

請,如果它解決您的問題

相關問題