Avatar billede jesper-moeller Nybegynder
09. februar 2010 - 04:03 Der er 1 kommentar og
1 løsning

variable problem i form - skal variable defineres ens to steder

Jeg er total ny i php og dette er mit aller første forsøg med php så håber i vil bære over med mig.

Jeg forsøger at lave et lille form script, som skal valideres/checkes for fejl før det sendes.
Efter et par dage med at google og prøve mig frem er jeg foløbigt nået frem til følgende som ser ud til at virke

Indtaster man mindre end 5 bogstaver skal man komme retur med en fejlmedelelse, og det man tastede skal stå der enu.
taster man mellemrum før eller efter skal disse fjernes

(selve processeringe af formen er jeg ikke nået til enu):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="da" xml:lang="da">
<!--
===========
  TEST
===========
-->
<head>
    <title>test side</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" /><meta http-equiv="content-language" content="da" />
    <style type="text/css">
        .inputerror {Background: #ffbbbb;}
    </style>
</head>
<body>
    <div id="sitewrap">
<!--    TILFØJ ANRANGØR FORM    -->
<?php
// Setup Form
function showForm($errorName=false,$errormassage=false){
    // Set form variables
$title  = isset($_POST['title'])  ? trim($_POST['title'])  : '';
    // Display form
    echo ('    <form action="" method="post">
                <table border="0" cellpadding="0" cellspacing="0" width="300px">');
    // Title
    echo ('            <tr>
                        <td>Title:</td>
                        <td><input type="text" name="title" value="'.$title.'" class="'.$errorName.'"></td>
                    </tr>');

    // Error message
    if ($errormassage)
        echo ('        <tr>
                        <td colspan="2">Der var en fejl i de markerede felter</td>
                    </tr>');
    echo ('            <tr>
                          <td><input type="submit" name="SubmitForm" value="Send"></td>
                      </tr>
                  </table>
              <form>');
}

// Process form

if (!isset($_POST['SubmitForm'])) {
    showForm();}
else {
    // Set error variables $title  = isset($_POST['title'])  ? trim($_POST['title'])  : '';
    $errorName = false;
    $errormassage = false;

$title  = isset($_POST['title'])  ? trim($_POST['title'])  : '';

    // Check form for input errors
    if (strlen($title)<5)  $errorName = 'inputerror';
    // If there is errors in the form display it again
    if ($errorName) {
        $errormassage = true;
        showForm($errorName,$errormassage);
        }
    else {
    // Process form
   
        echo '-'.$title.'-';
        echo '<br>Submission was success!';
    }
}

?>
    </div>
</body>
</html>


mit problem er linerne $title  = isset($_POST['title'])  ? trim($_POST['title'])  : '';
som ser ud til at skulle defineres 2 steder for det virke som jeg gerne vil have det kan det passe de skal være begge steder ??

Hvis jeg ikke har den øverste forsvinder det intastede hvis man går tilbage til formen pga fejl i det indtastede
Hvis jeg ikke har den nederste vil scriptet ikke forsætte til process


Håber nogen kan/vil hjælpe mig
Avatar billede jesper-moeller Nybegynder
09. februar 2010 - 04:13 #1
Lukker dette da jeg syntes jeg havde givet for lidt point
Spørgsmålet er oprette igen på http://www.eksperten.dk/spm/901113
Avatar billede jesper-moeller Nybegynder
09. februar 2010 - 04:14 #2
LUK
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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