Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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表单数据传递到HTML页面_Php_Html_Forms_Mysqli - Fatal编程技术网

将PHP表单数据传递到HTML页面

将PHP表单数据传递到HTML页面,php,html,forms,mysqli,Php,Html,Forms,Mysqli,以下是我的登录脚本的PHP代码: <?php session_start(); if(isset($_POST['submitted'])) { $username = $_POST['username']; $password = $_POST['password']; $connect = mysqli_connect("localhost", "root", "root", "test"); if (mysqli_con

以下是我的登录脚本的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转换器(它似乎回应了我的每一行代码),但这仍然不起作用

有人能帮我做两件事中的一件吗:

  • 为我提供一个在HTML脚本中传递PHP变量的解决方案(更简单,但不确定是否可能?)
  • 正确地将HTML代码转换为PHP(更长,但可以确保变量可以轻松传递)

  • 请记住,我已经有了MySQL数据库和表设置(您可能已经从代码中了解到了这一点)

    如果正确设置web服务器,文件名的扩展名并不重要。如果是ApacheHTTP:
    AddType应用程序/x-httpd-php.php.htm.html
    ,或者类似的东西


    header()
    需要一个完整的URI。因此,将域名和路径与文件名一起传递。并且去掉头调用中的
    {$\u POST[“redirect”]}
    内容(不确定您试图用它做什么)。

    我只提供一个答案和解释

    这是我引用的例子。 它所做的是查看发送到浏览器的URL,搜索“?”,这意味着传递了一个参数。然后,它获取“?”后面的所有内容,并在“&”处将其拆分,以提供传递的所有参数。然后,它循环查找所找到的内容,并创建传入内容的列表。比如,“username=bob”,“thissite=spiffy”


    您可以在任何HTML文件中使用它来处理传入的参数。不需要像PHP那样的服务器端脚本。

    当使用
    mysqli
    时,您应该使用参数化查询,并将用户数据添加到查询中。不要使用字符串插值来完成此操作,因为您可能会创建严重的错误。切勿将字符串插值与
    $\u POST
    参数一起使用。此处是否出现错误->
    “{$\u POST[“redirect”]}”
    ?是否尝试使用javascript截取该值?这样你就不需要PHP了。这里有一个例子:@tadman我完全不知道你的意思。你能给我一个书面的例子吗?@vp_arth我没有。此时,我被重定向到我想要的页面(但是,如果{$\u POST[“redirect”]}被删除,这也会起作用)。我应该删除它吗?嗨,我以前见过这个“AddType”行,并尝试将它插入到我的代码中。抱歉,我对此不是很有经验,也不太确定我的web服务器是否是ApacheHTTP。我怎么知道?告诉你我使用phpmyadmin有什么帮助吗?你有什么建议?谢谢你的回复。真的很抱歉,我已经浏览了一遍,似乎无法确定什么适用于我的代码。截取该值需要什么Javasript?