【问题标题】:get the value from url by using php使用 php 从 url 获取值
【发布时间】:2017-01-08 22:23:40
【问题描述】:

我展示了一组问题。

在选择其中一个问题时,我需要将答案发布在同一页面上,但问题是我没有从 url 获取 id 参数,而我正在通过 selectiong 问题。

现在,当我尝试回答所选问题时,我将需要问题的 id 来发布我已经在 url 中作为参数的特定问题的答案,例如:id=1。

这是html页面的正文部分:

     <?php
 include("menu/menu.php");
 $sqli = "SELECT * FROM forum_question where id='$id'";
 $result=mysqli_query($conn,$sqli);
    ?>

  <form action="submit_answer.php" method="post" name="answers">
     <br> <br> <br>


      <?php 
  while($row = mysqli_fetch_array($result))
    echo "Q".$row['detail'];
  ?>

  <br>
  answers:<br>
     <textarea class="tinymce" name="answers"></textarea>
     <input type="hidden" name="id" value="<?php echo $id;?>">
  <br> <br>
  <input type="submit" value="submit" name="submit">

提交页面“submit_answer.php”后,代码为:

<?php 
include'config.php';

if($conn){
 if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $answers = $_REQUEST['answers'];

  $id= $_GET ['id'];
  }

   $sqli= "INSERT INTO answers (answers)
 VALUES ('$answers')";
if (mysqli_query( $conn,$sqli))
 {
     echo "New record created successfully";
   header("location:answer.php?id='$id'");

 } else {
  echo "Error: " . $sqli . "<br>" . $conn->error;
    }
}else{              

}

 mysqli_close($conn);


?>

基本上我对Php比较陌生,我只想知道我应该如何获取问题的ID并将其与答案内容一起提交到“submit_answer.php”。

【问题讨论】:

  • 把你的html和js代码提供给
  • 不幸的是,您的 SQL 查询很容易受到注入攻击。请切换到 PDO,它提供准备好的语句和绑定参数,有助于缓解安全漏洞。由于您是 php 新手,我真的建议您通读 phptherightway.com,它涵盖了您可以在旧教程中找到的常见陷阱。
  • @jedifans — mysqli(OP 已经在使用)还支持准备好的语句和绑定参数。

标签: php url parameters


【解决方案1】:

只需在答案字段下方获取一个隐藏字段,然后在页面加载时获取该隐藏字段的 url 参数,正如用户 buivankim2020 所说并提交 submit_answer.php,

提交后,在变量中获取该字段的值,就像你为获得答案所做的那样。

【讨论】:

    【解决方案2】:

    您应该更改它(在标记 html 中为 id 添加隐藏输入)

    <?php 
    include'config.php';
    //session_start();
    $id= $_GET ['id'];
    
    ?>
    
    <html>
    <head>
        <link rel="stylesheet" type="text/css" href="css/style.css">
        <script type="text/javascript" src="tinymce/js/jquery.min.js"></script>
            <script type="text/javascript" src="tinymce/plugin/tinymce/tinymce.min.js"></script>
            <script type="text/javascript" src="tinymce/plugin/tinymce/init-tinymce.js"></script>
    </head>
      <body>
        <div id="container">
          <div id="main">
    
    
          <?php
          include("menu/menu.php");
          $sqli = "SELECT * FROM forum_question where id='$id'";
          $result=mysqli_query($conn,$sqli);
          ?>
    
        <form action="submit_answer.php" method="post" name="answers">
          <br> <br> <br>
          <?php 
          while($row = mysqli_fetch_array($result))
             echo "Q".$row['detail'];
          ?>
    
          <br>answers:<br>
          <textarea class="tinymce" name="answers"></textarea>
          <input type="hidden" name="id" value="<?php echo $id;?>">
          <br> <br>
          <input type="submit" value="submit" name="submit">
        </form>
      </body>
    </html>
    

    submit_answer.php

    <?php 
    include'config.php';
    
    if($conn){
      if (isset($_POST['answers']) && isset($_POST['id'])) {
        $answers = $_POST['answers'];
        $id= $_POST['id'];
    
        $sqli= "INSERT INTO answers (answers) VALUES ('$answers')";
        if (mysqli_query( $conn,$sqli))
        {
          echo "New record created successfully";
          header("location:answer.php?id='$id'");
    
        } else {
          echo "Error: " . $sqli . "<br>" . $conn->error;
        }
      }
      mysqli_close($conn);
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      相关资源
      最近更新 更多