PHP代码出错。仍然向我显示此错误“Undefined index:action” 在php函数$ action = $ _REQUEST ['action'];能帮我找出解决方案吗?
谢谢
完整代码:
<?php
$action = $_REQUEST['action'];
if ($action== "") {
?>
<form action="" method="POST" >
Meno*:<br>
<input name="name" type="text" value="" size="30"/><br>
Email*:<br>
<input name="email" type="text" value="" size="30"/><br>
Vaša otázka*:<br>
<textarea name="message" rows="11" cols="80"></textarea><br>
<input type="submit" value="Poslať email"/>
</form>
<?php
}
else /* send the submitted data */
{
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
if ( ($name=="") || ($email=="") || ($message=="") ) {
echo "Všetky políčka je potrebné vyplniť. Napíšte <a href=\"\"> otázku </a> ešte raz.";
} else {
$from = "From: $name<$email>\r\nReturn-path: $email";
$subject = "Message sent using your contact form";
mail("27phillip@gmail.com", $subject, $message, $from);
echo "Mail poslaný!";
}
}
?>
答案 0 :(得分:3)
替换此行:
$action = $_REQUEST['action'];
这一个:
$action = ( array_key_exists( 'action', $_REQUEST) ? $_REQUEST['action'] : "" );
此外,正如其他人所指出的那样,您的表单中没有定义操作变量。我想你试图从<form>
标签中捕获action参数,但实际上并没有提交给服务器;它只是告诉浏览器将POST
数据发送到何处。因此,请尝试查找$_REQUEST['action']
或您表单中实际定义的其他字段之一,而不是查找$_REQUEST['name']
。
答案 1 :(得分:1)
发生此错误是因为没有名为“action
”的表单元素。
如果提交表单,请尝试测试。只需添加一个名称即可提交按钮。
<input type="submit" value="Poslať email" name="send" />
然后测试是否单击以发送表单:
<?php
if ( !isset( $_POST['send'] ) ) {
// HTML code to display form
} else {
// send the submitted data
}
?>
答案 2 :(得分:0)
您正在尝试访问名为action的表单元素,但没有这样的元素。如果您正在尝试查看脚本是由GET(呈现表单)还是POST(处理表单),请尝试使用以下内容:
if( $_SERVER['REQUEST_METHOD'] == 'GET' ) )
而不是你当前的两行:
$action = $_REQUEST['action'];
if ($action== "")
答案 3 :(得分:0)
内部的动作不会是$ _REQUEST或任何其他变量的值。检查表单是否已提交的正确方法是检查$ _SERVER [“REQUEST_METHOD”]变量。寻找'GET'或'POST'。在您的示例中,您将查找变量“POST”
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
//yourhtml
}
else /* send the submitted data */
{
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$message = $_REQUEST['message'];
if ( ($name=="") || ($email=="") || ($message=="") ) {
echo "Všetky políčka je potrebné vyplniť. Napíšte <a href=\"\"> otázku </a> ešte raz.";
} else {
$from = "From: $name<$email>\r\nReturn-path: $email";
$subject = "Message sent using your contact form";
mail("27phillip@gmail.com", $subject, $message, $from);
echo "Mail poslaný!";
}
}
&GT;