Avatar billede overgaard1605 Nybegynder
25. februar 2003 - 22:15 Der er 16 kommentarer og
1 løsning

Fejl i php kode

Hej jeg har lavet en form hvor man kan indtaste nogle oplysninger i, og lavet et tilhørende php script til at håndterer det. men jeg får en fejl når jeg ligger det op på en server der lyder på følgende:

Notice: Use of undefined constant navn - assumed 'navn' in D:\WWW\stefan.torp.to\oensker_koersel.php on line 15

og min kode ser sådan ud:

<?

if($_POST[navn] && $_POST[tlf] && $_POST[email] && $_POST[dato] && $_POST[klokken] && $_POST[by1] && $_POST[postnr1] && $_POST[by2] && $_POST[postnr2]){


    echo "Dine oplysninger er nu lagt ind på siden!!!"; echo "<br><br>";
    echo "Navn:  "; echo "$_POST[navn]"; echo "<br>";
    echo "Tlf nr: "; echo "$_POST[tlf]"; echo "<br>";
    echo "E-mail: "; echo "$_POST[email]"; echo "<br><br>";
     
    echo "Ønsker d. $_POST[dato], klokken $_POST[klokken]"; echo "<br><br>";

    echo "At komme fra følgende by:"; echo "<br><br>";
    echo "$_POST[postnr1]"; echo " "; echo "$_POST[by1]"; echo "<br><br>";   
   
      echo "Til følgende by:"; echo "<br><br>";
    echo "$_POST[postnr2]"; echo " "; echo "$_POST[by2]"; echo "<br><br><br>";

    echo "Travel2gether.dk ønsker dig god tur";
}
else
{
?>

<form method="post" action="oensker_koersel.php">
  <table width="100%" border="0">
  <tr>
    <td width="30%">Dato:</td>
    <td width="70%"><input type="text" name="dato" size="10" maxlength="10"> (eks. 16/05/2003)</td>
  </tr>
    <tr>
    <td width="30%">Klokken:</td>
    <td width="70%"><input type="text" name="klokken" size="5" maxlength="5"> (eks. 18.30)</td>
  </tr>
      <tr>
    <td width="30%"><br>
        <b>Ønsker jeg at komme fra.</b><br>
      </td>
    <td width="70%"></td>
  </tr>
    <tr>
    <td width="30%">By:</td>
    <td width="70%"><input type="text" name="by1" size="15"></td>
  </tr>
  <tr>
    <td width="30%">Postnr:</td>
    <td width="70%"><input type="text" name="postnr1" size="4" maxlength="4"></td>
  </tr>
  <tr>
    <td width="30%"><br>
        <b>Til følgende sted.</b><br>
      </td>
    <td width="70%"></td>
  </tr>
  <tr>
    <td width="30%">By:</td>
    <td width="70%"><input type="text" name="by2" size="15"></td>
  </tr>
  <tr>
    <td width="30%">Postnr:</td>
    <td width="70%"><input type="text" name="postnr2" size="4" maxlength="4"></td>
  </tr>
  <tr>
    <td width="30%"><br>
        <b>Oplysninger.</b><br>
      </td>
    <td width="70%"></td>
  </tr>
  <tr>
    <td width="30%">Navn:</td>
    <td width="70%"><input type="text" name="navn" size="20"></td>
  </tr>
  <tr>
    <td width="30%">Tlf:</td>
    <td width="70%"><input type="text" name="tlf" size="8" maxlength="8"></td>
  </tr>
  <tr>
    <td width="30%">E-mail:</td>
    <td width="70%"><input type="text" name="email" size="20"></td>
  </tr>
  <tr>
      <td width="30%"><b><br>Send Oplysninger:<br></b></td>
    <td width="70%"><br><input type="submit" value="send"></td>
  </tr>
</table>
</form>
<?
}
?>
</body>
</html>
-----------------------------------------------

er der nogle der kan hjælpe???

desuden kunne jeg godt tænke mig, at når man afsender de indtastede data, bliver de skrevet ud på en ny blank side hvor der ikke står andet end det jeg har skrevet i php scriptet kommer ud? nogen der har en kode til det
Avatar billede angam Nybegynder
25. februar 2003 - 22:18 #1
Hvad hvis du retter disse tre til:
    echo "Navn:  ". $_POST[navn] ."<br>";
    echo "Tlf nr: ". $_POST[tlf] ."<br>";
    echo "E-mail: ". $_POST[email] ."<br><br>";

?
Avatar billede angam Nybegynder
25. februar 2003 - 22:19 #2
.. øh - jeg ser at der er flere linier der har samme problem. Jeg tror det er fordi du udskriver $_POST[] inde i en streng ("") - sæt den udenfor strengen, så skulle det køre.
Avatar billede human Nybegynder
25. februar 2003 - 22:21 #3
Korrekt, eller prøv echo "Navn:  '$_POST[navn]'<br>";
Avatar billede rzj Nybegynder
25. februar 2003 - 22:25 #4
eller endnu bedre :-)--> echo 'Navn:&nbsp;'.$_POST['navn']'<br/>';

læg mærke til 'gnyffer indenfor [] - gælder for alle $_SUPERGLOBALS[]...
/raz
Avatar billede human Nybegynder
25. februar 2003 - 22:26 #5
Whoops, tror jeg skal have en kop kaffe snart da ;o)
Avatar billede angam Nybegynder
25. februar 2003 - 22:28 #6
rzj > Gnyffer Det er åbenbart ikke påkrævet i alle php-versioner. Personligt sætter jeg nu altid gnyffer omkring - jeg synes det øger læsbarheden betydeligt når de er der (ikke mindst fordi de får en anden farve i editoren ;-)
Avatar billede rzj Nybegynder
25. februar 2003 - 22:28 #7
manglede lige et punktum:

echo 'Navn:&nbsp;'.$_POST['navn'].'<br/>';
Avatar billede angam Nybegynder
25. februar 2003 - 22:29 #8
... så:
  echo('Navn:  '. $_POST['navn'] .'<br>');

er nok min favorit (med paranteser og hele svineriet ;-)
Avatar billede rzj Nybegynder
25. februar 2003 - 22:29 #9
angarm>>kommer vel an på hvordan man har konfig'et sin editor, men...... enig :-)
Avatar billede overgaard1605 Nybegynder
25. februar 2003 - 22:39 #10
Det går galt noget før... linie 15 er linien hvor jeg har if sætningen... jeg har installeret apache på min computer og i det kører det godt nok, men når jeg ligger det op på serveren skriver den at der er en undefined constant i if sætningen?????
Avatar billede rzj Nybegynder
25. februar 2003 - 22:45 #11
den HELT rigtige måde at teste for om en var er sat er også at gøre:
if(isset($_POST[navn]) && isset($_POST[tlf]) isset(&& $_POST[email]) && isset($_POST[dato]) && isset($_POST[klokken]) && isset($_POST[by1]) && isset($_POST[postnr1]) && isset($_POST[by2]) && isset($_POST[postnr2])){

altså at bruge isset.
det afhænger af fejlrapporteringsniveauet, hvorvidt man får fejl uden at anvende isset()
/raz
Avatar billede sukos Juniormester
25. februar 2003 - 22:46 #12
Det nemmeste er hvis du laver et hidden felt:

<form method="post" action="oensker_koersel.php">
<input type="hidden" name="postinfo" value="postinfo">

Og når du så vil tjekke om submit er klikket, så bruge:

<?php
if(isset($_POST['postinfo'])) {

echo "Dine oplysninger er nu lagt ind på siden!!!"; echo "<br><br>";
echo "Navn:  "; echo "$_POST[navn]"; echo "<br>";
echo "Tlf nr: "; echo "$_POST[tlf]"; echo "<br>";
echo "E-mail: "; echo "$_POST[email]"; echo "<br><br>";
     
echo "Ønsker d. $_POST[dato], klokken $_POST[klokken]"; echo "<br><br>";

echo "At komme fra følgende by:"; echo "<br><br>";
echo "$_POST[postnr1]"; echo " "; echo "$_POST[by1]"; echo "<br><br>";   
   
echo "Til følgende by:"; echo "<br><br>";
echo "$_POST[postnr2]"; echo " "; echo "$_POST[by2]"; echo "<br><br><br>";

echo "Travel2gether.dk ønsker dig god tur";
}
else
{
?>

Altså, du bruger èt felt til at tjekke om der er klikket på submit
Avatar billede sukos Juniormester
25. februar 2003 - 22:50 #13
hov, hvad er det for noget kode du hiver ind?
èn echo kan/skal du jo bruge!
Avatar billede overgaard1605 Nybegynder
25. februar 2003 - 22:57 #14
Til sukos.... det hjalp med det skjulte felt... nu kører det.... du ved ikke hvordan man får det skrevet ud på en ny og anden side... så jeg ikke får skrevet det ud på siden som er lavet med html
Avatar billede sukos Juniormester
25. februar 2003 - 22:59 #15
<?php
if(isset($_POST['postinfo'])) {
?>
Dine oplysninger er nu lagt ind på siden!!!<br><br>
Navn:<?php echo $_POST['navn']; ?><br>
Tlf nr: <?php echo $_POST['tlf']; ?><br>
E-mail: <?php echo $_POST['email']; ?><br><br>
     
Ønsker d. <?php echo $_POST['dato']; ?>, klokken :<?php echo $_POST['klokken']; ?><br><br>

At komme fra følgende by: : <br><br>
<?php echo $_POST['postnr1']; ?> <?php echo $_POST['by1']; ?><br><br>   
   
Til følgende by:<br><br>
<?php echo $_POST['postnr2']; ?> <?php echo $_POST['by2']; ?><br><br><br>

Travel2gether.dk ønsker dig god tur<?php
}
else
{
?>
Avatar billede rzj Nybegynder
25. februar 2003 - 23:03 #16
overgaard1605 >>Du spurgte hvorfor du får en fejl.

Svaret er: fordi du skal bruge isset()...

om du så vælger at tjekke alle vars eller ej i if()  - ja det er op til dig slev :-)
/raz
Avatar billede sukos Juniormester
25. februar 2003 - 23:03 #17
æhh, du kan jo submitte til en anden fil.
Du skal vel formodentlig gemme i en DB?
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