ilch Forum » Ilch Clan 1.1 » Allgemein » Fehlermeldung bei Kontakt eMail

Geschlossen
  1. #1
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hallo,

    hab wieder mal ne dumme Frage.
    Ist es möglich, beim versenden der Kontakt eMails auch eine Fehlermeldung auszugeben, wenn keine eMail-Adresse bzw. der Antispam nicht eingetragen wurde?
    Im Moment ist es doch so, wenn ein User diese Felder frei lässt und auf Absenden klickt kommt keine Fehlermeldung und es sieht so aus als ob die Mail versendet wurde. Ich habe zwar schon in der lang.de bei info, Information durch Bitte alle Felder ausfüllen, da die Mail sonst nicht versendet wird! ersetzt, dennoch gibt es User die das mit dem Antispam nicht schnallen.


    verwendete ilchClan Version: 1.1

    betroffene Homepage: externer Link


    Zuletzt modifiziert von Uncle-Jo am 23.04.2008 - 09:51:43
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hallo,

    ich bin’s noch mal, hab nun in vielen Stunden versucht selbst eine Lösung zu finden, doch leider sind meine PHP Kenntnisse so gering das mir das nicht gelingt. Da das Ganze ja auch noch Dateiübergreifen (incl. der Dateien im Admin Verzeichnis) funktioniert bin ich schlicht und einfach überfordert.
    Ich hatte indem ich
    if (!empty($_POST['wer']) AND !empty($_POST['mail']) AND …

    usw. durch
    if(trim($from_mail)=="")
      $err_text.="Bitte gib Deine E-Mail-Adresse an.<br>";
    else
      if(!ereg("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,6})$",$from_mail))
        $err_text.="Bitte gib eine gültige E-Mail-Adresse an.<br>"; ....

    usw. ersetzt und noch einige Änderungen hinzugefügt hatte, erreicht, dass die Fehlermeldung auch entsprechend ausgegeben wurde, doch leider wurde in diesem Fall auch die Mail versendet und wenn alles korrekt ausgefüllt war, dann wurde
       echo $lang['emailcouldnotsend'];

    ausgegeben und die Mail wurde nicht versendet.
    Es wäre schön wenn mir jemand helfen könnte, es so hinzubekommen, das bei fehlenden oder fehlerhaften Einträgen eine entsprechende Fehlermeldung ausgegeben wird und die bisherigen Einträge aber nicht gelöscht werden. Bisher wird leider nur bei fehlendem @ in der Spalte Mail
        echo $lang['emailcouldnotsend'];

    ausgegeben.

    PS: Sollte ich das Ganze in der falschen Kategorie geschrieben habe, dann bitte verschieben!


    Zuletzt modifiziert von Uncle-Jo am 23.04.2008 - 09:59:36
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Hey, Uncle-Jo!

    Ich hab das gestern auch mal gemacht, aber ich geh mehr ins Detail. Leider ist der Code bei mir zu Hause und ich könnte dir das heute Nachmittag oder morgen früh erst posten.
    Aber zur Erklärung:
    1. Wird jedes Feld geprüft, ob was drinne steht, also Name, Betreff, EMail und Text.
    2. Wird Ausgegeben was fehlt.
    3. Wird die E-Mail Adresse auf Richtigkeit überprüft, also ob sie den Normen entspricht, UND ob es zu der URL einen Mailserver gibt.

    D.h.
    >ich_bin_eine_mailaddi@asdfghjiu.de<
    Ist konform, aber der Mailserver von >asdfghjiu.de< fehlt, also keine Mail versenden.

    Wäre das so in deinem Sinne?

    Testen kannst du das auf meiner Page externer Link

    Mit böhsen Grüßen
    BöhserDavid
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    1 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hallo BöhserDavid,

    erst mal vielen Dank für Deine schnelle Antwort. Ich habs gerade mal auf Deiner Seite getestet und es ist auch so ähnlich wie ich mir das vorstelle. Es wäre natürlich nicht schlecht wenn im Falle der Fehlermeldung, die Eingaben die schon gemacht wurden, nicht gelöscht werden. Ist so etwas noch ohne großen Aufwand möglich?
    Ansonsten würde ich den Code aber auch gerne so nehmen wenn ich ihn bekommen kann.

    Gruß
    Uncle-Jo
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Klar, kann man die Eingaben behalten, dazu brauch ich nur kurz was ändern.

    Und wenn ich dir den Code nicht geben würde, hätte ich dir wohl kaum geschrieben, dass ich dir den heute oder morgen poste?!^^
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    @ boehserdavid

    Es wäre schön, wenn Du mich bei der Weitergabe auch bedenken würdest! ;-)
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Dankeschön, ich freu mich immer wieder über die netten Leute hier im Forum!!!!

    PS: Eigentlich müsste bei meinem Avatar noch ein Fettnapf hin, in dem er mit beiden Füssen steht, da ich die Angewohnheit habe mit beiden Füssen da reinzuhopsen ohne das ich das möchte.
    Siehe:
    ZitatZitat geschrieben von boehserdavid

    Und wenn ich dir den Code nicht geben würde, hätte ich dir wohl kaum geschrieben, dass ich dir den heute oder morgen poste?!^^
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Jetzt ist bloß die Frage, wie sicher wollt ihr das haben?

    1. Überprüfung der E-Mail (xxx@xx.xx)
    2. 1. + Host überprüfen (ist der Mailserver vorhanden)
    3. 1. + 2. + User überprüfen (gibt es den User auf diesem Mailserver)

    Na, was darfst sein? Tor1 ? Tor2 ? oder Tor3 ?
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Also, mir würde Tor1 vollkommen reichen.
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Aber ich kann das ja auch optional machen, dass man die einzelnen Funktionen aktivieren kann.

    Dann ist wenigstens jeder zu frieden...
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja und du hast ja sicher auch nichts dagegen wenn ich den direkt so übernehmen würde, falls noch ein Update kommt zwinker
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    @Mairu: Klar kannst du den dann einbauen.

    Es gibt noch ein Problem. Die Überprüfung des Account bei enem Mailserver bugs noch etwas rum.
    Sachstand:
    Gibt man eine E-Mail auf dem eigenen Mailserver an wird der immer als vorhanden zurückgegeben und bei einem eigentlich vorhanden E-Mail Account dauert es ewig und die Seite wird nicht richtig geladen.

    Aber ich denke mal heute Nachmittag werd ich das vorläufig posten.
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    So, jetzt erstmal die Überprüfung der E-Mail Adresse mit Check ob ein Mailserver vorhanden ist.

    include/includes/func/allg.php // damit, man die auch woanders verwenden kann
    ....
    ## E-Mail check, valide
    function check_valide_mail($email){
     $regex = '/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+'.
              '(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|'.
              '(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|'.
              '([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))'.
              '\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|'.
              '(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|'.
              '([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))'.
              '\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|'.
              '((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/';
     if(preg_match($regex, $email)){
      if(function_exists('checkdnsrr')){
       list (, $domain)  = explode('@', $email);
       if(checkdnsrr($domain, 'MX') || checkdnsrr($domain, 'A')){
        return true;
       }
      }
     }
     return false;
    }
    
    ?>


    include/contents/contact.php
    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Kontakt';
    $hmenu = 'Kontakt';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    
    $erg = db_query("SELECT v2,t1,v1 FROM prefix_allg WHERE k = 'kontakt'");
    $row = db_fetch_assoc($erg);
    $k = explode('#',$row['t1']);
    
    $name = '';
    $mail = '';
    $subject = '';
    $wer  = '';
    $text = '';
    $fehler = '';
    
    ### CONFIG
    $mailadr = true; // Check Mailaddress //> true = Yes, false = No
    
    if(isset($_POST['submit'])){
    
     if($_POST['mail'] != ''){
      if($mailadr){
       $fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : 'Bitte eine gültige E-Mail Adresse angeben<br>');
       }
      }else{
       $fehler .= 'Bitte eine E-Mail Adresse angeben<br>';
     }
     if(empty($_POST['name'])){
      $fehler .= 'Bitte einen Namen eintragen<br>';
     }
     if(empty($_POST['subject'])){
      $fehler .= 'Bitte einen Betreff eintragen<br>';
     }
     if(empty($_POST['txt'])){
      $fehler .= 'Bitte eine Nachricht eintragen<br>';
     }
     
     if ($fehler == '' AND !empty($_POST['wer']) AND chk_antispam('contact')) {
      $name = escape_for_email($_POST['name']);
      $mail = escape_for_email($_POST['mail']);
      $subject = escape_for_email($_POST['subject'], true);
      $wer  = escape_for_email($_POST['wer']);
      $text = $_POST['txt'];
      $wero = FALSE;
      foreach($k as $a) {
        $e = explode('|',$a);
        if (md5($e[0]) == $wer) {
          $wero = TRUE;
          $wer  = $e[0];
          break;
        }
      }
    
      if (strpos ($text, 'Content-Type:') === FALSE
      AND strpos($text, 'MIME-Version:') === FALSE
      AND $wero === TRUE
      AND strlen($name) <= 30
      AND strlen($text) <= 5000
      AND $mail != $name AND $name != $text AND $text != $mail) {
        
       $subject = "Kontakt: " . $subject;
       icmail ($wer,$subject,$text, $name." <".$mail.">");
       echo $lang['emailsuccessfullsend'];
       $name = '';
       $mail = '';
       $subject = '';
       $wer  = '';
       $text = '';
      } else {
       $name = $_POST['name'];
       $mail = $_POST['mail'];
       $subject = $_POST['subject'];
       $wer  = $_POST['wer'];
       $text = $_POST['txt'];
       echo $lang['emailcouldnotsend'].'<br><br>';
      }
     } else {
      $name = $_POST['name'];
      $mail = $_POST['mail'];
      $subject = $_POST['subject'];
      $wer  = $_POST['wer'];
      $text = $_POST['txt'];
      echo $fehler.'<br>';
      echo $lang['emailcouldnotsend'].'<br><br>';
     }
    }
    
    
    
    $tpl = new tpl ( 'contact.htm' );
    $tpl->out(0);
    
    $i = 1;
    foreach($k as $a) {
      $e = explode('|',$a);
      if ($e[0] == '' OR $e[1] == '' ) { continue; }
      if ($i == 1) { $c = 'checked'; } else { $c = ''; }
      $tpl->set_ar_out( array ('KEY' => md5($e[0]), 'VAL' => $e[1], 'c' => $c) , 1 );
      $i++;
    }
    
    $tpl->set('name', $name);
    $tpl->set('mail', $mail);
    $tpl->set('subject', $subject);
    $tpl->set('text', $text);
    $tpl->set('ANTISPAM', get_antispam('contact',100));
    $tpl->out(2);
    
    $design->footer();
    ?>



    Zuletzt modifiziert von boehserdavid am 25.04.2008 - 10:00:17
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    1 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hi boehserdavid,

    hab gerade mal Deinen Code übernommen, doch bei mir funktioniert das irgendwie nicht :'( . Es kommt weder eine Fehlermeldung noch wird die Mail versendet wenn alles stimmt.
    Hast Du vielleicht noch in einer anderen Datei etwas geändert, denn auf Deiner Seite funktioniert es ja.

    Gruß
    Uncle-Jo
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Hey,

    ja stimmt. Sorry, hatte ich glatt vergessen^^

    in include/templates/contact.htm
    {ANTISPAM}
        <label style="float:left; width:100px; ">&nbsp;</label><button name="submit" type="submit" value=" Absenden "> Absenden </button><br> /* name="submit" hinzugefügt */
      </fieldset>
    </form>
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hallo boehserdavid,

    war doch kein Problem, denn das mit der "contact.htm" dachte ich mir schon, da ich sie bei meinen Versuchen auch mit einbezogen hatte, ich wusste bloß nicht was Du eingefügt hattest.
    Also nochmals vielen Dank für Deine Hilfe, bin Happy lächeln lächeln !!!!

    Ich habe für mich noch einige kleine Änderungen eingefügt, wenn es jemand interessieren sollte, hier mal die Codes.

    In der style.css meines Designs habe ich zwei neue Klassen eingefügt.

    .Fehler_text
    {
      color: #FF3333;
      font-family: Tahoma; 
      font-size: 11px;
      font-weight: bold;
    }
    
    .Fehler
    {
      color: #FF3333;
      font-family: Tahoma; 
      font-size: 14px;
      font-weight: bold;
    }

    Damit können die Fehlermeldungen farblich hervorgehoben werden und fallen besser ins Auge.

    In der include/includes/lang/de.php habe ich folgendes geändert.
    'emailcouldnotsend' => '<span class="Fehler_text">Die eMail konnte nicht verschickt werden. Bitte &uuml;berpr&uuml;fe ob Du alle Felder ausgefüllt hast und auch die Antispamzahlen in das danebenliegende Feld übertragen hast.</span>',

    Durch diese Änderungen wird der Text jetzt farblich hervorgehoben und der Hinweis wurde auf die Änderung hin angepasst.

    In der include/contents/contact.php habe ich dann noch folgende Einträge geändert.
    if(isset($_POST['submit'])){
    
     if($_POST['mail'] != ''){
      if($mailadr){
       $fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : '<span class="Fehler_text">Bitte eine gültige E-Mail Adresse angeben.</span><br>');
       }
      }else{
       $fehler .= '<span class="Fehler_text">Bitte gib Deine E-Mail-Adresse an.</span><br>';
     }
     if(empty($_POST['name'])){
      $fehler .= '<span class="Fehler_text">Bitte gib Deinen Namen an.</span><br>';
     }
     if(empty($_POST['subject'])){
      $fehler .= '<span class="Fehler_text">Bitte gib einen Betreff ein.</span><br>';
     }
     if(empty($_POST['txt'])){
      $fehler .= '<span class="Fehler_text">Bitte gib einen Nachrichtentext ein.</span><br>';
     }

    Hier den Fehlermeldungen die neuen Klassen aus der style.css zugewiesen

    und hier noch die Überschrift "Fehler:" hinzugefügt.
      $text = $_POST['txt'];
      echo '<span class="Fehler">Fehler:</span><br>';
      echo $fehler.'<br>';
      echo $lang['emailcouldnotsend'].'<br><br>';


    @boehserdavid: Wie ist das eigentlich, einige Dinge werden ja jetzt doppelt geprüft, z.B. Dein Eintrag in der allg.php prüft ja die EMail Adresse incl. @ Zeichen und in der contact.php steht immer noch
      AND strpos($mail, '@') !== FALSE AND $wero === TRUE

    kann so etwas noch ohne Fehler zu verursachen entfernt werden?

    Gruß
    Uncle-Jo
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    rein theoretisch kann man noch mehr entfernen

    if (strpos ($text, 'Content-Type:') === FALSE 
      AND strpos($text, 'MIME-Version:') === FALSE 
      AND $wero === TRUE 
      AND strlen($name) <= 30
      AND strlen($text) <= 5000 
      AND $mail != $name AND $name != $text AND $text != $mail) {
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Uuuups, hab gerade gemerkt das der Firefox die farblichen Änderungen wieder mal nicht ausgibt. Muss mich also noch mal ransetzen. Wird aber erst heute Nachmittag, denn ich muss erst mal mit der Rep. eines Kunden-PC weitermachen.

    Gruß
    Uncle-Jo
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    boehserdavid Mitglied
    Registriert seit
    26.08.2006
    Beiträge
    2.122
    Beitragswertungen
    2 Beitragspunkte
    Nimm doch anstatt <span>

    <font color="#FF3333" size="11px">blubb</font>

    ....
    -Heute schon böhse gewesen?- Ab zur Community
    -No Support via Contact-
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    @boehserdavid: Nee, das funktioniert wieder im IE 6 nicht richtig, da setzt er die Größe des Textes nicht richtig um.

    Hab es jetzt folgendermaßen gelöst und die Einträge in der style.css sind damit hinfällig.

    In der include/includes/lang/de.php habe ich folgendes geändert.
    'emailcouldnotsend' => '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Die eMail konnte nicht verschickt werden. Bitte &uuml;berpr&uuml;fe ob Du alle Felder ausgefüllt hast und auch die Antispamzahlen in das danebenliegende Feld übertragen hast.</span>',


    und in der include/contents/contact.php habe ich dann noch folgende Einträge geändert.
    if(isset($_POST['submit'])){
    
     if($_POST['mail'] != ''){
      if($mailadr){
       $fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Bitte eine gültige E-Mail Adresse angeben.</span><br>');
       }
      }else{
       $fehler .= '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Bitte gib Deine E-Mail-Adresse an.</span><br>';
     }
     if(empty($_POST['name'])){
      $fehler .= '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Bitte gib Deinen Namen an.</span><br>';
     }
     if(empty($_POST['subject'])){
      $fehler .= '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Bitte gib einen Betreff ein.</span><br>';
     }
     if(empty($_POST['txt'])){
      $fehler .= '<span style="font-weight:bold; color:#FF3333; font-size: 11px; font-family: Tahoma">Bitte gib einen Nachrichtentext ein.</span><br>';
     }


    und weiter unten
      $text = $_POST['txt'];
      echo '<span style="font-weight:bold; color:#FF3333; font-size: 14px; font-family: Tahoma">Fehler:</span><br>';
      echo $fehler.'<br>';


    Das wird jetzt vom IE6, IE7 und dem Firefox korrekt ausgegeben.
    Mir wäre es zwar lieber gewesen wenn ich es über die style.css hätte lösen können, da es dann für Andere leichter ist die Werte zu ändern, aber so geben es wenigstens die meistgenutzten Browser korrekt wieder.

    Nachtrag:
    Hab gerade noch gemerkt, dass ich beim Text in der de.php, bei den Wörtern "ausgefüllt" und "übertragen" die Umlaute geschrieben habe und nicht wie es sein sollte "ausgef&uuml;llt" und "&uuml;bertragen".
    Also gegebenenfalls bitte noch ändern.


    Zuletzt modifiziert von Uncle-Jo am 25.04.2008 - 11:37:02
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Lord|Schirmer Administrator
    Registriert seit
    21.03.2007
    Beiträge
    7.622
    Beitragswertungen
    1192 Beitragspunkte
    @ boehserdavid

    Klappt Super! Hut ab!
    rules :: doku :: faq :: linkus
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Uncle-Jo Mitglied
    Registriert seit
    26.12.2006
    Beiträge
    108
    Beitragswertungen
    1 Beitragspunkte
    Hallo Leute,

    es hat mir keine Ruhe gelassen, das die farbliche Hinterlegung über die style.css nicht ging und so habe ich noch etwas experimentiert und nun auch den Grund gefunden.
    Der Fehler wurde durch diesen Abschnitt Verursacht in dem einige Parameter doppelt überprüft wurden.

      if (strpos ($text, 'Content-Type:') === FALSE
      AND strpos($text, 'MIME-Version:') === FALSE
      AND strpos($mail, '@') !== FALSE AND $wero === TRUE
      AND strlen($name) <= 30 AND strlen($mail) <= 30
      AND strlen($text) <= 5000
      AND $mail != $name AND $name != $text AND $text != $mail) {


    Ich habe die doppelten Abfragen entfernt und nun geht es auch über die style.css .

    Ich poste jetzt zur besseren Übersicht hier noch mal alle Änderungen von mir und die komplette contact.php .

    Eintrag in der style.css des Designs.

    .Fehler_text
    {
      color: #FF3333;
      font-family: Tahoma; 
      font-size: 11px;
      font-weight: bold;
    }
    
    .Fehler
    {
      color: #FF3333;
      font-family: Tahoma; 
      font-size: 14px;
      font-weight: bold;
    }


    Geänderter Eintrag in der include/includes/lang/de.php

    'emailcouldnotsend' => '<span class="Fehler_text">Die eMail konnte nicht verschickt werden. Bitte &uuml;berpr&uuml;fe ob Du alle Felder ausgef&uuml;llt und auch die Antispamzahlen in das danebenliegende Feld &uuml;bertragen hast.</span>',
    'fightusrequest' => "\n\ndie Anfrage kannst du im Adminbereich, als Nextwar übernehmen... Vergiss aber nicht, Kontakt mit dem Clan aufzunehmen ;)",

    PS: Hab gemerkt das im IE dieser Code nicht richtig zu sehen war und deshalb noch die nächste Zeile mit reinkopiert.

    und die komplette include/contents/contact.php mit allen Einträgen von boehserdavid, den Klassenzuweisungen von mir und ohne die doppelten Abfragen.

    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Kontakt';
    $hmenu = 'Kontakt';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    
    $erg = db_query("SELECT v2,t1,v1 FROM prefix_allg WHERE k = 'kontakt'");
    $row = db_fetch_assoc($erg);
    $k = explode('#',$row['t1']);
    
    $name = '';
    $mail = '';
    $subject = '';
    $wer  = '';
    $text = '';
    $fehler = '';
    
    ### CONFIG
    $mailadr = true; // Check Mailaddress //> true = Yes, false = No
    
    if(isset($_POST['submit'])){
    
     if($_POST['mail'] != ''){
      if($mailadr){
       $fehler .= ( check_valide_mail($_POST['mail']) == true ? '' : '<span class="Fehler_text">Bitte eine gültige E-Mail Adresse angeben.</span><br>');
       }
      }else{
       $fehler .= '<span class="Fehler_text">Bitte gib Deine E-Mail-Adresse an.</span><br>';
     }
     if(empty($_POST['name'])){
      $fehler .= '<span class="Fehler_text">Bitte gib Deinen Namen an.</span><br>';
     }
     if(empty($_POST['subject'])){
      $fehler .= '<span class="Fehler_text">Bitte gib einen Betreff ein.</span><br>';
     }
     if(empty($_POST['txt'])){
      $fehler .= '<span class="Fehler_text">Bitte gib einen Nachrichtentext ein.</span><br>';
     }
     
     if ($fehler == '' AND !empty($_POST['wer']) AND chk_antispam('contact')) {
      $name = escape_for_email($_POST['name']);
      $mail = escape_for_email($_POST['mail']);
      $subject = escape_for_email($_POST['subject'], true);
      $wer  = escape_for_email($_POST['wer']);
      $text = $_POST['txt'];
      $wero = FALSE;
      foreach($k as $a) {
        $e = explode('|',$a);
        if (md5($e[0]) == $wer) {
          $wero = TRUE;
          $wer  = $e[0];
          break;
        }
      }
    
      if (strlen($name) <= 30 AND strlen($mail) <= 30
      AND strlen($text) <= 5000
      AND $mail != $name AND $name != $text AND $text != $mail) {
        
       $subject = "Kontakt: " . $subject;
       icmail ($wer,$subject,$text, $name." <".$mail.">");
       echo $lang['emailsuccessfullsend'];
       $name = '';
       $mail = '';
       $subject = '';
       $wer  = '';
       $text = '';
      } else {
       $name = $_POST['name'];
       $mail = $_POST['mail'];
       $subject = $_POST['subject'];
       $wer  = $_POST['wer'];
       $text = $_POST['txt'];
       echo $lang['emailcouldnotsend'].'<br><br>';
      }
     } else {
      $name = $_POST['name'];
      $mail = $_POST['mail'];
      $subject = $_POST['subject'];
      $wer  = $_POST['wer'];
    $text = $_POST['txt'];
      echo '<span class="Fehler">Fehler:</span><br>';
      echo $fehler.'<br>';
      echo $lang['emailcouldnotsend'].'<br><br>';
     }
    }
    
    
    
    $tpl = new tpl ( 'contact.htm' );
    $tpl->out(0);
    
    $i = 1;
    foreach($k as $a) {
      $e = explode('|',$a);
      if ($e[0] == '' OR $e[1] == '' ) { continue; }
      if ($i == 1) { $c = 'checked'; } else { $c = ''; }
      $tpl->set_ar_out( array ('KEY' => md5($e[0]), 'VAL' => $e[1], 'c' => $c) , 1 );
      $i++;
    }
    
    $tpl->set('name', $name);
    $tpl->set('mail', $mail);
    $tpl->set('subject', $subject);
    $tpl->set('text', $text);
    $tpl->set('ANTISPAM', get_antispam('contact',100));
    $tpl->out(2);
    
    $design->footer();
    ?>


    Nochmals vielen Dank an den boehserdavid, es funktioniert SUPER(Y) .

    Gruß
    Uncle-Jo


    Zuletzt modifiziert von Uncle-Jo am 27.04.2008 - 22:08:48
    Entschuldigung!!!!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten