HTML/PHP表单,错误-未定义索引:PHP代码中的操作
PHP代码中的错误。仍显示此错误“未定义索引:操作” 在php函数$action=$_请求['action']中;你能帮我找出解决办法吗 多谢各位 完整代码如下:HTML/PHP表单,错误-未定义索引:PHP代码中的操作,php,html,forms,Php,Html,Forms,PHP代码中的错误。仍显示此错误“未定义索引:操作” 在php函数$action=$_请求['action']中;你能帮我找出解决办法吗 多谢各位 完整代码如下: <?php $action = $_REQUEST['action']; if ($action== "") { ?> <form action="" method="POST" > Meno*:<br> <input name
<?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ý!";
}
}
?>
Meno*:
电子邮件*:
瓦沙·奥塔斯卡*:
您试图访问名为action的表单元素,但没有这样的元素。如果您试图查看GET(显示表单)或POST(处理表单)是否正在调用脚本,请尝试使用以下方法:
if( $_SERVER['REQUEST_METHOD'] == 'GET' ) )
而不是您当前的两行:
$action = $_REQUEST['action'];
if ($action== "")
您正试图访问名为action的表单元素,但没有这样的元素。如果您试图查看GET(显示表单)或POST(处理表单)是否正在调用脚本,请尝试使用以下方法:
if( $_SERVER['REQUEST_METHOD'] == 'GET' ) )
而不是您当前的两行:
$action = $_REQUEST['action'];
if ($action== "")
发生此错误是因为没有名为“
action
”的表单元素。
如果表单已提交,请尝试测试。只需添加一个名称提交按钮
<input type="submit" value="Poslať email" name="send" />
然后测试是否单击它以发送表单:
<?php
if ( !isset( $_POST['send'] ) ) {
// HTML code to display form
} else {
// send the submitted data
}
?>
发生此错误是因为没有名为“
操作”的表单元素。
如果表单已提交,请尝试测试。只需添加一个名称提交按钮
<input type="submit" value="Poslať email" name="send" />
然后测试是否单击它以发送表单:
<?php
if ( !isset( $_POST['send'] ) ) {
// HTML code to display form
} else {
// send the submitted data
}
?>
替换此行:
$action = $_REQUEST['action'];
关于这一点:
$action = ( array_key_exists( 'action', $_REQUEST) ? $_REQUEST['action'] : "" );
另外,正如其他人所指出的,表单中没有定义动作变量。我认为您正试图从
标记捕获操作参数,但实际上并没有提交到服务器;这只是告诉浏览器在哪里发送POST
数据。因此,不要查找$\u REQUEST['action']
,而是尝试查找$\u REQUEST['name']
或表单中实际定义的其他字段之一。替换此行:
$action = $_REQUEST['action'];
关于这一点:
$action = ( array_key_exists( 'action', $_REQUEST) ? $_REQUEST['action'] : "" );
另外,正如其他人所指出的,表单中没有定义动作变量。我认为您正试图从
标记捕获操作参数,但实际上并没有提交到服务器;这只是告诉浏览器在哪里发送POST
数据。因此,不要寻找$\u REQUEST['action']
,而是尝试寻找$\u REQUEST['name']
或表单中实际定义的其他字段。其中的操作不会是$\u REQUEST或任何其他变量中的值。检查表单是否已提交的正确方法是检查$\u SERVER[“REQUEST\u 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ý!";
}
}
内部的操作将不会是$\u请求或任何其他变量中的值。检查表单是否已提交的正确方法是检查$\u SERVER[“REQUEST\u 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ý!";
}
}
我认为这意味着没有提出或将要收到的$\u请求['action'.]你的行动的价值应该是什么,它来自哪里?我认为这意味着没有提出或将要收到的$\u请求['action'.]你的行动的价值应该是什么,它来自哪里?表单方法是POST
@Alsemany-这是正确的,但是OP似乎试图使用相同的脚本通过返回表单的HTML来响应GET。原始代码中的测试所隐含的逻辑是“如果这不是一个已发布的表单”,在这种情况下,表单将被返回。测试这一点的适当方法如我所述。表单方法是POST
@Alsemany-这是正确的,但是OP似乎试图使用相同的脚本通过返回表单的HTML来响应GET。原始代码中的测试所隐含的逻辑是“如果这不是一个已发布的表单”,在这种情况下,表单将被返回。对此进行测试的适当方法如我所述。