Avatar billede Calle5463 Forsker
02. juli 2012 - 19:33 Der er 6 kommentarer og
1 løsning

Find Holger ...

Den her kodelinie -

<input type='text' name='rNavn' size='30' value='<?PHP echo $_POST['rNavn']; ?>' />

- giver mig denne fejl -

<br /><b>Notice</b>:  Undefined index: rNavn in <b>C:\Program Files (x86)\EasyPHP-5.3.9\www\ ...... formular.php</b> on line <b>129</b><br />

- men "kun" når jeg bruger EasyPHP - der kommer ingen fejl i FF, IE eller GC.

Mangler jeg noget "" eller '' eller måske et =  ?
Avatar billede olsensweb.dk Ekspert
02. juli 2012 - 20:10 #1
hurtigt bud dit problem er i $_POST['rNavn']
ret
<input type='text' name='rNavn' size='30' value='<?PHP echo $_POST['rNavn']; ?>' />

til
<input type="text" name="rNavn" size="30" value="<?php echo $_POST['rNavn']; ?>" />

alternativt skal du escape '
<input type='text' name='rNavn' size='30' value='<?php echo $_POST[\'rNavn\']; ?>' />

en secundært ting, php er med småt
Avatar billede scootergrisen Nybegynder
02. juli 2012 - 20:39 #2
"undefined index" betyder at $_POST['rNavn'] ikke er sat.

$_POST['rNavn'] bliver først sat når du har sendt formularen.

Før du echo'er den bør du derfor teste om den er sat som her...

if(isset($_POST['rNavn'])){

  echo $_POST['rNavn'];

}
Avatar billede Calle5463 Forsker
02. juli 2012 - 22:05 #3
Den her gør det - men følger det reglerne?

<?php
if (isset($_POST['Send'])) {
.....
  } else {
  $_POST['rNavn']="";
  }
}
?>
.....

<form ......>
  <input type='text' name='rNavn' size='30' value=<?php echo $_POST['rNavn']; /?>

</form>
Avatar billede olebole Juniormester
03. juli 2012 - 02:53 #4
<ole>

Der er rod i dine tuborg'er i #3, men du skal nok bruge:

<?php
if (isset($_POST['Send'])) {
    // Kode
}
else if (isset($_POST['rNavn'])) {
    // Kode
}
?>

Der er ikke tale om en fejl, men en 'notice'. En påmindelse om, at det, du gør, er uhensigtsmæssig og bad pratice.

Fænomenet opstår sikkert, fordi du har noget PHP-kode i toppen af dokumentet med formen. Den PHP-kode submitter du så formen mod.

Første gang, du går ind på siden med formen, læser PHP koden og prøver at afvikle den. Da formen endnu ikke er submittet, er $_POST array'et altså tomt.

Det er dårlig kodepraksis at bruge variabler, som ikke er erklæret. Når du derfor begynder at bruge $_POST['rNavn'], samtidig med at $_POST er tomt, minder PHP dig om, du er ude i noget snavs.

Du skal derfor først undersøge, om variablen er sat ved at spørge med isset. Det er god kodepraksis, og det mener Zebd teamet bag PHP, at vi bør lære. PHP er et meget tilgivende sprog - og det kan man sandelig også se på neget af den kode, der skrives. Derfor har de fornylig indført disse og andre pædagogiske meddelelser  =)

/mvh
</bole>
Avatar billede olebole Juniormester
03. juli 2012 - 02:55 #5
- og det er selvfølgelig HPH, at Zebd temaet står bag. Bag PHP står som bekendt Zend teamet  :)
Avatar billede Calle5463 Forsker
03. juli 2012 - 09:45 #6
#bad practice: Fair nok at få en "notice" - det er af uvidenhed og ikke ond vilje jeg laver den slags fejl (ved ikke hvad andre gør), og så er det helt fint at få det meddelt og at kunne hente kvalificeret hjælp og viden her - tak for det.

Tuborgene i kommentarerne er ikke = mit prg. - der passer de. Det er ikke helt fredagsbar altsammen .... gad vide om gutterne i de to team husker at drikke en fredagsøl ind i mellem - de lyder som nogen der har fortjent det :-)

Jeg har i øvrigt fået det til at virke, så der skal lige smides et svar og faktisk var det (med Meyers ord) svinet på scooteren der gav mig løsningen ...
Avatar billede Calle5463 Forsker
18. juli 2012 - 09:54 #7
- der er tilsyneladende ingen der ønsker point, så jeg laver et "selvmål"
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