无法使用POST使用$ var回显html <form>

时间:2018-07-02 15:18:42

标签: php

这里是php的新功能,如果解决方案超级简单,我深表歉意。我正在使用密码重置页面,它将是用户单击带有令牌的电子邮件后进入的页面。问题是表单没有发送$ token的值,而是发送了字符串。

class object;
object* getObject();
void doSomething(object* o = getObject());

class object{
    public:
        int num = 0;
};

object* getObject(){
    return new object();
}

void doSomething(object* o){
    o->num = 5;
    delete o;
}

int main(){}

2 个答案:

答案 0 :(得分:0)

只是一个建议...不要回显htmltags ...不是一个好习惯...除了回声,您可以这样做。关于令牌的问题将像这样解决。

<?php 

    if(isset($_GET["email"]) && isset($_GET["token"])) {

    $connection = new mysqli("localhost", "USER", "PASSWORD", "USERDB");

    $email = $connection->real_escape_string($_GET["email"]);
    $token = $connection->real_escape_string($_GET["token"]);

    $data = $connection->query("SELECT user_id FROM users WHERE user_email='$email' AND user_token='$token'");

        if ($data->num_rows > 0) {
        ?>

<html>

<head>

  <meta charset="UTF-8">

  <title>Change Password</title>

    <link rel="stylesheet" href="../css/style.css" media="screen" type="text/css" />

</head>

<body>

  <div class="reset">
    <h1>Password reset</h1>
            <form action="anotherpage.php" method="POST">
     <input type="password" name="pwd" placeholder="Password">
     <input type="hidden" name="token" value="<?php echo $token;?>">
     <input type="submit" name="submit" class="submit" value="Update">

</form>

</body>
</html>
<?php

        }   else {


            echo "Please check your link!";
        }





    }   else {

        header("Location: ../");
        exit();
    }

 ?>

答案 1 :(得分:0)

它正在发送字符串$token,因为PHP不会解析单引号(')中的变量。您必须使用双引号("),然后转义其他双引号(使用\)或在回显的代码中使用单引号。您也可以使用

<input type="hidden" name="token" value="'.$token.'">

虽然上述方法可行,但我建议您发送不带回显的表单代码。

相关问题