Avatar billede kjeje Nybegynder
13. november 2005 - 21:02 Der er 6 kommentarer

Validering af data fra form i php script.

Hej Experter!

Jeg er stødt ind i følgende problem:

Ved afsendelse af en form skal jeg validere nogle brugerdata (postnummer, emailadresse mm.). Dette gør jeg i et php script (særskilt fil). Hvis brugeren ikke har indtastet korrekte data skal han sendes retur til formen for at rette fejlen.

Spørgsmålet går nu på:

1. Hvordan får jeg de data som er ok med tilbage til formen, så han ikke skal udfylde alt på ny?

Jeg leder efter hvordan det skal laves principielt, dvs. hvordan man kan overføre variable fra formen til php scriptet og tilbage igen. Altså søger jeg et eksempel på noget php kode som kan løse opgaven (koden på både formsiden og scriptsiden)
Avatar billede bromer Nybegynder
13. november 2005 - 21:45 #1
Hvorfor inkluderer du det ikke i den fil, hvor du har formen, og laver checket der? Hvis du laver er check i toppen af filen når en bruger har sendt en form kan du redirecte brugeren til et andet sted, hvis input var okay og eventuelle database ændringer er blevet lavet. Ellers har du alle input i $_POST og $_GET.
Avatar billede kjeje Nybegynder
13. november 2005 - 22:09 #2
Jo tanken har strejfet mig, men jeg tænker også på en mulighed for evt. at have en form som er delt over flere sider, hvorved jeg så kunne bruge samme princip til at huske og skrive dataene til felterne når brugeren bladrer frem og tilbage, eller tager jeg fejl?

Er der ikke en smart løsning på det?
Avatar billede bromer Nybegynder
13. november 2005 - 22:31 #3
Jeg synes altid det er besværligt at have en form delt op over flere sider, men når det er nødvendigt gemmer jeg normalt data i en database, hvor jeg har et flag i databasen der fortæller at rækken er "under opbyning".

Men du kan vel sagtens have dit check i en fil alligevel, men kun bruge de specifikke dele, hver enkelt formside skal bruges.
Avatar billede bromer Nybegynder
13. november 2005 - 22:35 #4
Hvis du bruger denne så hopper den over på sendt.php når mailen er sendt. Hvis du ikke modtager en mail så kan det være dit mailsystem der ikke fungerer ordentligt. Jeg har testet det og jeg modtager fint en email:

<?php
if (isset($_POST['send'])) {
    if (!(empty($_POST['navn']) || empty($_POST['email']) || empty($_POST['besked']))) {
        $message = sprintf("
Navn: %s
Adresse: %s
Telefon: %s
Mail: %s
Besked:
------------------------------------
%s",$_POST['navn'],$_POST['adresse'],$_POST['tlf'],$_POST['email'],$_POST['besked']);
mail('youremail@yourdomain.com','my subject',$message);
    header("Location: sendt.php");
    } else {
        printf("Ikke alle felter blev udfyldt");
    }
}
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
<table>
    <tr>
        <td>Navn:</td>
        <td><input type="text" name="navn" value="<?=$_POST['navn'];?>"/></td>
    </tr>
    <tr>
        <td>Adresse:</td>
        <td><input type="text" name="adresse" value="<?=$_POST['adresse'];?>"/></td>
    </tr>
    <tr>
        <td>Telefon:</td>
        <td><input type="text" name="tlf" value="<?=$_POST['tlf'];?>"/></td>
    </tr>
    <tr>
        <td>Mail:</td>
        <td><input type="text" name="email" value="<?=$_POST['email'];?>"/></td>
    </tr>
    <tr>
        <td>Besked:</td>
        <td><textarea name="besked" rows="10"></textarea></td>
    </tr>
    <tr>
        <td colspan="2" align="center">
            <input type="submit" name="send" value="send"/>
        </td>
    </tr>
</table>
</form>
Avatar billede bromer Nybegynder
13. november 2005 - 22:35 #5
Jeg går iseng nu.. Svar til en anden tråd.. beklager meget.
Avatar billede kjeje Nybegynder
14. november 2005 - 16:48 #6
Hvad betyder ="<?=$_SERVER['PHP_SELF'];?>" ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester