2015-02-11 110 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> 

请,如果它解决您的问题

相关问题