Anzeige

Bitte dringende Hilfe

Bitte dringende Hilfe | PSD-Tutorials.de

Erstellt von streichelweich, 31.10.2008.

  1. streichelweich

    streichelweich Noch nicht viel geschrieben

    Dabei seit:
    13.04.2008
    Beiträge:
    28
    Geschlecht:
    weiblich
    Software:
    Adobe Creative Cloud CC 2014
    Kameratyp:
    Canon EOS60D
    Bitte dringende Hilfe
    Hallo Leute ... :)

    ich bräuchte mal dringend Eure Hilfe zu 3 Dingen -

    1*)bei einer Abfrage in PHP.

    Hab ein Formular in dem ein Anreisedatum mittels 3 Felder ermittelt wird.... Pulldown-Menü - Tag Monat und Jahr und ein Abreisedatum (wie Anreisedatum)

    Die Abfrage soll sein, dass dieses Anreisedatum größer als das aktuelle Tagesdatum der Anfrage sein soll - und das Abreisedatum größer als das Anreisedatum.

    Irgendwie hab ich keine Ahnung wie ich das machen soll :rolleyes:

    2*)der Angefragte soll natürlich die Daten aus dem Formular als Mail bekommen - der Kunde soll seine Daten und einen zusätzlichen Text in seiner Mail bekommen

    Frage ... wie teile ich diese beiden Mails auf??

    3*) die Ausgabe in der Mail der Formulardaten sollte so aussehen
    Feldname: (rechtsbünding und fett) Feldwert (linksbündig neben dem Doppelpunkt und NICHT fett)

    Code (Text):
    1. <?php
    2.   $formularAnzeigen = false;
    3.   if (!empty($_POST["senden"]) && (
    4.       empty($_POST["vorname"]))) {
    5.     $formularAnzeigen = true;
    6.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte geben Sie Ihren Vornamen an.</span>';
    7.   } else if (!empty($_POST["senden"]) && (
    8.       empty($_POST["nachname"]))) {
    9.     $formularAnzeigen = true;
    10.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte geben Sie Ihren Nachnamen an.</span>';
    11.   } else if (!empty($_POST["senden"]) && (
    12.       empty($_POST["telefon"]))) {
    13.     $formularAnzeigen = true;
    14.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte geben Sie Ihre Telefonnummer an.</span>';
    15.   } else if (!empty($_POST["senden"]) && (
    16.       empty($_POST["ankunftsort"]))) {
    17.     $formularAnzeigen = true;
    18.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte nennen Sie uns Ihren Ankunftsort.</span>';
    19.   } else if (!empty($_POST["senden"]) && (
    20.       empty($_POST["abreiseort"]))) {
    21.     $formularAnzeigen = true;
    22.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte nennen Sie uns den Abreisort.</span>';
    23.   } else if (!empty($_POST["senden"]) && (
    24.       !$captchaValidierungOk)) {
    25.     $formularAnzeigen = true;
    26.     echo '<span style="color: #FF0000; font-size: x-large;">Bitte geben Sie den Sicherheitscode richtig ein.</span>';    
    27.   } else if (!empty($_POST["senden"]) &&
    28.              !isEmail($_POST["eMail"])) {
    29.     $formularAnzeigen = true;  
    30.     echo '<span style="color: #FF0000; font-size: x-large;">Die E-Mail-Adresse ist nicht korrekt.</span>';
    31.   } else if (empty($_POST["senden"])) {
    32.     $formularAnzeigen = true;  
    33.   }
    34.   if ($formularAnzeigen) {
    35. ?>        
    36.  
    37. Hier steckt das Formular drinnen
    38.  
    39.  
    40. <?php  
    41. echo'  ';
    42. } else {
    43.     $eMail = '
    44.  
    45. Lieber Reiseinteressent,
    46.  
    47. vielen Dank für Ihre Anfrage über unsere Website.
    48. Wir freuen uns, dass Sie Verbindung mit uns aufgenommen haben
    49. und werden Ihre Anfrage in kürzester Zeit beantworten.
    50.  
    51. Mit freundlichen Grüßen
    52. Ihr Kwenda Safari Team
    53.  
    54. Ihre Anfrage haben wir wie folgt aufgenommen:
    55.  
    56. Anrede: '.$_POST['anrede'].'
    57.  
    58. Vorname: '.$_POST['vorname'].'  
    59.  
    60. Name: '.$_POST['nachname'].'
    61.  
    62. eMail: '.$_POST['eMail'].'
    63.  
    64. Telefon: '.$_POST['telefon'].'
    65.  
    66. Interesse an: '.$_POST['rover'].' . '.$_POST['safari'].' . '.$_POST['offroad'].'
    67.  
    68. Anzahl der Reisenden: '.$_POST['anzahl'].'
    69.  
    70. davon unter 18: '.$_POST['unter'].'
    71.  
    72. Ankunft am: '.$_POST['tag'].' '.$_POST['monat'].' '.$_POST['jahr'].'
    73.  
    74. Ankunftsort: '.$_POST['ankunftsort'].'
    75.  
    76. Abreise am: '.$_POST['tag2'].' '.$_POST['monat2'].' '.$_POST['jahr2'].'
    77.  
    78. Abreiseort: '.$_POST['abreiseort'].'
    79.  
    80. Fragen und Hinweise: '.$_POST['kommentar'].'
    81.  
    82. ';
    83.  
    84.     if (@mail("mail@mail.de",
    85.         "Firma - Internet Anfrage",
    86.         $eMail)) {
    87.     echo "Vielen Dank für Ihre Anfrage. Ihre Mail wurde erfolgreich verschickt.<br /> <br />";
    88.     } else {
    89.     echo "E-Mail-Verkehr funktioniert zur Zeit nicht<br />";
    90.     }
    91.     if ($_POST['kopie']) {
    92.         if (@mail($_POST['eMail'],
    93.             "Firma - Internet Anfrage - Kopie Ihrer Daten",
    94.             $eMail)) {
    95.         echo "Eine Kopie Ihrer Anfrage erhalten Sie an die von Ihnen angegebene eMail-Adresse.<br />";
    96.         }
    97.     }
    98. }
    99. function isEmail($email) {
    100.     $nonascii      = "\x80-\xff";    
    101.     $nqtext        = "[^\\$nonascii\015\012\"]";    
    102.     $qchar         = "\\[^$nonascii]";    
    103.     $protocol      = "(?:mailto:)";    
    104.     $normuser      = "[a-zA-Z0-9][a-zA-Z0-9_.-]*";    
    105.     $quotedstring  = "\"(?:$nqtext|$qchar)+\"";    
    106.     $user_part     = "(?:$normuser|$quotedstring)";    
    107.     $dom_mainpart  = "[a-zA-Z0-9][a-zA-Z0-9._-]*\.";    
    108.     $dom_subpart   = "(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\.)*";    
    109.     $dom_tldpart   = "[a-zA-Z]{2,5}";    
    110.     $domain_part   = "$dom_subpart$dom_mainpart$dom_tldpart";    
    111.     $regex         = "$protocol?$user_part\@$domain_part";
    112.     if (preg_match("/^$regex$/",$email)) {
    113.         return true;
    114.     }
    115.         return false;
    116.     }
    117. ?>  
    Das Formular funktioniert zwar so wie es hier ist - aber es werden diese Zusäzte eben noch gebraucht :'(

    Bitte bitte helft mir :) DANKE
     
    #1      
  2. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    zum Datums vergleich:
    mit time() kannst du dir die timestamp vom jetzigen zeitpunkt ausgeben lassen.
    aus den drei werten aus dem formular kannst du mit mktime() auch eine timestamp für das Datum ausgeben lassen.Diese Werte kannst du dann einfach vergleichen.
    (dasselbe gilt natürlich für den Abreisetag.)
    PHP: mktime - Manual
     
    #2      
  3. streichelweich

    streichelweich Noch nicht viel geschrieben

    Dabei seit:
    13.04.2008
    Beiträge:
    28
    Geschlecht:
    weiblich
    Software:
    Adobe Creative Cloud CC 2014
    Kameratyp:
    Canon EOS60D
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    hallo sokie :)

    könntest du mir das bitte zeigen, hab grad nen ziemlichen durchhänger und ein brett vor dem kopf :'(
    BITTE DANKE

    Was mir grade auffällt bei dem php-manual mktime - dieses Ankunftsdatum setzt sich aus den Felder Tag (01 - 31) Monat (Januar - Dezember) und Jahr (2008 oder 2009) zusammen.
     
    Zuletzt bearbeitet: 31.10.2008
    #3      
  4. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    Hi,

    möglicher Lösungsansatz:

    PHP:
    1.  
    2. <?php
    3. /* Anreisetag-Timestamp */
    4.  
    5. if( isset ( $_POST['and'] ) AND isset( $_POST['anm'] ) AND isset( $_POST['any'] ) ) {
    6.     $anreisetag = mktime( 0 , 0 , 0 , $_POST['anm'] , $_POST['and'] , $_POST['any'] );
    7. }
    8.  
    9. /* Abreisetag - Timestamp */
    10. if( isset ( $_POST['abd'] ) AND isset( $_POST['abm'] ) AND isset( $_POST['aby'] ) ) {
    11.     $abreisetag = mktime( 0 , 0 , 0 , $_POST['abm'] , $_POST['abd'] , $_POST['aby'] );
    12. }
    13.  
    14. /* Nun Vergleichen ob Anreise früher ist als Abreise und nicht umgekehrt */
    15.  
    16. if( $abreisetag < $anreisetag ) {
    17.     echo 'Geht nicht, Anreise ist nach der Abreise';
    18. }
    19. else {
    20.     /* hier die E-Mail dann versenden */
    21.     /* Wenn du nun das Anreise und Abreisedatum wieder verwenden möchtest, */
    22.     /* kann du folgendes angeben: */
    23.     echo 'Anreisedatum: '. date( 'd.m.Y' , $anreisetag );
    24.     echo 'Abreisedatum: '. date( 'd.m.Y' , $abreisetag );
    25.  
    26. }
    27. ?>
    28.  
    Der Vorteil durch den Timestam liegt zum einen in der besseren Speicherung bzgl. Datenbank (performant) und in der Flexibilität zur Datumsberechnung oder für Vergleiche.
     
    #4      
  5. streichelweich

    streichelweich Noch nicht viel geschrieben

    Dabei seit:
    13.04.2008
    Beiträge:
    28
    Geschlecht:
    weiblich
    Software:
    Adobe Creative Cloud CC 2014
    Kameratyp:
    Canon EOS60D
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    Hallo Ihr :)

    leider bin ich immer noch nicht weiter .... hab das von Saila (DANKE übrigens) versucht - aber ich bekomm die Formulardaten leider nicht übernommen :'(

    und es soll schon so sein, dass die erste Abfrage eben ist, dass das ANreisedatum größer sein muss als das aktuelle Tagesdatum und dann erst die ANreise- ABreisedatums-Abfrage.

    Eigentlich stell ich mich normal net so an... aber dermal hab ich echt das Gefühl neben mir zu stehen.

    lg
    Tina
     
    #5      
  6. sokie

    sokie Mod | Web

    Dabei seit:
    23.03.2008
    Beiträge:
    5.338
    Geschlecht:
    männlich
    Ort:
    Bünde NRW
    Software:
    <br>COREL <br> Texteditor
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    für Deine Formulardaten hiesse das zB:
    Code (Text):
    1.  
    2. <?php
    3. //zeitpunkt beim Aufrufen des Scripts: JETZT
    4. $jetzt = time();
    5.  
    6. if( isset($_POST['tag']) && isset($_POST['monat']) && isset($_POST['jahr']) ) {
    7.     $anreisetag = mktime(0 , 0 , 0 , $_POST['monat'] , $_POST['tag'] , $_POST['jahr']);
    8. }
    9.  
    10. //abfragen, ob anreisetag grösser als jetzt ist:
    11. if ( $anreisetag < $jetzt ){
    12.   echo "das Anreisedatum liegt in der Vergangenheit!";
    13. }
    14.  
     
    #6      
  7. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    ergänze obige if/else mit folgendem:

    PHP:
    1.  
    2. elseif( $anreisetag <= time() ) {
    3.     echo ' Anreisetag liegt bereits in der Vergangenheit oder ist heute - was nicht möglich ist.';
    4. }
    5.  
    Hiermit wird der Anreisetag mit dem aktuellen Tag verglichen.
     
    #7      
  8. streichelweich

    streichelweich Noch nicht viel geschrieben

    Dabei seit:
    13.04.2008
    Beiträge:
    28
    Geschlecht:
    weiblich
    Software:
    Adobe Creative Cloud CC 2014
    Kameratyp:
    Canon EOS60D
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    Ganz lieben DANK ;)

    es funktioniert !! Was noch nicht funktioniert - aber das ist ein schönheitsfehler - ist die Tatsache, dass die Fehlermeldungen im IE in einem kleinen MSG-Fenster gezeigt werden (bis jetzt auf diese beiden Meldungen) und die sollten auch noch ins MSG-Fenster :rolleyes:

    sprich $anreisetag und $abreisetag sollten jetzt in die "Felder" ant und abt :rolleyes:

    DANKE nochmal :)
     
    #8      
  9. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    Ähm - wenn ich dich jetzt richtig verstehe kommst du mit den Angaben ant und abt nicht klar?
    ant = Tag (Anreise)
    abt = Tag2 (Abreise)

    bezogen auf dein Formular (select-tag)
     
    #9      
  10. streichelweich

    streichelweich Noch nicht viel geschrieben

    Dabei seit:
    13.04.2008
    Beiträge:
    28
    Geschlecht:
    weiblich
    Software:
    Adobe Creative Cloud CC 2014
    Kameratyp:
    Canon EOS60D
    Bitte dringende Hilfe
    AW: Bitte dringende Hilfe

    Hallo Ihr Lieben.....

    GANZ LIEBEN DANK für eure Hilfe .... das Formular hab ich geschafft und funzt prima ;)
     
    #10      
x
×
×
teststefan