Meine ersten PHP Scripte - geht es besser / einfacher???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Meine ersten PHP Scripte - geht es besser / einfacher???

    Hallo,

    habe jetzt mal ein kleines PHP Script geschrieben und würde gerne wissen ob es gut so ist oder ob ich sehr umständlich programmiert habe bzw. ob es Verbesserungsvorschläge gibt! Danke!!!

    PHP-Code:
    <?php
    $empfaenger 
    "maddel@musterschueler.com";
    $betreff "Reservierungsanfrage von ".$von." bis ".$bis."";
    if (
    $ez != "0") {$ez "$ez Einzelzimmer\n";} else {$ez "";};
    if (
    $dz != "0") {$dz "$dz Doppelzimmer\n";} else {$dz "";};
    if (
    $fw != "0") {$fw "$fw Ferienwohnungen für $personen Personen\n";} else {$fw "";};
    if (
    $fon != "") {$fon "Telefon: $fon\n";};
    if (
    $fax != "") {$fax "Telefax: $fax\n";};

    if (!
    $name1)    
    {echo 
    '<font face="Verdana" size="3" color="#990000"><b>Bitte geben Sie ihren Vornamen ein!</b><br></font>';}
    if (!
    $name2)    
    {echo 
    '<font face="Verdana" size="3" color="#990000"><b>Bitte geben Sie ihren Nachnamen ein!</b><br></font>';}
    if (!
    $mail)    
    {echo 
    '<font face="Verdana" size="3" color="#990000"><b>Bitte geben Sie eine e-mail Adresse ein!</b><br></font>';}
    if (!
    $von)    
    {echo 
    '<font face="Verdana" size="3" color="#990000"><b>Bitte geben Sie einen Text ein!</b><br></font>';}
    if (!
    $bis)    
    {echo 
    '<font face="Verdana" size="3" color="#990000"><b>Bitte geben Sie einen Text ein!</b><br></font>';}
    if (!
    $name1 || !$name2 || !$mail || !$von || !$bis
    {echo 
    "<a href=\"javascript:history.back();\"><font face=\"Verdana\" size=\"3\" color=\"#990000\"><br>zurück</font></a>";}
    elseif (!
    ereg("^.+@.+\\..+$"$mail))    
    {echo 
    "<font face=\"Verdana\" size=\"3\" color=\"#990000\">
    <b>Bitte geben Sie eine gültige eMail-Adresse ein!</b><br><a href=\"javascript:history.back();\">
    <font face=\"Verdana\" size=\"3\" color=\"#990000\"><br>zurück</font></a>"
    ;}
    else
    {
    $kopf "$betreff";
    $nachricht "Reservierungsanfrage:\n\n".$name1." ".$name2." möchte:\nvon ".$von." bis ".$bis."\n".$ez."".$dz."".$fw.
    "Kontakt:\n".$name1." ".$name2."\n".$fon."".$fax."".$mail."";

    if(
    mail($empfaenger$kopf$nachricht"From: $mail\nReply-To: $mail\nX-Mailer: PHP/" phpversion()))
    {
    echo require(
    'send_ok.php');
    }
    else
    {
    echo require(
    'send_fehler.php');
    }
    }
    ?>

  • #2
    $ez, $dz werden doch bestimmt irgendwie übergeben, per POST pder GET? dann benutze dafür $_GET oder $_POST (kannst auch al nach registered_globals off schauen.

    Mehr fällt mir nicht ein, hat aber nix zu heißen
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      einfach mal error_reporting() höher stellen, nochmal schauen..

      Kommentar


      • #4
        Das Script funktioniert nur mit register_globals = on und ist somit, sorry, Schrott.

        Gruß
        Uwe

        Kommentar


        • #5
          Original geschrieben von uwe59
          Das Script funktioniert nur mit register_globals = on und ist somit, sorry, Schrott.

          Gruß
          Uwe
          sehr konstruktiv!
          Für Rechtschreibfehler übernehme ich keine Haftung!

          Kommentar


          • #6
            Original geschrieben von uwe59
            Das Script funktioniert nur mit register_globals = on und ist somit, sorry, Schrott.

            Gruß
            Uwe
            das einzigste was schrott ist, ist deine aussage. das script ist verbesserungswürdig.

            @threadstarter - du könntest z.b. deine feldvalidierung verkürzen. einfach nur die fehlermeldung selbst "bitte blabla ausfüllen" zuweisen und später in dem für fehler formatierten div ausgeben.

            statt ereg solltest du lieber preg_match benutzen. näheres findest du im php manual.

            "0" <- wieso behandelst du eine zahl wie einen string?

            if ($zahl == 0)

            if ($string == "helloworld")

            lese im manual nach, was require macht. da die funktion nichts zurück gibt, kannst du dir das echo davor sparen.
            MfG
            aim
            Lies mich jetzt!
            - OT-Tags-Liebhaber und BB-Code-Einrücker -

            Kommentar


            • #7
              @Damian: Meinst du das so? Hat das den Vorteil das Variablen von Spammern nicht überschrieben werden können oder was?

              @aimbot: Wenn ich das richtig verstehe sollen also die entsprechend fehlerhaft ausgefüllten Felder Farbig gemacht werden!?

              0 als String weil es von einem Auswahlfeld übergeben wird!? Oder ist es dann trotzdem noch eine Zahl?

              Danke für die KONSTRUKTIVE!!! Hilfe

              PHP-Code:
              $name1 $_POST['name1'];
              $name2 $_POST['name2'];
              $mail $_POST['mail'];
              $strasse $_POST['strasse'];
              $hnr $_POST['hnr'];
              $plz $_POST['plz'];
              $ort $_POST['ort'];
              $fon $_POST['fon'];
              $fax $_POST['fax'];
              $ez $_POST['ez'];
              $dz $_POST['dz'];
              $fw $_POST['fw'];
              $personen $_POST['personen'];
              $von $_POST['von'];
              $bis $_POST['bis']; 

              Kommentar


              • #8
                zB. Oder direkt immer $_POST benutzen.
                Das hat was mit den Servereinstellungen zu tun. Einfach mal nach Register_Globals suchen. Gibt massig Threads dazu.


                und:

                Ich glaube er meint das eher so:
                PHP-Code:
                $fehlermeldung ""
                if(fehler){ $fehlermeldung .="bla <br />"; }
                if(
                fehler1){ $fehlermeldung .="bla1"; }
                etc...

                echo 
                '<div style="fehler">'.$fehlermeldung.'</div>'
                mfg

                EDIT:

                wieso werden die ; ) im PHPCode durch die Smileys vom board ersetzt? ^^

                Für Rechtschreibfehler übernehme ich keine Haftung!

                Kommentar


                • #9
                  Es geht eher darum, dass register_globals = on (unter Umständen) einen sehr hohen Risikofaktor darstellt, weswegen es seit geraumer Zeit standardmäßig auf off gestellt ist. Diese Einstellung sollte man auch beibehalten.
                  Genaueres gibt's hier: PHP Manual: Verwendung von Register Globals.
                  Nieder mit der Camel Case-Konvention

                  Kommentar


                  • #10
                    Hmm, wenn ich ereg durch preg_match ersetze, steht da:
                    Warning: No ending delimiter '^' found . Mir ist nicht aufgefallen dass die syntax bei preg_match anders ist, oder irre ich mich?

                    Grüße

                    Kommentar

                    Lädt...
                    X