ilch Forum » Allgemein » Plauder Ecke » hilfe bei Quellcode

Geschlossen
  1. #1
    User Pic
    Noob gelöschter User
    Hi ilch oder wer mir sonst noch helfen möchte,

    ich habe mir ein ebook von Markt und Technik besorgt und fleißig angefangen zu lernen.

    Jetzt ist es so, das in der ersten Lektion nach den PHP Grundlagen schon sofort ein Mailformular nebst dazugehörendem php script gemacht wird.

    Ich habe auch alles so gemacht wie in dem Book beschrieben bekomme aber trotzdem Fehler wenn ich die Seiten in meinem Browser öffne (trotz Apache und php).[code]<html>
    <head>
    <title>Antwort</title>
    </head>
    <body>
    <?php
    if($sent==1) {
    $vorname = $HTTP_POST_VARS["vorname"];
    $nachname = $HTTP_POST_VARS["nachname"];
    $email = $HTTP_POST_VARS["email"];
    $rank = $HTTP_POST_VARS["rank"];
    echo "Ihr Vorname ist $vorname <br>";
    echo "Ihr Nachname lautet $nachname<br>";
    echo "Ihre Mailadresse ist demnach $email<br>";
    echo "Ihre Note für unsere Site ist $rank<br>";
    if ($rank=="Keine Angabe") {echo "Danke für die Teilnahme";}
    elseif($rank=="nciht so gut") {echo "Schade, das Ihenen das Spiel nicht gefallen hat";}
    else {echo "schön das es Ihnen gefallen hat";}
    ?>
    <p>
    <h3>Geben SIe bitte Hier Ihre Daten ein!</h3>
    <form input type="hidden" name="sent" value="1" action="<?php echo $PHP_SELF; ?>" method="post" >
    Vorname<br><input type="text" name="vorname" value = "<?php echo $vorname; ?>" size="20"><br>
    Nachname<br><input type="text" name="nachname" value="<?php echo $nachname; ?>" size="20"><br>
    E-Mail<br><input type="text" name="email" size="30"><br>
    <h4>Wie hat IHnen das gefallen???</h4>
    <select size="1" name="rank">
    <option value="keine Angabe">Keine Angabe</option>
    <option value="sehr gut">Sehr gut danke</option>
    <option value="es geht">macht schon was her</option>
    <option value="nicht so gut">nicht so gut</option>
    </select>
    <p>
    <input type="submit" name="submit" value="abschicken">
    </p>

    </form>
    </p>



    </body>
    </html>

    vieleicht kann mir dabei ja jemad helfen ?

    greez

    der Noob
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    tReX Mitglied
    Registriert seit
    18.04.2004
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    wäre sehr hilfreich wenn du schreiben könntest welchen fehler du bekommst!
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Noob gelöschter User
    [code]Notice: Undefined index: vorname in D:\server\mail.php on line 7

    Notice: Undefined index: nachname in D:\server\mail.php on line 8

    Notice: Undefined index: email in D:\server\mail.php on line 9

    Notice: Undefined index: rank in D:\server\mail.php on line 10

    das ist der Fehlercode den ich bekomme.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Noob gelöschter User
    [code]Forbidden
    You don't have permission to access /<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>D:/server/mail.php</b> on line <b>21</b><br /> on this server.


    --------------------------------------------------------------------------------

    Apache/2.0.49 (Win32) Server at localhost Port 80

    diesen Fehler bekomme ich dann wenn ich das Formular ausfülle und "abschicke"

    thx schon mal

    Noob
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    hi,

    also mal etwas wesentliches.
    $HTTP_POST_VARS ist etwas "veraltet

    nimm lieber $_POST

    dann musst du variablen nicht umschreiben. nimm doch einfach immer $_POST['var']

    der fehler Undefined index: nachname in D: ...

    tritt immer dann auf wenn du in dem beispeil die variable nachname benutz obwohl sie nicht vorher definiert wurde, den fehler umgehst du indem du folgendes machst :

    if ( empty($_POST['nachname']) ) {
    $_POST['nachname'] = '';
    }

    also wenn nachname leer ist dann ist nachname = '';

    soa und anschliesend mal dein script wie es eigentlich gehen sollte zwinker

    <html>
    <head>
    <title>Antwort</title>
    </head>
    <body>
    <?php
    
    if ( empty ($_POST["vorname"]) ) {
      $_POST["vorname"] = '';
    }
    if ( empty ($_POST["nachname"]) ) {
      $_POST["nachname"] = '';
    }
    if ( empty ($_POST["email"]) ) {
      $_POST["email"] = '';
    }
    if ( empty ($_POST["rank"]) ) {
      $_POST["rank"] = '';
    }
    
    
    echo "Ihr Vorname ist $vorname <br>";
    echo "Ihr Nachname lautet $nachname<br>";
    echo "Ihre Mailadresse ist demnach $email<br>";
    echo "Ihre Note für unsere Site ist $rank<br>";
    if ($_POST['rank'] =="Keine Angabe" {echo "Danke für die Teilnahme";}
    elseif($_POST['rank']=="nicht so gut" {echo "Schade, das Ihenen das Spiel nicht gefallen hat";}
    else {echo "schön das es Ihnen gefallen hat";}
    ?>
    <p>
    <h3>Geben SIe bitte Hier Ihre Daten ein!</h3>
    <form input type="hidden" name="sent" value="1" action="<?php echo $PHP_SELF; ?>" method="post" >
    Vorname<br><input type="text" name="vorname" value = "<?php echo $_POST['vorname']; ?>" size="20"><br>
    Nachname<br><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>" size="20"><br>
    E-Mail<br><input type="text" name="email" size="30"><br>
    <h4>Wie hat IHnen das gefallen???</h4>
    <select size="1" name="rank">
    <option value="keine Angabe">Keine Angabe</option>
    <option value="sehr gut">Sehr gut danke</option>
    <option value="es geht">macht schon was her</option>
    <option value="nicht so gut">nicht so gut</option>
    </select>
    <p>
    <input type="submit" name="submit" value="abschicken">
    </p>
    
    </form>
    </p>
    
    
    
    </body>
    </html>
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Noob gelöschter User
    hi ilch und vielen Dank schon mal.

    ich habe mir gerade mal deinen code kopiert und auf meinem server ausprobiert und bekam folgende meldung:

    Parse error: parse error, unexpected '{' in D:\server\mail.php on line 26

    ausserdem hast Du gesagt, das das was ich da geschrieben habe ziemlich veraltet ist. aber wie und wo kann ich denn das "neuere" lernen ?
    denn ich sehe keinen sinn darin das alte zu lernen wenn es schon wieder neuere sachen gibt und angeblich ist das schon php4.

    wie gesagt thx schon mal

    der Noob

    ps welches progg benutzt du um deine codes zu schreiben ?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    tReX Mitglied
    Registriert seit
    18.04.2004
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Tjoa nach dem if sollte die Schleife auch geschlossen werden zunge

    if {...}
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    Noob gelöschter User
    tja tReX,

    leider kann ich nicht finden was Du meinst denn soweit ich das beurteilen kann sind alle anweisungen geschlossen mit einer }

    der Noob
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Noob gelöschter User
    Hi ilch,

    so nachdem ich deinen korregierten code kopiert hatte und die 2 ) hinzugefügt habe die fehlten bekomme ich nach wie vor diese Fehler beim aufruf des Scripts
    [code]
    Notice: Undefined variable: vorname in D:\server\mail.php on line 22
    Ihr Vorname ist

    Notice: Undefined variable: nachname in D:\server\mail.php on line 23
    Ihr Nachname lautet

    Notice: Undefined variable: email in D:\server\mail.php on line 24
    Ihre Mailadresse ist demnach

    Notice: Undefined variable: rank in D:\server\mail.php on line 25
    Ihre Note für unsere Site ist
    schön das es Ihnen gefallen hat

    keine Ahnung woran das liegt das die vars nicht übernommen werden.

    greez

    der Noob
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    mhhm ja also hab ich ja schon gesagt kann eigentlich nicht so wirklich sein, also ich würde dich daher mal bitten den kompleten code also alles die datei von a-z hir zu schreiben ansonsten kann ich dazu einfach nichts sagen.

    ich benutze ein sehr veraltetes programm zunge... aber das neuste über php gibts auf php.net zwinker

    also einfach mal das komplete script hier posten und den code tag am ende mit [/code] auch wieder zu machen !! lachen ... gruß ilch
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Noob gelöschter User
    sooooo das ist der anze code von a-z mehr jibbet net...

    <html>
    <head>
    <title>Antwort</title>
    </head>
    <body>
    <?php
    
    if ( empty ($_POST["vorname"]) ) {
      $_POST["vorname"] = '';
    }
    if ( empty ($_POST["nachname"]) ) {
      $_POST["nachname"] = '';
    }
    if ( empty ($_POST["email"]) ) {
      $_POST["email"] = '';
    }
    if ( empty ($_POST["rank"]) ) {
      $_POST["rank"] = '';
    }
    
    
    echo "Ihr Vorname ist $vorname <br>";
    echo "Ihr Nachname lautet $nachname<br>";
    echo "Ihre Mailadresse ist demnach $email<br>";
    echo "Ihre Note für unsere Site ist $rank<br>";
    if ($_POST['rank'] =="Keine Angabe") {echo "Danke für die Teilnahme";}
    elseif($_POST['rank']=="nicht so gut") {echo "Schade, das Ihenen das Spiel nicht gefallen hat";}
    else {echo "schön das es Ihnen gefallen hat";}
    ?>
    <p>
    <h3>Geben SIe bitte Hier Ihre Daten ein!</h3>
    <form input type="text" name="sent" value="1" action="mail.php" method="post" >
    Vorname<br><input type="text" name="vorname" value = "<?php echo $_POST['vorname']; ?>" size="20"><br>
    Nachname<br><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>" size="20"><br>
    E-Mail<br><input type="text" name="email" size="30"><br>
    <h4>Wie hat IHnen das gefallen???</h4>
    <select size="1" name="rank">
    <option value="keine Angabe">Keine Angabe</option>
    <option value="sehr gut">Sehr gut danke</option>
    <option value="es geht">macht schon was her</option>
    <option value="nicht so gut">nicht so gut</option>
    </select>
    <p>
    <input type="submit" name="submit" value="abschicken">
    </p>
    
    </form>
    </p>
    
    
    
    </body>
    </html>


    so das is wie gesagt alles aber ich habe da noch ne frage und zwar ob einer nen tipp für mich hat
    die neuere schreibweise des php zu lernen .

    greez

    der Noob
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    also mekwürdig das läuft bei mir ohne probleme schau mal hier

    ilch.de/test/test/mail.php

    sogar mit

    error_reporting(E_ALL);

    was normalerweise dafür sorgt alle fehler auszugeben die auf sensiblen php versionen auftreten könnten.

    MERKWÜRDIG grumml
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Noob gelöschter User
    hmmmmm

    also wenn ich deiner url folge bekomme ich das gleiche wie bei mir angezeigt....
    und dann geh ich auf aktualisieren und bekomme

    ilch.de - 404 Fehler


    Die angeforderte Datei oder der angeforderte Ordner ist nicht vorhanden.

    Sie werden in 15 Sekunden automatisch auf www.ilch.de weitergeleitet.

    naja keine ahnung dann werde ich vieleicht mal an meinem server was machen müssen ???

    greez

    der Noob
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    nein wird hier behoben, gestern kamen diese fuck fehler noch nicht.

    hier jetzt die laufende version die auch auf deinem server gehen muss!! +g+

    <html> 
    <head> 
    <title>Antwort</title> 
    </head> 
    <body> 
    <?php 
     error_reporting(E_ALL);
    
    if ( empty ($_POST["vorname"]) ) { 
      $_POST["vorname"] = ''; 
    } 
    if ( empty ($_POST["nachname"]) ) { 
      $_POST["nachname"] = ''; 
    } 
    if ( empty ($_POST["email"]) ) { 
      $_POST["email"] = ''; 
    } 
    if ( empty ($_POST["rank"]) ) { 
      $_POST["rank"] = ''; 
    } 
    
    
    echo 'Ihr Vorname ist '.$_POST['vorname'].'<br>'; 
    echo 'Ihr Nachname lautet '.$_POST['nachname'].'<br>'; 
    echo 'Ihre Mailadresse ist demnach '.$_POST['email'].'<br>'; 
    echo 'Ihre Note für unsere Site ist '.$_POST['rank'].'<br>'; 
    if ($_POST['rank'] =="Keine Angabe") {echo "Danke für die Teilnahme";} 
    elseif($_POST['rank']=="nicht so gut") {echo "Schade, das Ihenen das Spiel nicht gefallen hat";} 
    else {echo "schön das es Ihnen gefallen hat";} 
    ?> 
    <p> 
    <h3>Geben SIe bitte Hier Ihre Daten ein!</h3> 
    <form input type="text" name="sent" value="1" action="mail.php" method="post" > 
    Vorname<br><input type="text" name="vorname" value = "<?php echo $_POST['vorname']; ?>" size="20"><br> 
    Nachname<br><input type="text" name="nachname" value="<?php echo $_POST['nachname']; ?>" size="20"><br> 
    E-Mail<br><input type="text" name="email" size="30" value="<?php echo $_POST['email']; ?>"><br> 
    <h4>Wie hat IHnen das gefallen???</h4> 
    <select size="1" name="rank"> 
    <option value="keine Angabe">Keine Angabe</option> 
    <option value="sehr gut">Sehr gut danke</option> 
    <option value="es geht">macht schon was her</option> 
    <option value="nicht so gut">nicht so gut</option> 
    </select> 
    <p> 
    <input type="submit" name="submit" value="abschicken"> 
    </p> 
    
    </form> 
    </p> 
    
    
    
    </body> 
    </html>
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Noob gelöschter User
    lol ilch jetzt funktioniert alles wie es soll.

    aber ich will ja lernen und bitte verrate mir mal welche fehler ich gemacht habe denn wie gesagt ich habe alles genau so gemacht wie in diesem anscheinend total verka..... buch beschrieben.

    ich benutze proton als progg was hälst du davon ?

    greez

    der Noob
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    manuel ilch-Gründer
    Registriert seit
    22.03.2003
    Beiträge
    4.260
    Beitragswertungen
    4 Beitragspunkte
    ja wird auf jeden fall oft empfohlen also schon ok am programm liegt es nicht +g+ gibt ja auch leute die mit standart notepad schreiben.

    also das buch ist schon gut, nur dein server hat offenbar einige "problemchen" und zwar folgendes.

    eine variable kannst du erst nutzen wenn sie ausdrücklich vorher deklariert wurde. also festgelegt wurde mit

    $variable = 'inhalt';

    und jetzt in deinem forumlar ist einmal ja die $variable schon "voll" nämlich wenn man das form ausgefüllt hat aber wenn man das erstemal auf die seite kommt ist die variable nicht voll also musst du schreiben :

    <?php
    if ( empty ($variable) ) {
      $variable = 'inhalt';
    }
    ?>


    was heisst wenn die variable $variable leer ist dann ist die variable "inhalt" oder einfach "" was heisst die ist zwar deklarit aber sie hat keinen inhalt.

    der nächste fehler war das du variablen einmal mit $_POST[] und einmal ohne benutzt hast.

    normaerweise kann man $_POST[] variablen also mit einem formular an die seite übergeben auch ohne $_POST[] nutzen auf manchen servern allerdings nicht daher sollte man immer koreckt arbeiten.

    wenn du also auf deinem server eine variable so deklarist oder das formular das macht nämlich mit

    $_POST['varialbe'] = 'inhalt';

    dann musst du die variable auch so nutzen

    echo $_POST['variable'];

    oder du schreibst sie um so wie du das hier auch schonmal hattest :

    $variable = $_POST['variable'];

    joa und wenn du halt die nicht umschreibst und trotzdem $variable und nicht $_POST['variable'] nutz dann kommt ein fehler lächeln

    bei fragen hier posten schockiert
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Plauder Ecke

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten