Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据存储信息将同一表中的用户信息回显到其页面,而不将相同的信息回显给其他用户_Php_Mysql_Sql - Fatal编程技术网

Php 根据存储信息将同一表中的用户信息回显到其页面,而不将相同的信息回显给其他用户

Php 根据存储信息将同一表中的用户信息回显到其页面,而不将相同的信息回显给其他用户,php,mysql,sql,Php,Mysql,Sql,首先,我将用户存储在同一个表中,并创建了一个名为welcome.php的页面,我希望它根据用户的条目从MySQL中回显用户信息 现在,当我创建第一个用户并将其回显到这个welcome.php时,它会从表中出来,如果我在同一个表中创建另一个用户信息,以便它根据用户登录信息回显到同一个welcome.php,例如,如果我创建一个名为John Fred等的用户和一个名为Michael Kenneth等的用户 因此,用户John Fred带着来自同一个表的信息来到welcome.php,然后当我与用户M

首先,我将用户存储在同一个表中,并创建了一个名为welcome.php的页面,我希望它根据用户的条目从MySQL中回显用户信息

现在,当我创建第一个用户并将其回显到这个welcome.php时,它会从表中出来,如果我在同一个表中创建另一个用户信息,以便它根据用户登录信息回显到同一个welcome.php,例如,如果我创建一个名为John Fred等的用户和一个名为Michael Kenneth等的用户

因此,用户John Fred带着来自同一个表的信息来到welcome.php,然后当我与用户Michael Kenneth签名时,用户Michael Kenneth没有来到welcome.php,而是只显示用户John Fred。我不知道这个错误是从哪里来的;可能来自login.php,或者来自welcome.php

下面是我在welcome.php中的代码

<?php

$tnumber2 = "{$_SESSION['tnumber2']}"; 
//  Connect to the database

$db = mysql_connect("$Sname","$Uname","$Pname") or die("Could not connect to the Database."); 
$select = mysql_select_db("$Dname") or die("Could not select the Database."); 


$sql="SELECT * FROM `$Tname` LIMIT 0, 25 ;"; 
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);

?>

<? echo $rows['tnumber2']; ?>

我为另一个表存储的其他用户信息的另一个脚本:

<?php

//  Connect to the database
$tnumber2 = "{$_SESSION['tnumber2']}";

$db = mysql_connect("$Sname","$Uname","$Pname") or die("Could not connect to the Database."); 
$select = mysql_select_db("$Dname") or die("Could not select the Database."); 


$sql="SELECT * FROM `$UPname` LIMIT 0, 25 ;"; 
$result=mysql_query($sql);
?>

<?php
while($rows=mysql_fetch_array($result)){ // Start looping table row 
?>

<? echo $rows['pdate']; ?>

<?php
// Exit looping and close connection 
}
mysql_close();
?>

这是我的login.php,在本例中,我使用一个输入表单:

<?php
session_start();
ob_start();
?>
<?php

if ($_POST['submit']) {
    $tnumber2 = $_POST['user'];

    if ($tnumber2) {
            require("connect.php");

            $query = mysql_query("SELECT * FROM users WHERE tnumber2='$tnumber2'");
            $numrows = mysql_num_rows($query);
            if($numrows == 1) {
                $row = mysql_fetch_assoc($query);
                $id = $row['id'];
                $tnumber2 = $row['tnumber2'];

                if ($tnumber2 == $tnumber2) {   
                        $_SESSION['id'] = $id;
                        $_SESSION['tnumber2'] = $tnumber2;

                        header("Location: welcome.php");
                        }

                    }
                    else
                        include "error.php";


    }
}
?>


假设会话确实存储了登录用户的数据,您需要更改“welcome.php”,以便它使用
WHERE
子句读取正确的用户:

<?php

// Retrieve the ID of the user (and untaint it too)
$id = (int) $_SESSION['id']; 

//  Connect to the database (I've removed the unnecessary quotes)
$db = mysql_connect($Sname, $Uname, $Pname) or die("Could not connect to the Database."); 
$select = mysql_select_db($Dname) or die("Could not select the Database."); 

// Here is the query from the users table, we're selecting one user here
$sql="SELECT * FROM `users` WHERE `id` = $id;"; 
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);

?>

<!-- Let's see what is in rows now, should be just one record -->
<?php print_r($rows) ?>

我建议你试着理解上面代码的每一部分,事实上你的代码也是如此——不要只是复制和粘贴,而不知道每一部分的作用。如果你被什么东西卡住了,不要害怕去查阅手册

我使用了
print\r
来转储行结果-您可以使用行结果的内容来确定要从中提取哪些列和其他数据。完成此操作后,可以删除
打印\r

请记住,您的登录并不是在测试密码的正确性——它只检查是否有人在login.php中输入了特定的用户名。如果您希望用户使用用户名和密码登录,那么还需要设计和实现。如果你感兴趣的话,这个网站上有很多关于如何做到这一点的最佳实践技巧的问题

顺便说一句,很难理解你在做什么。我认为这不是你英语的问题,我觉得你的英语不错。相反,值得记住的是写短句(比如说不超过20个单词)和短文(不超过4或5个句子)。你的描述要尽可能简短——这会使帮助你的人和他们认为他们不明白你想做什么的人之间产生区别。我希望这个建议在你的母语中也同样适用


此外,记住尽可能多地在问题中添加有用的信息,如果有人要求澄清,确保你回答了他们所有的问题。请记住,这里的人都是志愿者,您需要让他们的工作尽可能简单。

login.php中的重定向是否有效?该脚本中的
ob\u start
用于什么?我不确定你是否需要它。另外,我怀疑你这里有SQL注入-至少你应该使用
mysql\u real\u escape\u string
来防止用户在数据库查询中注入他们自己的SQL。最后,将复杂的问题描述分成段落是相当重要的,否则,帮助你的人几乎看不懂。请参阅我的编辑:您只需将句子分成三或四组,然后添加两个回车字符。@ob_开头的一半,用于标题位置以启动标题location@halfer哦,是的,谢谢,因为我想知道你为什么用id来代替我自己代码中的tnumber2?从那以后就没试过了,现在很忙,不用担心。因此,
id
指的是用户的主键。如果
tnumber
是代码中的主键,请使用该键-我刚才使用了
id
,因为这通常用作主键。表中这些列的用途是什么?no tnumber不是主键,什么代表登录表单中的用户名?您使用的id不是用户输入?