Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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页面上发布和显示信息_Php_Html_Css - Fatal编程技术网

在同一php页面上发布和显示信息

在同一php页面上发布和显示信息,php,html,css,Php,Html,Css,我正在处理一个常见问题,但对于管理,我希望能够看到存储在数据库中的当前常见问题,并在该表格下方发布一个新的问题和答案,提交后将用新的问题和答案刷新页面 事情是这样的: 我已经把它贴好了,但我只能显示最近的一个 以下是我目前的代码: 获取: <?php //select database table $sql = "SELECT question, answer FROM faq"; $queryresult = mysql_quer

我正在处理一个常见问题,但对于管理,我希望能够看到存储在数据库中的当前常见问题,并在该表格下方发布一个新的问题和答案,提交后将用新的问题和答案刷新页面

事情是这样的:

我已经把它贴好了,但我只能显示最近的一个

以下是我目前的代码:

获取:

<?php

        //select database table
          $sql = "SELECT question, answer FROM faq";
          $queryresult = mysql_query($sql) or die (mysql_error());

        //Request Values
          while ($row = mysql_fetch_array($queryresult)){
            $faqQuestion = $row['question'];
            $faqAnswer = $row['answer'];
          }

        //echo variables
          echo "<p>$faqQuestion</p>" . "<p>$faqAnswer</p>" . "<br />";

        //if question and answer have null values
          if ((empty($faqQuestion))&&(empty($faqAnswer))){
            echo("<div><p>No Questions available</p></div>");
          } 
      ?>
      <?php
        mysql_free_result($queryresult);
        mysql_close($conn);
      ?>

张贴:

<?php
    include("database_conn_dcs.php");

    if($_POST){

      $question = ($_POST['question'])? $_POST['question']:null;
      $answer = ($_POST['answer'])? $_POST['answer']:null;

      $sql="INSERT INTO faq (talen_idtalen, question, answer)
            VALUES ('$idtalen', '$question', '$answer')";

      if (!mysql_query($sql)) {
        die('Error: ' . mysql_error());
      }

      header("location: faq_admin.php");
    }
?>

首先,您的echo应该在while循环中,否则每次它循环时,您的两个变量都会被覆盖

其次,如果没有返回结果,您只想显示没有可用问题,这是由mysql_num_行检查的

第三,您的输入代码容易受到SQL注入的攻击,这可能会危害您的网站。要防止这种情况,请使用并绑定用户输入($\u POST变量),而不是将它们直接包含在查询中

<?php

        //select database table
          $sql = "SELECT question, answer FROM faq";
          $queryresult = mysql_query($sql) or die (mysql_error());

        //Request Values
          while ($row = mysql_fetch_array($queryresult)){
            $faqQuestion = $row['question'];
            $faqAnswer = $row['answer'];

            //echo variables
            echo "<p>$faqQuestion</p>" . "<p>$faqAnswer</p>" . "<br />";
          }
          if(mysql_num_rows($queryresult) <= 0) {
            echo("<div><p>No Questions available</p></div>");
           }


        mysql_free_result($queryresult);
        mysql_close($conn);
?>


“如何防止PHP向数据库发送空值”-在告诉它要执行的操作时,按照
if((empty($faqQuestion))&&(empty($faqQuestion)))中的操作执行。通过或停止。不要通过GO,罚款200美元-在满足要求之前将其设置为
die()
exit()
。不要在php中使用mysql*扩展。对于较新的php版本,它们已经被弃用。仅用于旁注和防止在数据库中存储空格,请使用trim();与@Mubo所说的功能不同,您的代码看起来需要SQL注入。您还应该使用参数化查询而不是动态查询。研究PDO或MySQLi,并阅读如何避免SQL注入