以下是我的登录脚本的PHP代码:
<?php
session_start();
if(isset($_POST['submitted']))
{
$username = $_POST['username'];
$password = $_POST['password'];
$connect = mysqli_connect("localhost", "root", "root", "test");
if (mysqli_connect_errno()){
echo mysqli_connect_error();
}
$query = "SELECT * FROM members where username = '$username'";
$result = mysqli_query($connect, $query);
$log = mysqli_fetch_array($result);
$dbusername=$log['username'];
$dbpassword=$log['password'];
//echo "<h1> ". $log['username']." ".$log['password']."</h1>";
if($username == $dbusername && $password == $dbpassword)
{
$_SESSION['username'] = $dbusername;
$_SESSION['password'] = $dbpassword;
header("Location: Correct.html {$_POST["redirect"]}");
}else
{
header("Location: Incorrect.html {$_POST["redirect"]}");
}
} else {
echo "boo";
}
?>
如您所见,如果用户输入现有的用户名和密码组合,则会将用户重定向到“Correct.html”页面。问题是将信息传递到'Correct.html'页面。我希望传递“用户名”变量,以便该页面显示“欢迎'用户名'”消息。现在从我的所有尝试中我都知道我需要在'Correct.html'页面上的以下代码才能成功传递此变量:
<?php
session_start();
if(isset($_SESSION['username'])){
echo "Your session is running " . $_SESSION['username'];
}
?>
我还发现,为了实现这一点,我需要将页面的扩展名从.HTML更改为.PHP。现在的问题是,如果我更改扩展名,我的'Correct.php'页面将不再加载,并且我显示一个空白屏幕。我已经尝试了在线HTML到PHP转换器(它似乎回应了我的代码的每一行),但这仍然不起作用。
任何人都可以帮助我完成以下两件事之一:
请记住,我已经有一个MySQL数据库和表设置(你可能已经从代码中找到了)。
答案 0 :(得分:0)
如果正确设置了Web服务器,文件名的扩展名不重要。如果它是Apache HTTP:AddType application/x-httpd-php .php .htm .html
,或类似的东西。
header()
需要完整的URI。因此,传入域名和路径以及文件名。并删除标题调用中的{$_POST["redirect"]}
内容(不确定您尝试使用该内容)。
答案 1 :(得分:0)
我只是将其作为答案提供解释......
这是我引用的example answer。 它的作用是查看发送到浏览器的URL,搜索&#34;?&#34;,这意味着有一个参数被传递。然后它会在&#34;?&#34;之后抓住所有内容。并将其拆分为&#34;&amp;&#34;以提供所有传递的参数。然后它会遍历它找到的内容,并创建一个传入的列表。例如,&#34; username = bob&#34;,&#34; thissite = spiffy&#34;。
您可以在任何HTML文件中使用它来处理传入的参数。不需要像PHP这样的服务器端脚本。