通过 PHP 从 SQL 中的 table 获取 ID

Geting ID from table in SQL through PHP

我正在尝试使用 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");
 ?>

提前致谢,如果答案不尽如人意,我们深表歉意。我已经阅读了规则,但这是迄今为止的第二个 post。我相信总有一天我会好起来的:)

您应该在 header 参数中使用 Location,例如 header("Location: page.php"); 你可以在你摧毁 session 之后放置这个 header,应该不会有任何问题。

正如多尔科所说:

You should use Location in your header

所以注销函数应该是这样的:

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

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