Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML/PHP表单,错误-未定义索引:PHP代码中的操作_Php_Html_Forms - Fatal编程技术网

HTML/PHP表单,错误-未定义索引:PHP代码中的操作

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代码中的错误。仍显示此错误“未定义索引:操作” 在php函数$action=$_请求['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&#357; 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&#357; email" name="send" />

然后测试是否单击它以发送表单:

<?php
        if ( !isset( $_POST['send'] ) ) {
            // HTML code to display form
        } else {
            // send the submitted data
        }

?>

发生此错误是因为没有名为“
操作”的表单元素。
如果表单已提交,请尝试测试。只需添加一个名称提交按钮

<input type="submit" value="Posla&#357; 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。原始代码中的测试所隐含的逻辑是“如果这不是一个已发布的表单”,在这种情况下,表单将被返回。对此进行测试的适当方法如我所述。