Stig Sørensen sendte dette med sin computer:
> Tror jeg bliver misforstået, så her får i koden
>
>
> comments_code.php
>
> <?php
> if(!empty($_POST)) {
>
> // Anti spam bot
> if(!empty($_POST['email'])) {
> $con->redir();
> }
>
> // Krævede felter
> if((empty($_POST['navn']) || empty($_POST['besked']))) {
> $udfyldt_korrekt = "<p style=\"text-align:center;\">De markerede
> felter med <span style=\"color:#800000\">*</span> er ikke korrekt
> udfyldt!</p>";
> } else {
> // Connect mySQL
> $con->db_connect("localhost", "****", "****", "****");
>
> // Data sikker + nemme variabler
> $navn = mysql_real_escape_string($_POST['navn']);
> $email = mysql_real_escape_string($_POST['email_real']);
> $hjemmeside = mysql_real_escape_string($_POST['hjemmeside']);
> $besked = mysql_real_escape_string($_POST['besked']);
> $tidspunkt = time();
> $ip = $_SERVER['REMOTE_ADDR'];
>
> // mySQL insert
> $con->doQuery("INSERT INTO fiskevand_kommentarer VALUES ('', '',
> '1', '$tidspunkt', '$ip', '$navn', '$email', '$besked')");
>
> $con->redir();
> }
> }
>
>
>
>
> comments.php
>
> <hr />
> <a name="kommentar"></a>
> <h3>Kommentarer</h3>
> <?php echo !empty($udfyldt_korrekt) ? $udfyldt_korrekt : ""; ?>
> <form action="#kommentar" method="post">
> <fieldset>
> <input type="hidden" name="email" value="" />
> <p><label for="navn"><span style="color:#800000">*</span>
> Navn:</label><input type="text" name="navn" id="navn" value="<?php
> echo !empty($udfyldt_korrekt) ? htmlspecialchars($_POST['navn']) :
> ""; ?>" /></p>
> <p><label for="email_real">Email:</label><input type="text"
> name="email_real" id="email_real" value="<?php echo !empty
> ($udfyldt_korrekt) ? htmlspecialchars($_POST['email_real']) : ""; ?>" /
>> </p>
> <p><label for="hjemmeside">Hjemmeside:</label><input
> type="text" name="hjemmeside" id="hjemmeside" value="<?php echo !empty
> ($udfyldt_korrekt) ? htmlspecialchars($_POST['hjemmeside']) : ""; ?>" /
>> </p>
> <p><label for="besked"><span style="color:#800000">*</span>
> Kommentar:</label><textarea name="besked" id="besked" rows="7"
> cols="50" ><?php echo !empty($udfyldt_korrekt) ? htmlspecialchars
> ($_POST['besked']) : ""; ?></textarea></p>
> <p><label for="submit"> </label><input type="submit"
> id="submit" value="Indsend kommentar" /></p>
> </fieldset>
> </form>
> <hr />
>
>
>
>
> Dét jeg gerne vil have, er at hvis ikke man udfylder de krævede
> felter, så skal en besked vises lige over formen - og man skal blive
> ledt hen til formen igen (den er midt på siden), samt skal felter der
> var bleven udfyldt, de skal vises med det man indtastede før.
> Det er vel en ganske normal service nu om dage, at felterne ikke bare
> bliver tomme hvis man nu glemmer et krævet felt, og skal starte
> forfra.
>
> Hvis alt bliver korrekt udfyldt så skal man blive ledt hen nederst på
> siden, hvor man vil finde sin kommentar.
>
>
> Det er dét jeg prøver på at gøre ovenstående, og ville virke hvis den
> blot gad glemme hvad jeg har sat form action= til, men den husker det
> simpelthen hele tiden.
>
>
> Grunden til at jeg ikke bruger form action="andenside.php" til at
> behandle dataene på, er at skulle et krævet felt ikke være udfyldt kan
> jeg jo ikke redirecte tilbage til siden med form på - med felterne
> udfyldt fra før. Jo, så skal jeg til at bruge sessions feks, men det
> er vel overkill.
Når en form submittes, bliver siden der er angivet i action hentet påny
fra serveren. At bruge et anchor, svarer til at kalde den viste side,
med tilføjelsen af anchoret.
Det er et php script. Det leverer det output du beder det om, - og jeg
tror ikke anchoret bibeholdes.
At den bliver ved med at vende tilbage dertil, kan jeg ikke forklare
dig. Du giver ikke noget link, så vi har heller ikke nogen chance for
at finde ud af, hvad der faktisk sker.
Og hvis ancoret overlever php parsing, så /skal/ browseren altså gå
dertil, tak. Derfra er du så nødt til at foretage dig et eller andet,
for at rykke til det andet anchor... (onload på body, f.eks.)
Jeg kan så i øvrigt hverken finde anchor i bunden af siden, eller noget
der henviser til det.
Bruger du en anden side, skal du finde en måde at overføre data fra
"checksiden" til formen.
SESSION kunne være een måde. De kan også POSTes eller GETtes, på normal
vis, hvis du ikke bruger SESSION i forvejen. For den sags skyld, kunne
du opbevare dem midlertidigt i en cookie...
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk