hoe, kan ik na het verwerken van dit script, dus als alles in de dbase staat, naar een andere pagina gaan?

<?php   
    function valid_email ($email) {
        return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $errors = array ();
        $naam = strip_tags ($_POST['naam']);
        $naam = trim ($naam);
        if (empty ($naam)) {
            array_push ($errors, '<p>Geen naam ingevuld</p>');
        }
        if (!valid_email ($_POST['email'])) {
            array_push ($errors, '<p>Ongeldig e-mailadres</p>');
        }
        $naam = mysql_real_escape_string ($naam);
        $email = mysql_real_escape_string ($_POST['email']);
        if (empty ($errors)) {
            $sql = "
                INSERT INTO donatie
                SET
                    name = '" . $naam . "',
                    email = '" . $email . "',
                    datum = NOW(),
                    ip = '".$a."'
                ";
            if (!mysql_query ($sql)) {
                trigger_error (mysql_error ());
            }
        }
    }
?>


<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Mail Formulier</title>
    <style type="text/css">
    label {
        cursor: pointer;
        float: left;
        width: 200px;
        text-align: right;
        padding: 2px;
    }
    label, p, input {
        font: 12px verdana;
    }
    h1 {
        font: bold 14px arial;
        color: blue;
    }
    #errors {
        margin: 0px auto;
        width: 400px;
        border: 1px solid red;
        padding: 9px;
        font: 14px courier;
    }
    </style>
</head>

<body>
    <h1>Vul uw naam en een geldig e-mailadres in</h1>
    <form method="post" action="#">
        <p>
            <label for="naam">naam:</label>
            <input name="naam" type="text" value="<?php if (isset ($_POST['naam'])) echo htmlentities ($_POST['naam']); ?>">
        </p>
        <p>
            <label for="email">e-mail:</label>
            <input name="email" type="text" value="<?php if (isset ($_POST['email'])) echo htmlentities ($_POST['email']); ?>">
            <input type="submit" value="verzenden">
        </p>
    </form>
    <?php
        if (isset ($errors) && !empty ($errors)) {
            echo '<div id="errors">';
            foreach ($errors as $value) {
                echo $value;
            }
            echo '</div>';
        }
    ?>
</body>

met dank

[edit]Code tags toegevoegd. Ik kan me niet voorstellen dat style sheets nuttige en relevante code zijn. Volgende keer weg laten aub. [/edit]
Als je gecontroleer hebt of je query gelukt is kun je met header() de bezoeker doorsturen naar een andere pagina:
<?php
header('Location: anderepagina.php');
?>
klopt niet, ik heb die header bovenaan , zelfs onderaan geplaatst, zoals ik al vele malen heb geprobeerd,
maar mijn form word meteen doorverwezen dan zonder invullen en bewerking
Dan is jouw logica niet goed.
<?
if (!mysql_query ($sql)) {
trigger_error (mysql_error ());
}
else { // query is gelukt
header('Location: volgende_pagina.php');
exit(); // rest van het script niet uitvoeren
}
?>
ik word er echt gek van, geloof het of niet
maar bovenligend script wil niet
er zit een spook in
of, ik snap het in het geheel niet meer
maar dat ding wil, na het verwerken van de query niet naar een ander pagina
ik krijg altyd, gelijk welke oplossing een fout, dat de header al is geladen????
maar waar, dat zie ik dus niet
Voordat je de functie header() gebruikt mag er absoluut nog geen output naar de browser hebben plaatsgevonden. Dus geen echo, geen html, zelfs geen loze spatie ergens aan het begin van het script.
ip = '".$a."'
Waar komt $a vandaan? Het zou mij niet verbazen dat je daar reeds een notice op hebt gekregen waardoor de header() in de soep loopt.

Offtopic: Een nog veel slechtere naam had je overigens niet kunnen kiezen... Wat staat er in vredesnaam in $a? Waarschijnlijk een ip-adres, maar dan is $ip of $ip_adres toch zeker 100x duidelijker! Of niet dan?

Die css-code binnen in de html-code is niet handig. Nu moet je voor onderhoud nog steeds de html-code induiken. Maak een aparte stylesheet, dat is veel handiger. Dan kun je de css ook gebruiken voor andere pagina's, dat is juist de kracht van css.
ik maak een voledig nieuw script
want dit ding doet het niet
allemaal erg bedankt voor alles
maar ik ben denk ik aan het klooien
leerling zijn hé
uit fouten leert men
Niet als je ze gewoon negeert en mensen die je proberen te helpen ook negeert.

Jou script zou zo gewoon moeten werken:







<?php   
    function valid_email ($email) {
        return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email);
    }
    
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $errors = array ();
        $naam = strip_tags ($_POST['naam']);
        $naam = trim ($naam);
        if (empty ($naam)) {
            array_push ($errors, '<p>Geen naam ingevuld</p>');
        }
        if (!valid_email ($_POST['email'])) {
            array_push ($errors, '<p>Ongeldig e-mailadres</p>');
        }
        $naam = mysql_real_escape_string ($naam);
        $email = mysql_real_escape_string ($_POST['email']);
        if (empty ($errors)) {
        $a = $_SERVER['REMOTE_ADDR']; //dit heb ik er even bij gezet
            $sql = "
                INSERT INTO donatie
                SET
                    name = '" . $naam . "',
                    email = '" . $email . "',
                    datum = NOW(),
                    ip = '".$a."'
                "; //En wat is inderdaad in vredesnaam die $a?
            if (!mysql_query ($sql)) {
                trigger_error (mysql_error ());
            }
            else
            {
                header("Location http://www.jedomein.nl/jescript.php");
                exit(0);
            }
        }
    }
?>


<head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Mail Formulier</title>
    <style type="text/css">
    ...
    </style>
</head>

<body>
    <h1>Vul uw naam en een geldig e-mailadres in</h1>
    <form method="post" action="#">
        <p>
            <label for="naam">naam:</label>
            <input name="naam" type="text" value="<?php if (isset ($_POST['naam'])) echo htmlentities ($_POST['naam']); ?>">
        </p>
        <p>
            <label for="email">e-mail:</label>
            <input name="email" type="text" value="<?php if (isset ($_POST['email'])) echo htmlentities ($_POST['email']); ?>">
            <input type="submit" value="verzenden">
        </p>
    </form>
    <?php
        if (!empty ($errors)) {
            ?><div id="errors"><?php
            foreach ($errors as $value) {
                echo $value;
            }
            ?></div><?php
        }
    ?>
</body>
thx
ik zal die eens proberen, maar wees eerlijk
ik ben aan het leren
en soms zou je de moed verliezen
alvast bedankt
die $a is het gecodeerde ip adres, heb ik eruitgegooid nu

maar bovenstaan script schakeld ook niet over
dat script staat dus op mijn pc hier, en heb ik indx.php genoemd
http://127.0.0.1/test de url
na het invullen van het form, krijg ik die url te zien:
http://127.0.0.1//test/#

alhoewel ik op regel nr 33 de volgende heb ingevuld:
http://127.0.0.1/forum/index.php

ik heb denaam van het script al veranderd, en de header naar een script in het
zelfde pad gelaatst
zelfde result

en dat in nu wat ik niet begrijp,
hoe en waarom wil ie niet naar een ander pagina gaan
ik zoek er nu al dagen naar

Reageren