Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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
Php 为什么我的表单没有提交和重定向?_Php_Forms - Fatal编程技术网

Php 为什么我的表单没有提交和重定向?

Php 为什么我的表单没有提交和重定向?,php,forms,Php,Forms,我正在尝试将我们的站点迁移到使用PHP5的新主机。之前我们在PHP4上 我有一个表单,在用户填写了之前在php4上进行的调查后,它没有提交并重定向到thankyou页面。我肯定这可能是我遗漏了什么,但我不明白为什么它不起作用 当我单击“提交”时,调查页面将重新加载,URL将?submit=t添加到末尾,并且电子邮件不会发送给我 下面显示了我们survey.php中的代码,其中包括我的电子邮件地址和大部分HTML表单字段。谁能给我指一下正确的方向吗 谢谢 <? $APP_ROOT = "

我正在尝试将我们的站点迁移到使用PHP5的新主机。之前我们在PHP4上

我有一个表单,在用户填写了之前在php4上进行的调查后,它没有提交并重定向到thankyou页面。我肯定这可能是我遗漏了什么,但我不明白为什么它不起作用

当我单击“提交”时,调查页面将重新加载,URL将?submit=t添加到末尾,并且电子邮件不会发送给我

下面显示了我们survey.php中的代码,其中包括我的电子邮件地址和大部分HTML表单字段。谁能给我指一下正确的方向吗

谢谢

  <?
$APP_ROOT = "../";
$FILE = __FILE__;
$TITLE="Service Survey";

if(!isset($submit)) {

    include($APP_ROOT."include/header.php");
    include($APP_ROOT."include/nava.php");
?>
<div class="bodymargin">
     <img src="<?=$WEB_ROOT;?>images/titles/<?=$SECTION."_".$FILE;?>.gif" width="400" height="36"><br>
    <br>
     <form method="POST" action="<?=$FILE;?>.php?submit=t">

<?
    if(isset($error)) {
        while(list($key, $value) = each($HTTP_GET_VARS)) {  
            $$key = stripslashes($value);
        }
        print("<p class=\"alert\">". urldecode($error) . "</p>\n"); 
    }
?> 
<input type="text" name="name" value="<?=$name;?>">
</form>

<?  
    include($APP_ROOT."include/navb.php");
    include($APP_ROOT."include/footer.php");
} else {
    include_once($APP_ROOT . "functions/index.php");
    include_once($APP_ROOT . "functions/form_validation.php");
    $CONTINUE = TRUE;


    $valid = new Validation($HTTP_POST_VARS);
    if($CONTINUE = $valid->success) {
        $to = "myemailaddress";
        $subject = "Service Survey";
        $from_email = $to;
        $from_name = "mysite.com";
        $headers = "From: $from_name<$from_email>\n"; 
        $headers .= "Reply-To: <$email>\n";
        $headers .= "Return-Path: <$from_email>\n"; 

        $body = "The following information was just posted \n";

        unset($HTTP_POST_VARS['required_fields']);
        reset($HTTP_POST_VARS);
        while(list($key, $value) = each($HTTP_POST_VARS)) {
            if(!empty($value)) {
                $body .= proper_form($key) . ":  " . stripslashes($value) ."\n";
            }   
        }
        $body .= "\nThis is an automated message, please do not respond.";
        mail($to,$subject,$body,$headers);
        $URL = $WEB_ROOT . "/customer/thanks.php?form=" . $FILE;
        server_redirector($URL);
    } else {
        while(list($key, $value) = each($HTTP_POST_VARS)) {
            $rebound .= "&$key=" . urlencode(stripslashes($value));
        }
        $URL = $WEB_ROOT . "customer/survey.php?error=". urlencode(nl2br($valid->errors)) . $rebound;
        server_redirector($URL);
        die();
    }
}
?>

图像/标题/.gif“width=“400”height=“36”>


\uuuu FILE\uuuu
常量可能没有返回您期望的值,或者没有返回它以前执行的值。从

由于PHP4.0.2,文件总是包含一个绝对路径,并解析符号链接,而在旧版本中,在某些情况下它包含相对路径

所以你现在可能得到的是一条绝对路径,而不是一条相对路径


另外,请检查您的新安装是否允许
short\u open\u标记
,因为
regsiter\u globals
在较新的PHP版本中未处于活动状态。 因此,如果(!isset($submit))
您必须使用
if(!isset($\u GET['submit'])
。对于发布的值,您使用
$\u POST['parameter']

$HTTP\u POST\u VARS。您需要将其替换为$\u POST


或者,您可以在脚本开头添加$HTTP\u POST\u VARS=$\u POST;,以避免编辑每一行(不推荐)。

action=“.php?submit=t“>我认为迪特尔的观点很有道理。如果是
,那么这个脚本使用的是“magic constants”,只有在安装并启用了某些扩展时才可用。我会将这些值输出到屏幕,以确保这些值已设置且不为空。这里有更多。。。很好,但我刚刚检查了一下,
\uuuuuu文件
正在返回我预期的调查结果。还检查了短的\u打开\u标签,这也是允许的。。。谢谢就是这样。一旦我更换了它,美元的帖子就一切都好了。谢谢