Php 运行脚本时出现警告
我在运行脚本时收到这些警告:Php 运行脚本时出现警告,php,html,Php,Html,我在运行脚本时收到这些警告: Notice: Undefined variable: varName in C:\wamp\www\dash\index.php on line 38 Notice: Undefined variable: varMsg in C:\wamp\www\dash\index.php on line 38 Notice: Undefined variable: varDate in C:\wamp\www\dash\index.php on line 38 此外,我
Notice: Undefined variable: varName in C:\wamp\www\dash\index.php on line 38
Notice: Undefined variable: varMsg in C:\wamp\www\dash\index.php on line 38
Notice: Undefined variable: varDate in C:\wamp\www\dash\index.php on line 38
此外,我可以在databaase中插入详细信息,但每次刷新页面时它都会插入查询
脚本的重要部分:
<?php
date_default_timezone_set('UTC');
if(isset($_POST['formSumbit']))
{
$varName = $_POST['formName'];
$varMsg = $_POST['formMsg'];
$varDate = date(d/m/y);
$errorMessage = "";
}
//line 38
$order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')";
$result = mysql_query($order);
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
name
<input type="text" name="formName" maxlength="25" />
msg
<input type="text" name="formMsg" maxlength="1500" />
<input type="submit" name="formSumbit" value="Submit" />
</form>
您的if(isset($\u POST['formSumbit']){}
也需要围绕查询:
if(isset($_POST['formSumbit']))
{
$varName = $_POST['formName'];
$varMsg = $_POST['formMsg'];
$varDate = date('Y-m-d');
$errorMessage = "";
//line 38
$order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')";
$result = mysql_query($order);
}
每次刷新页面时,查询都会运行,但它们会插入空白值,因为这些值被包装在if
语句中。这就是你收到通知的原因。您没有这些值,因为表单尚未提交。在if(isset($\u POST['formSubmit'))
语句中添加第38行和第39行。当前加载页面时,每次都会执行此操作,但您只希望在提交表单时执行此操作:
if(isset($_POST['formSumbit']))
{
$varName = $_POST['formName'];
$varMsg = $_POST['formMsg'];
$varDate = date(d/m/y);
$errorMessage = "";
$order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')";
$result = mysql_query($order);
}
将下面的代码放入一个单独的文件中,如“insert.php”,并将您的操作设置为此,这将解决重复插入问题
if(isset($_POST['formSumbit']))
{
$varName = $_POST['formName'];
$varMsg = $_POST['formMsg'];
$varDate = date(d/m/y);
$errorMessage = "";
$order ="INSERT INTO dash (name,msg,msg_date) VALUES ('$varName','$varMsg','$varDate')";
$result = mysql_query($order);
if($result){
header("Location: back-to-form.php");
} else {
echo mysql_error();
}
}
你的问题是如何摆脱这些警告?正如警告所述,它们是未定义的变量。查看您的代码,这可能意味着您没有$\u POST['formSubmit']
,因此没有任何变量得到初始化。你可能应该澄清你问的问题是。最好使用if(isset($\u POST['formSumbit'])&&isset($\u POST['formName'])&&isset($\u POST['formMsg'])
我还有一个问题,我看不到日期。msg\u date的数据类型是什么?这是日期吗?现在可以用了,谢谢。有没有办法把它改成从左到右的日期?比如28-03-2013不,如果是数据类型就不需要了。谢谢。不是很好,但我看不到日期。日期的输出是00-0000-00之类的。谢谢,它工作正常。但目前的dte没有出现。输出为00-00-0000