我的代码有什么问题?

时间:2014-06-24 04:13:34

标签: php

请告诉我我的错误。

错误是:

  

注意:未定义的变量:第10行的C:\ wamp \ www \ 3arabschool \ admin \ section_insert.php中的名称

源代码在这里:

<?php
include("../config/config.php");


if(isset($_POST['name'])){ $name = addslashes($_POST['name']); }
if(isset($_POST['order_sec'])){ $order_sec = addslashes($_POST['order_sec']); }
if(isset($_POST['sub'])){ $sub = $_POST['sub']; }


if ($name == ""){   // this is line 10
echo "<div align='center'>please enter name<ahref='javascript:history.back(1)'>back</a></div>";
}else{
$query = @mysqli_query ($con,"INSERT INTO article_sec (name,sub,order_sec)VALUES ('$name','$sub','$order_sec')") or die ("error query");
echo "<p align='center'>done</p>";
echo "<META HTTP-EQUIV='refresh' CONTENT='1' URL='section.php'>";
}
?>

3 个答案:

答案 0 :(得分:1)

您正在访问未定义的变量,除非已定义$_POST['name']

更改行

if ($name == ""){

if (empty($name)) {

PHP将在尝试访问变量之前检查变量是否已设置,并使用此函数查看变量是否为空。 See this doc for more info

答案 1 :(得分:0)

当您检查索引的$_POST数组时,可能isset()返回false。因此,永远不会定义$name。为确保定义它,请在检查之前将其初始化为某些内容,可能是$name = '';

答案 2 :(得分:0)

这意味着您的if语句失败,因此永远不会声明/定义$name。要解决它,您可以使用:

if(isset($_POST['name']))
{ 
   $name = addslashes($_POST['name']); 
} 
else // making sure $name gets declared if the above condition fails
{ 
   $name = ''; 
}    

或更改

if ($name == "")

if(! isset($name))