声明变量时未定义的索引

Posted

技术标签:

【中文标题】声明变量时未定义的索引【英文标题】:Undefined Index When Declaring Variable 【发布时间】:2015-01-14 18:14:11 【问题描述】:

为什么我在声明变量时得到一个未定义的索引?目前正在使用引导程序。

<?php 

 mysql_connect("localhost", "root", "1234") or die(mysql_error());
 mysql_select_db("newitems") or die(mysql_error());

 $up =  $_POST['update']; 
 mysql_query("UPDATE announcements SET content = $up");


 ?>
 <div class="well well-small text-center">
 <h3>Create an Announcement / Reminder:<br>

 <form class="form-group" id="form-mahasiswa" method="POST" action="ad_post.php">

  <div class="control-group">

    <div class="controls">

        <textarea id="update" name="update"></textarea><br>
        
        <button id="annbtn" class="btn btn-success">Update Announcement</button>

    </div>

</div>

【问题讨论】:

您正在使用变量 $_POST['update'];在您发布表单之前不会设置。 我需要做什么? 这能回答你的问题吗? "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset" using PHP 【参考方案1】:

只有在您提交表单时才会更新。将您的代码包装在此条件中:

if ($_SERVER['REQUEST_METHOD'] == POST && isset($_POST['update'])  
   $up = $_POST['update']; 
   mysql_query("UPDATE announcements SET content = $up");

【讨论】:

另外 mysql_* 函数已被弃用,因此请考虑使用 mysqli_* 函数。 php.net/manual/de/book.mysqli.php 最后,强烈建议在查询中使用之前过滤输入 :-) php.net/manual/de/function.filter-input.php 谢谢大家!固定:)

以上是关于声明变量时未定义的索引的主要内容,如果未能解决你的问题,请参考以下文章

删除 $_SESSION 时未定义的索引

数组中存在键时未定义的索引错误

在数据库上插入记录时未定义的索引

变量存在时未定义的变量 laravel

定义变量时未初始化赋值的问题

使用范围变量时未定义 Excel vba 变量