Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 - Fatal编程技术网

Php 我的变量没有定义?

Php 我的变量没有定义?,php,Php,我有一个文件名为blog.php。 数据库名为blog,表名为comments。(这是一个评论框) connect.php是我与服务器的连接。操作是blog.php 我的未定义变量在第3、4和5行。 我不知道为什么它们没有定义,因为在教程中没有错误。你能告诉我为什么它们没有定义吗 <?php require('connect.php'); $name = $_POST['name']; $comment = $_POST['comment']; $submit = $_POST[

我有一个文件名为
blog.php
。 数据库名为
blog
,表名为
comments
。(这是一个评论框)

connect.php
是我与服务器的连接。
操作是
blog.php

我的未定义变量在第3、4和5行。 我不知道为什么它们没有定义,因为在教程中没有错误。你能告诉我为什么它们没有定义吗

 <?php
 require('connect.php');
 $name = $_POST['name'];
 $comment = $_POST['comment'];
 $submit = $_POST['submit'];

 if($submit){

   if($name && $comment){

     $insert = mysql_query("INSERT INTO blog(name,comment) VALUES('$name',' $comment')");

   }else{
     echo "Please fill out all the fields.";
   }

 }
 ?>


<!DOCTYPE html>
<html>
 <head></head>
 <body>
 <form action="blog.php" method ="POST">
  <table border="2" style="width: 250px; ">
    <th> Post A Comment: </th>
    <tr><td colspan="2">Name: <input type="text" name="name"></td></tr>
    <tr><td >Comment: <textarea style="height: 100px; width: 200px;" name="comment"></textarea></td></tr>
  </table>
  <input type="submit" value="Comment" style="margin-left: 178px;" name="submit">
</form>
 </body
</html>

当代码在未提交表单的情况下执行时,会收到警告

为了避免这种情况,请添加
if设置($\u POST)
,以便仅在发出
POST
请求后,即在提交表单后执行

<?php
 require('connect.php');


if (isest($_POST)){
 $name = $_POST['name'];
 $comment = $_POST['comment'];
 $submit = $_POST['submit'];

 if($submit){

   if($name && $comment){

     $insert = mysql_query("INSERT INTO blog(name,comment) VALUES('$name',' $comment')");

   }else{
     echo "Please fill out all the fields.";
   }

 }
}
 ?>

请向我们显示您收到的完整错误消息,您认为这些消息未定义的原因是什么?另外,请注意,您正在遵循一个糟糕的教程。此代码极易受到SQL注入攻击,这可能是internet上最常见和最基本的漏洞。在初始页面加载时,您的
$\u POST
变量不会被设置,直到您发布表单后才会被设置。将它们包装在
if
->
if(isset($\u POST['submit']){…[您的变量]…}在关闭代码时,你也丢失了<代码> >代码>。你应该,它们不再被维护和学习。相反,要学习使用PDO,.Er.OP会得到关于未定义索引的通知,而不是关于未定义的变量!在你的代码结束时,如果(ISSET($Type))< /Cord>你需要一个开头<代码>。{
谢谢@DerekBaxter,编辑了答案。@Rizier123你不是有点挑剔吗?(1)OP从未显示确切的错误消息,(2)OP状态
我的未定义变量在第3、4和5行。
。因此很容易假设OP的问题是未定义的
$\u POST
索引,而不是真正未定义的variables@Rizier123你是对的,但如果我的答案没有用,我会删除它