ilch Forum » Ilch Clan 1.1 » Fehlersuche und Probleme » Kontaktformular

Geschlossen
  1. #1
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Hey Ihr....ich probier gerade was aus...
    ich möchte ein Kontaktformular bei dem ich oben kein Empfänger auswählen kann...
    ich möchte das direkt im script haben...

    dafür gibt's ja die Funktion icmail....

    Wenn ich das richtig verstanden habe dann muss ich doch nur in contact.php

    das icmail umschreiben und statt $wer einfach 'Test.test@test.de' oder???

    Aber das geht nicht....:/
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Wenn du der einzinste bist der als Kontakt angegeben ist, kannst du auch ganz einfach hin gehen mit "style="display: none;" im tempalte das Auswahlfeld verstecken. Würde ich machen, kann man dann auch schnell wieder zurücksetzen wenn man es doch auch gerne wieder anders hätte.

    So zum beispiel...
    <form action="?contact" method="POST">
      <fieldset>
        <legend>{_lang_whereyouwrite}</legend>
    	<div  style="display: none;">
        {EXPLODE}
          <input id="w{KEY}" {c} type="radio" name="wer" value="{KEY}" style="float:left; " /><label for="w{KEY}"> &nbsp; {VAL}</label><br style="clear:both; " />
        {EXPLODE}
    	</div>
    	  <br />
    	  <label style="float:left; width:100px; ">{_lang_name}</label><input type="text" name="name" value="{name}" maxlength="30"><br />
    	  <label style="float:left; width:100px; ">{_lang_mail}</label><input type="text" name="mail" value="{mail}" maxlength="50"><br />
        <label style="float:left; width:100px; ">{_lang_subject}</label><input type="text" name="subject" value="{subject}" maxlength="50"><br />
    	  <label style="float:left; width:100px; ">{_lang_message}</label><textarea cols="40" rows="10" name="txt">{text}</textarea><br />
    	  {ANTISPAM}
        <label style="float:left; width:100px; ">&nbsp;</label><input type="submit" value=" Absenden "><br />
      </fieldset>
    </form>



    Zuletzt modifiziert von Balthazar3k am 30.10.2011 - 02:29:12
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    Dies ist jedoch nicht der fall...ich möchte die mailadresse direkt im Kontakt.php stehen haben...
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Balthazar3k Mitglied
    Registriert seit
    23.04.2006
    Beiträge
    422
    Beitragswertungen
    7 Beitragspunkte
    Tja... was würde das ändern, kommt das gleiche raus.

    Poste mal dein Beispiel an dem du rum machst.
    Kein Support für den Raidplaner über PM.
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    $title = $allgAr['title'].' :: Gastspieler werden';
    $hmenu = 'Gastspieler werden';
    $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 = '';
    if (!empty($_POST['wer']) AND !empty($_POST['mail']) AND !empty($_POST['txt']) AND !empty($_POST['name']) AND !empty($_POST['subject']) 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 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) {
    
        $subject = "Kontakt: " . $subject;
    	
       if (icmail ($wer,$subject,$text, $name." <".$mail.">")) {
        	echo $lang['emailsuccessfullsend'];
        } else {
        	echo 'Der Server konnte die Mail nicht versenden, teilen sie dies ggf. einem Administrator mit.';
        }
        $name = '';
        $mail = '';
        $subject = '';
        $wer  = '';
        $text = '';
      } else {
        echo $lang['emailcouldnotsend'];
      }
    }
    
    
    
    $tpl = new tpl ( 'gastspielermail.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 chiefhood am 30.10.2011 - 13:49:36
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    So und jetzt will ich in Zeile 49 die funktion icmail so ändern,
    dass da zB. eine mailadresse drinsteht...

    also:
    icmail ('test.test@lol.de',$subject,$text, $name." <".$mail.">"))


    aber das funktioniert iwie nicht....
    wenn ich auf senden klicke, kommt keine Meldung dass dies versendet wurde..
    und die Mail kommt auch nicht an...
    was mach ich falsch?
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Eine chinesische Möglichkeit:

    Zeile 8 reinschreiben:

    $_POST['wer'] = 'deine_mail@domain.de' ;


    alles andere kannst du dann so lassen wie im Original.
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    hey,
    danke euch!
    So jetzt kommt wenigstens schon mal, dass die Mail nicht verschickt werden konnte....
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Tu mal noch die Zeile 28 von :

    $wer  = escape_for_email($_POST['wer']);

    nach
    $wer  = $_POST['wer'];

    ändern.
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    hat nichts bewirkt....noch immer kann die Mail nicht verschickt werden...
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Poste mal bitte die zwei Dateien wie sie jetzt aussehen.
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    das ist die php:

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    $_POST['wer'] = 'domain@domain.de' ;
    
    $title = $allgAr['title'].' :: Gastspieler werden';
    $hmenu = 'Gastspieler werden';
    $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 = '';
    if (!empty($_POST['wer']) AND !empty($_POST['mail']) AND !empty($_POST['txt']) AND !empty($_POST['name']) AND !empty($_POST['subject']) AND chk_antispam('contact')) {
      $name = escape_for_email($_POST['name']);
      $mail = escape_for_email($_POST['mail']);
      $subject = escape_for_email($_POST['subject'], true);
      $wer  = $_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 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) {
    
        $subject = "Kontakt: " . $subject;
        if (icmail ($wer,$subject,$text, $name." <".$mail.">")) {
        	echo $lang['emailsuccessfullsend'];
        } else {
        	echo 'Der Server konnte die Mail nicht versenden, teilen sie dies ggf. einem Administrator mit.';
        }
        $name = '';
        $mail = '';
        $subject = '';
        $wer  = '';
        $text = '';
      } else {
        echo $lang['emailcouldnotsend'];
      }
    }
    
    
    
    $tpl = new tpl ( 'gastspielermail.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();
    ?>
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    und hier die htm:

    <form action="?gastspielermail" method="POST">
      <fieldset>
        <legend>Gastspieler Anmeldung</legend>
        <p>{EXPLODE}
          
          {EXPLODE} </p>
        <p><br />
          <label style="float:left; width:100px; ">{_lang_name}</label>
          <input type="text" name="name" value="{name}" maxlength="30"><br />
          <label style="float:left; width:100px; ">{_lang_mail}</label>
          <input type="text" name="mail" value="{mail}" maxlength="50"><br />
          <label style="float:left; width:100px; ">{_lang_subject}</label>
          <input type="text" name="subject" value="{subject}" maxlength="50"><br />
          <label style="float:left; width:100px; ">{_lang_message}</label>
          <textarea cols="40" rows="10" name="txt">{text}</textarea>
          <br />
          {ANTISPAM}
          <label style="float:left; width:100px; ">&nbsp;</label>
          <input type="submit" value=" Absenden "><br />
        </p>
      </fieldset>
    </form>
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Schreibst du auch beim testen überall was rein in die formularfelder ?
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Wieso:
    <form action="?gastspielermail" method="POST">


    heist den deine php Datei auch gastspielermail.php
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Habe gerade noch was gesehen:

    Zeile 31 - 39:

    $wero = FALSE;
      foreach($k as $a) {
        $e = explode('|',$a);
        if (md5($e[0]) == $wer) {
          $wero = TRUE;
          $wer  = $e[0];
          break;
        }
      }

    löschen und ändern in:

    $wero = TRUE ;



    Edit:
    Ich schreib dir die PHP das dann mal sauber um das es geht, trinke erstmal Kaffe. zwinker


    Zuletzt modifiziert von Mikro am 30.10.2011 - 15:30:57
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    jop die dateien heißen gastspiermail.php und gastspielermail.htm

    okay vielen dank! ich probiers gerade mal!!;)
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    chiefhood Mitglied
    Registriert seit
    22.08.2011
    Beiträge
    14
    Beitragswertungen
    0 Beitragspunkte
    FUNKTIONIERT!!! SUPER!!! DANKE!!!!
    wenn ich jetzt mehrere mailadresse angeben will an die das forumlar geschickt wird, muss ich dann einfach:
    $_POST['wer']='domain@domain.de; domain2@domain.de';
    coden?

    VIELEN DANK!!!!!


    Zuletzt modifiziert von chiefhood am 30.10.2011 - 16:19:12
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Mikro Mitglied
    Registriert seit
    05.10.2011
    Beiträge
    237
    Beitragswertungen
    21 Beitragspunkte
    Edit:
    So,ist getestet und funktioniert und der Code ist auch wieder sauber.

    <?php
    #   Copyright by: Manuel
    #   Support: www.ilch.de
     
    defined ('main') or die ( 'no direct access' );
     
    // Hier deine Mail rein
    $wer = 'deine_mail@domain.de' ;
    
    $title = $allgAr['title'].' :: Gastspieler werden';
    $hmenu = 'Gastspieler werden';
    $design = new design ( $title , $hmenu );
    $design->header();
    
    $name = '';
    $mail = '';
    $subject = '';
    $text = '';
    
    if (!empty($_POST['mail']) AND !empty($_POST['txt']) AND !empty($_POST['name']) AND !empty($_POST['subject']) AND chk_antispam('contact')) {
    	
      $name = escape_for_email($_POST['name']);
      $mail = escape_for_email($_POST['mail']);
      $subject = escape_for_email($_POST['subject'], true);
      $text = $_POST['txt'];
     
     
      if (strpos ($text, 'Content-Type:') === FALSE
      AND strpos($text, 'MIME-Version:') === FALSE
      AND strpos($mail, '@') !== FALSE
      AND strlen($name) <= 30 AND strlen($mail) <= 30
      AND strlen($text) <= 5000
      AND $mail != $name AND $name != $text AND $text != $mail) {
     
        $subject = "Kontakt: " . $subject ;
       
       if (icmail ($wer,$subject,$text, $name." <".$mail.">")) {
            echo $lang['emailsuccessfullsend'];
        } else {
            echo 'Der Server konnte die Mail nicht versenden, teilen sie dies ggf. einem Administrator mit.';
        }
    	
        $name = '';
        $mail = '';
        $subject = '';
        $text = '';
    	
      } else {
        echo $lang['emailcouldnotsend'];
      }
    }
     
     
    $tpl = new tpl ( 'gastspielermail.htm' );
    $tpl->out(0);
     
    $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 Mikro am 30.10.2011 - 16:32:10
    Wer Rechtschreibfehler findet darf sie behalten!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Fehlersuche und Probleme

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten