Avatar billede uniquedk Nybegynder
08. september 2007 - 19:24 Der er 12 kommentarer og
1 løsning

Hjælp til PHP form ting

Hey der allesammen... sidder og roder med en form og et chek jeg ikke kan få til at virke...
se her

echo '<div class="main"><form method="post" action="index.php">
            <label>Opret profil</label>
            <fieldset>
                Brugernavn: <input type="input" name="username"'; if(isset($error)) { 'value="' . $_SESSION['username'] . '"' } ><br />
                Kodeord: <input type="input" name="userpass"></input><br />
                Rigtige navn: <input type="input" name="realname"></input><br />
                Email: <input type="input" name="email"></input><br />
                Brugerinfo: <textarea cols="15" rows="5" name="userinfo"></textarea><br />
                <input type="hidden" name="usermake" value="1"></input><br />
                <input type="submit" name="opret"></input><br />
            </fieldset>               
            </form></div>'

Hvordan søren skal jeg skrive mit if(isset($error)) for at det virker????
Avatar billede erikjacobsen Ekspert
08. september 2007 - 19:29 #1
Put det i PHP tags:  <?php .... ?>
Avatar billede uniquedk Nybegynder
08. september 2007 - 19:32 #2
det hele er i php tags

Hele koden er således

<?php
echo '<div class="main"><form method="post" action="index.php">
            <label>Opret profil</label>
            <fieldset>
                Brugernavn: <input type="input" name="username"'; if(isset($error)) { ' value=" ' . $_SESSION['username'] . ' " '  } ><br />
                Kodeord: <input type="input" name="userpass"></input><br />
                Rigtige navn: <input type="input" name="realname"></input><br />
                Email: <input type="input" name="email"></input><br />
                Brugerinfo: <textarea cols="15" rows="5" name="userinfo"></textarea><br />
                <input type="hidden" name="usermake" value="1"></input><br />
                <input type="submit" name="opret"></input><br />
            </fieldset>               
            </form></div>';
           
?>
Avatar billede uniquedk Nybegynder
08. september 2007 - 19:33 #3
Jeg kan lide og foretrækker at holde koden i ren php fremfor at have 30 php tags ud og ind på en side ;-)
Avatar billede uniquedk Nybegynder
08. september 2007 - 20:35 #4
Nå men har fået det til a virke ved at bruge inline php tags med denne linie

value="<?php if(isset($_SESSION['error'])) { echo $_SESSION['username']; } ?>"

men jeg hader det *GGGGGG*
Synes koden er såååå grim, så hvis nogen har guldkornene til at får den linie til at virke når hele formen er i et php tag så post det lige, så er der point ;-)
Avatar billede olebole Juniormester
08. september 2007 - 20:58 #5
<ole>

Den kode kan du da heller ikke bruge med den kode, du viser. Nu er det ikke til at vide, hvad du synes, er grimt, men dette er også en mulighed:

<?php
$value = isset($error) ? $_SESSION['username'] : "";
echo '<div class="main"><form method="post" action="index.php">
            <label>Opret profil</label>
            <fieldset>
                Brugernavn: <input type="input" name="username" value="'.$value.'"><br />
                Kodeord: <input type="input" name="userpass"></input><br />
                Rigtige navn: <input type="input" name="realname"></input><br />
                Email: <input type="input" name="email"></input><br />
                Brugerinfo: <textarea cols="15" rows="5" name="userinfo"></textarea><br />
                <input type="hidden" name="usermake" value="1"></input><br />
                <input type="submit" name="opret"></input><br />
            </fieldset>               
            </form></div>';
           
?>

/mvh
</bole>
Avatar billede uniquedk Nybegynder
09. september 2007 - 01:57 #6
Nej jeg havde jo lavet hele formen om til den type kode struktur...
Ser spændende ud det du har lavet, er lige pt. for træt til at afprøve dt gør det imorgen.... men jeg ville jo gerne have mit check i selve linien med brugernavn...
skal have et check i hver linie med forskellig ssesion navn.... men tænker det kan bygges ind i linien.... har kigget på meget andet kode og ser ud til at dit er vejen man skal gå, jeg er nok ikke php freak nok ;-) jeg har prøvet nogle ting med ? men ærligt ved jeg sgu ikke hvad ? og : gør i din linie og hvorfor du kan tjekke uden IF, men jeg kigger på det når jeg er frisk igen ;-)
Avatar billede olebole Juniormester
09. september 2007 - 02:38 #7
Jeg bruger også en form for if/else - kaldet en ternær, komparativ operator:

$value = isset($error) ? $_SESSION['username'] : "";

- gør det samme som:

if ( isset($error) ) {
    $value = $_SESSION['username'];
} else {
    $value = "";
}
Avatar billede uniquedk Nybegynder
09. september 2007 - 06:05 #8
Okay, mange tak for forklaring og mest for lige at definere hvad det hedder....
Søgte lidt på nettet og er kommet til en rimelig forståelse af det nu... nu skal jeg bare begynde at bruge det for at lagre det på harddisken :-)
Du må gerne skrive et svar :-)
Avatar billede olebole Juniormester
09. september 2007 - 17:54 #9
Det er hermed skrevet: 'svar'  ;o)
Avatar billede olebole Juniormester
09. september 2007 - 20:09 #10
Tak for points  ;o)
Avatar billede uniquedk Nybegynder
10. september 2007 - 19:43 #11
Hvis du er i nærheden olebole, har jeg lige et ekstra sprøgsmål jeg støder på kan være rart at kunne i den operator...
I din linie $value = isset($error) ? $_SESSION['username'] : "";
kan man i samme linie lave et tjek på HVAD $error er, fremfor bare om den er sat...
jeg tænker kan man noget i stil med

$value = isset($error) (og er $error == 1)    ? $_SESSION['username'] : "";

Er stødt på et sted det kunne være ret smart, men hvordan gør man, prøvede med noget i stil med
$value = if($error == 1) ? $_SESSION['username'] : "";

men lader til man ikke må bruge if i sådan en sætning, kan det lade sig gøre?????
Avatar billede olebole Juniormester
12. september 2007 - 22:40 #12
For det første kom jeg til at kalde den noget forkert. Det er en ternær, konditionel operator ... sorry  :)

Løsningen på dit spørgsmål er:
    $value = (isset($error) && $error==1) ? $_SESSION['username'] : "";

- parantesen omkring betingelsen er ikke nødvendig, men kan måske hjælpe på overskueligheden i begyndelsen  ;o)

For fuldstændighedens skyld kan du også lave en if/else if/else:

if (noget==1) {
    bla = "A";
}
else if (noget==2) {
    bla = "B"
} else {
    bla = "C";
}

- sådan:

bla = noget==1 ? "A" : noget==2 ? "B" : "C";
Avatar billede olebole Juniormester
12. september 2007 - 22:43 #13
Nå ja ... det er jo PHP, så det skal selvfølgelig være: $bla
Du kan dog bruge samme syntaks i mit JavaScript, som nærmest er mit 'modersmål' ... jeg var derfor lige et helt andet sted  ;o)
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