1

我有一个在 Firefox 中运行良好的 PHP 脚本,但是当我使用 Internet Explorer 时,会话变量将不起作用。

我使用的是 Internet Explorer 9.0.8 版。

这是脚本。谁能帮忙?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<?php
    session_start();
    ob_flush();
?>

<html>
<head>
<title>Neem contact op</title>

<style type="text/css">
label,a, body 
{
font-family : Arial, Helvetica, sans-serif;
font-size : 11px; 
}
</style>
</head>

<body>
<?php

    if(isset($_POST['submit'])){

        $naam = $_POST['naam'];
        $email = $_POST['email'];
        $domeinnaam = $_POST['domeinnaam'];
        $opmerking = $_POST['opmerking'];
        $code = $_POST['captcha'];

        if($naam == "" || $email == "" || $opmerking == ""){
            echo "<font color='red'>Je hebt niet alle verplichte velden ingevuld!</font>";
        } else{
            if($code != $_SESSION['code']){
                echo "<font color='red'>De captcha code is onjuist overgenomen!</font>";
            } else{
                if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
                    echo "<font color='red'>Je hebt een ongeldig e-mail adres ingevuld!</font>";
                } elseif(isset($_SESSION['tijd']) && $_SESSION['tijd'] > time() ){ 
                    $tijdover = $_SESSION['tijd'] - time();
                    echo "<font color='red'>Je moet nog ". $tijdover ." seconden wachten om een nieuw bericht in te sturen!</font>";    
                } else{
                    $_SESSION['tijd'] = time() + 60;

                    $headers = "From: ". $email ."\r\nContent-type: text/html"; 

                    $body = "<html>
                                <body>
                                    Er is een nieuw bericht gestuurd via de contact pagina.<br /><br />
                                    Naam: ". $naam ."<br />E-mail: ". $email ."<br />Domeinnaam: ". $domeinnaam ."<br /><br />Opmerking: <br /><br />". $opmerking."
                                </body>
                            </html>";

                    $mail = mail("testmail@gmail.com", "Contact - " . $email . " - " . $domeinnaam, $body, $headers);

                    if( $mail ){
                        echo "<font color='green'>Bedankt voor uw bericht, wij proberen zo spoedig mogelijk je e-mail te beantwoorden.</font>";
                    }else{
                        echo "<font color='red'>Er is iets fout gegaan tijdens e-mailen, probeer het later nog eens opnieuw!</font>";
                    }
                }
            }
        }

    }

?>

<form method="POST" name="contact_form" action="contact.php"> 
    <p>
        <label for='name'>Naam: (verplicht) </label><br>
        <input type="text" name="naam" value=''>
    </p>
    <p>
        <label for='email'>Email: (verplicht) </label><br>
        <input type="text" name="email" value=''>
    </p>
    <p>
        <label for='email'>Domeinnaam: </label><br>
        <input type="text" name="domeinnaam" value=''>
    </p>
    <p>
        <label for='message'>Opmerking: (verplicht) </label> <br>
        <textarea name="opmerking" rows=8 cols=30></textarea>
    </p>
    <p>
        <span style="font-size: 14px;">
        <?php

            $random = rand(1000, 9999);
            $_SESSION['code'] = $random;
            echo $random;

        ?>
        </span>
        <br />
        <label for='message'>Typ de code hierboven over:</label><br>
        <input name="captcha" type="text"><br>
    </p>
    <input type="submit" value="Verstuur" name='submit'>
</form>
</body>

</html>
4

3 回答 3

2

在显示其他任何内容之前需要打开会话。那是你的原因。

于 2012-12-13T09:38:19.593 回答
2

你能试一下吗

<?php
    session_start();
    ob_flush();
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
于 2012-12-13T09:38:46.617 回答
0

验证您的域名不包含:“_”或“-”

您可以在以下链接中找到有关该问题的信息:

https://support.microsoft.com/en-us/kb/316112 https://blogs.msdn.microsoft.com/ieinternals/2009/08/20/internet-explorer-cookie-internals-faq/

于 2016-04-28T02:07:14.213 回答