通过PHP从SQL中的表中获取ID

Posted

技术标签:

【中文标题】通过PHP从SQL中的表中获取ID【英文标题】:Geting ID from table in SQL through PHP 【发布时间】:2015-07-02 07:57:36 【问题描述】:

我正在尝试使用session_destroy() 创建一个注销页面,但我得到的只是一个空白页面。

这是我关于登录的代码(我认为问题一定出在此处,但我是这方面的初学者)。

我认为它会起作用的是为用户名创建一个会话,因为它在isset() 使用,但显然它不起作用。

 <?php
 session_start();
 $dbhost = "";
 $dbuser = "";
 $dbpassword = '';
 $db= 'system_dev';

 mysql_connect($dbhost,$dbuser,$dbpassword);
 mysql_select_db($db);



include 'test.php';
if (isset($_POST['username'] )) 
$username=$_POST['username'];
$password=$_POST['password'];

$_SESSION['username']=$username;

$sql ="Select * FROM Company WHERE username='".$username."'AND password = '".$password."'LIMIT 1";
$sqlid = "Select CompanyId FROM Company WHERE username='".$username."'";




$result = mysql_query($sql);
$resultid= mysql_query($sqlid) or die('Query failed: '. mysql_error());
while ($row =mysql_fetch_array($resultid,MYSQL_ASSOC) ) 
    echo "<tr>\n";
    foreach ($row as $col_value)
        echo  "$col_value\n";
    

$company = mysql_free_result($resultid);
$_SESSION['CompanyId'] = $col_value;



if ( mysql_num_rows ($result)==1)

header ("Location: webdesign.php");

exit(); 


else 

echo "Invalid input";
exit(); 



?>

关于“logout.php”的代码我只写了这个:

 <?php
 session_start();
 session_destroy();
 header ("website.php");
 ?>

在此先感谢,如果答案不正确,我们深表歉意。我已经阅读了规则,但这是迄今为止的第二篇文章。我相信有一天我会变得更好:)

【问题讨论】:

这:if ( mysql_num_rows ($result)==1) header ("Location: webdesign.php"); exit(); 不起作用 - 您正在将数据回显到其上方的屏幕 - 在将任何输出发送到浏览器之前必须调用 header() 你为什么有2个session_start(); 我刚刚合并了两个不同的文件,所以代码很容易理解,但我忘记了其中一个会话开始。立即编辑! 两个查询都查询同一张表,为什么不只使用 1 个查询呢? 如果你得到一个空白页,这意味着你的代码有错误。打开 php 错误报告 - 将 error_reporting(E_ALL); ini_set('display_errors', '1'); 放在代码顶部。 【参考方案1】:

你应该在你的 header 参数中使用 Location,比如 header("Location: page.php"); 您可以在销毁会话后放置此标头,这不会产生任何问题。

【讨论】:

【参考方案2】:

正如多尔科所说:

您应该在标题中使用位置

所以注销功能应该是这样的:

session_destroy();
session_regenerate_id(TRUE);
header("Location: login.php");
die();

我强烈建议您不要简单地将 post 值插入 SQL 查询。这将导致 SQL 注入。请改用 prepare 语句。 PHP: Prepared Statement

【讨论】:

以上是关于通过PHP从SQL中的表中获取ID的主要内容,如果未能解决你的问题,请参考以下文章

从使用 MySql 创建的表中获取 ROW ID 以与 OnClick 函数一起使用

如何从 SQL Server 中的表中获取行的索引?

从PHP中具有相同列值的表中获取2行

使用 php mysqli 从两个连接的表中获取数据

使用 PHP,如何从 HTML 表中的相应行获取包含访问 ID 的元素?

从 DB2 中的表中获取值