Form I belirtilen diğer sayfaya hareket değildir, yardım lütfen.

2 Cevap php

İşte benim kod:

<?php session_start();
require("validationLibrary.php");

$_SESSION['validForm'] = true;

if($_SESSION['validForm'] == true){
    header("Location: registerFormTwo.php");
}
?>

<html>
    <head>
        <title>Registration Form - 1 of 2</title>
    </head>

    <body>
        <h1>Registration - Part 1 of 2</h1>
        <p>Please fill in all the required information before submitting the information.</p>        
        <form action="registerFormOne.php" method="post">
            <dt>First Name:</dt>
                <dd><input type="text" name="firstName" value="<?php echo $_POST["firstName"]; ?>" /></dd><br />
                <dd>
                    <?php
                        if(isset($_POST['firstName'])){
                            if(!validateRequired($_POST['firstName'])){
                                $_SESSION['validForm'] = false;
                            }
                        }
                    ?>
                </dd><br />

            <dt>Last Name:</dt>
                <dd><input type="text" name="lastName" value="<?php echo $_POST["lastName"]; ?>" /></dd><br />
                <dd>
                    <?php
                        if(isset($_POST['lastName'])){
                            if(!validateRequired($_POST['lastName'])){
                                $_SESSION['validForm'] = false;
                            }
                        }                        
                    ?>
                </dd><br />

            <dt>EMail:</dt>
                <dd><input type="text" name="email" value="<?php echo $_POST["email"]; ?>"  /></dd><br />
                <dd>
                    <?php
                        if(isset($_POST['email'])){
                            if(!validateEmail($_POST['email'])){
                                $_SESSION['validForm'] = false;        
                            }
                        }                        
                    ?>
                </dd><br />

            <dt>Age:</dt>
                <dd><input type="text" name="age" value="<?php echo $_POST["age"]; ?>"  /></dd><br />
                <dd>
                    <?php
                        if(isset($_POST['age'])){
                            if(!validateNumber($_POST['age'])){
                                $_SESSION['validForm'] = false;
                            }
                        }                        
                    ?>
                </dd><br />

            <dt>Date of Birth:</dt>
                <dd><input type="text" name="dateOfBirth" value="<?php echo $_POST["dateOfBirth"]; ?>"  /></dd><br />
                <dd>
                    <?php
                        if(isset($_POST['dateOfBirth'])){
                            if(!validateRequired($_POST['dateOfBirth'])){
                                $_SESSION['validForm'] = false;
                            }
                        }                        
                    ?>
                </dd><br />

            <dt>Gender:</dt>
                <dd>Masculino <input type="radio" value="M" name="gender" checked/> &nbsp;&nbsp;
                Femenino <input type="radio" value="F" name="gender" />
                </dd>            

            <dt><input type="submit" /></dt>
        </form>
    </body>
</html>

2 Cevap

Sen başka $ _SESSION ['validForm'] atlarsanız = true. Bu false değişkeni ayarını herhangi bir önceki girişimleri geçersiz kılar.

$ _SESSION ['ValidForm'] = false Bildirgede ayrıca dosyanın başında gerçek değiştirilmesi gerekir. Bu beyan, gerçek $ _SESSION ['validForm'] == için onay hemen önce de, bu yüzden doğru olmayacak.

Başlıklar zaten dışarı gönderilir, çünkü: Tüm doğrulama herhangi bir çıktı tarayıcıya gönderilmeden önce, ortaya alışkanlık başlığını kullanarak kullanıcıyı ("... Location") yönlendirmek mümkün otherwsie gerekir.

Kısa cevap doğrulama mantığını da, formun en üstünde olması gerektiğidir.

Uzun cevabı:

<?php session_start();
require("validationLibrary.php");
$_SESSION['validForm'] = true;

if(isset($_POST['firstName'])){
    if(!validateRequired($_POST['firstName'])){
        $_SESSION['validForm'] = false;
    }
}

if(isset($_POST['lastName'])){
    if(!validateRequired($_POST['lastName'])){
        $_SESSION['validForm'] = false;
    }    
}

if(isset($_POST['email'])){
    if(!validateEmail($_POST['email'])){
        $_SESSION['validForm'] = false;        
    }
}

if(isset($_POST['age'])){
    if(!validateNumber($_POST['age'])){
        $_SESSION['validForm'] = false;
    }
}

if(isset($_POST['dateOfBirth'])){
    if(!validateRequired($_POST['dateOfBirth'])){
        $_SESSION['validForm'] = false;
    }
}

if($_SESSION['validForm'] == true){
    header("Location: registerFormTwo.php");
    exit();
}
?>

<html>
    <head>
        <title>Registration Form - 1 of 2</title>
    </head>

    <body>
        <h1>Registration - Part 1 of 2</h1>
        <p>Please fill in all the required information before submitting the information.</p>        
        <form action="registerFormOne.php" method="post">
            <dt>First Name:</dt>
                <dd><input type="text" name="firstName" value="<?php echo $_POST["firstName"]; ?>" /></dd><br />

            <dt>Last Name:</dt>
                <dd><input type="text" name="lastName" value="<?php echo $_POST["lastName"]; ?>" /></dd><br />

            <dt>EMail:</dt>
                <dd><input type="text" name="email" value="<?php echo $_POST["email"]; ?>"  /></dd><br />

            <dt>Age:</dt>
                <dd><input type="text" name="age" value="<?php echo $_POST["age"]; ?>"  /></dd><br />

            <dt>Date of Birth:</dt>
                <dd><input type="text" name="dateOfBirth" value="<?php echo $_POST["dateOfBirth"]; ?>"  /></dd><br />

            <dt>Gender:</dt>
                <dd>Masculino <input type="radio" value="M" name="gender" checked/> &nbsp;&nbsp;
                Femenino <input type="radio" value="F" name="gender" />
                </dd>            

            <dt><input type="submit" /></dt>
        </form>
    </body>
</html>