Mailkontakt

Gesperrt
Alex
Beiträge: 174
Registriert: So 20. Jul 2003, 11:31
Kontaktdaten:

Mehrsprachenbetrieb Frontend

Beitrag von Alex » Do 4. Mär 2004, 17:25

Hallo!

Vielleicht kann das einer von Euch gebrauchen: Ich habe gestern mal auf die Schnelle das Modul mehrsprachenfähig gemacht und zwar für das Frontend (also für die Besucher).

Zurzeit ist alles für Deutsch (lang = 1) und Englisch (lang = 3) angelegt, kann aber leicht geändert werden...

Ist nur das Output, Input ist nicht geändert...

ALEX

Code: Alles auswählen

<?php

/*******************************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname      :  Mailkontakt
* Author         :  agon
* Copyright      :  Contenido - four for business
* Created        :  05-11-2003
* Modified again :  Feb. 29th 2004 by Lars D. Forseth <lars@forseth.de>
********************************************************/

//Sprachanpassung
switch ($lang)
{
	case 1:
	$t1 = "Diesen Empf&auml;nger gibt es nicht (mehr)!<br>Versuchen Sie es sp&auml;ter bitte nochmals oder suchen Sie einen anderen Empf&auml;nger aus.";
	$t2 = " Die angegebene E-Mail-Adresse ist ung&uuml;ltig!<br> Bitte&nbsp;&uuml;berpr&uuml;fen...<br><br>";
	$t3 = "Kontaktanfrage durch ....de";
	$t4 = "Folgende Nachricht wurde eben verschickt:";
	$t5 = "Absender";
	$t6 = "Nachricht";
	$t7 = "Bitte alle Felder <b>korrekt</b> ausf&uuml;llen!";
	$t8 = "Ihr Name:";
	$t9 = "Ihre E-Mail-Adresse";
	$t10 = "Ihre Nachricht:";
	$t11 = "Mail senden";
	$t12 = "Momentan sind leider keine Empf&auml;nger in der Datenbank eingetragen, bitte versuchen Sie es sp&auml;ter nochmals.";
                $t13 = "Empf&auml;nger";
	$t14 = "zur&uuml;ck";

	break;
	
	case 3:
	$t1 = "The chosen recipient does not exist. Your please try it later again or choose another recipient.";
	$t2 = "The address that you typed is not valid.<br> Please check your address...<br><br>";
	$t3 = "Mail from ....de";
	$t4 = "This following message was sent:";
	$t5 = "Sender";
	$t6 = "Message";
	$t7 = "Please complete this form accurately!";
	$t8 = "Your name:";
	$t9 = "Your mail address";
	$t10 = "Your message:";
	$t11 = "Send message";
	$t12 = "There are no recipients in out database. Please try it later again.";
                $t13 = "Recipient";
                $t14 = "back";

	break;
}




echo "
<!-- start Mailkontakt output -->
";
$db = new DB_Contenido;


/* data was given */
if (($mail == "yes") and (strlen($from_name)>1) and
    (strlen($from_mail)>5) and (strlen($mailkontaktid)>0) and (strlen($comment)>2)) {


  // if invalid mailkontaktid given
  if (!(eregi("([0-9]{1,11})",$mailkontaktid))) {
    $error = "
         <!-- error: invalid mailkontaktid given -->
         <br><br><br>
         <center><font color=\"darkred\"><b> 
         $t1 
         </b></font></center>
         <br><br><br>
         ";
    break;
  } // end if invalid mailkontaktid given

  $sql = "SELECT * FROM mailkontakt WHERE mailkontaktid=$mailkontaktid ".
         "OR mailkontakt_spd=\"Y\" ORDER BY mailkontaktid";
  $db->query($sql);
  $db->next_record();
  $nr = $db->num_rows();

  $mailto = "";
  $spd = "";
  $mailkontakt_name = "";
  $header="From:".$from_name."<".$from_mail.">";
  
  // no data in DB
  if ($nr < 1) {
    $error = "
         <!-- error: no data in DB -->
         <br><br><br>
         <center><font color=\"darkred\"><b> 
         $t1 
         </b></font></center>
         <br><br><br>
         ";
    break;
  } // end no data in DB

  // get recipients from DB
  for ($i=0; $i<$nr; $i++) {
    if ($mailkontaktid == ($db->f("mailkontaktid"))) {
      $mailto = ($db->f("mailkontakt_email"));
      $mailkontakt_name = $db->f("mailkontakt_name");
    } // end if
    if (!($mailkontaktid == ($db->f("mailkontaktid"))) and (($db->f("mailkontakt_spd"))=="Y")) {
      $spd .= ",".($db->f("mailkontakt_email"));
    } // end if
    $db->next_record();
  } // end "get recipients from DB"

  if (strlen($mailto) < 5) {
    $tmp = explode(",",$spd,2);
    $mailto = $tmp[1];
  } else {$mailto .= $spd;}

  // check if email-adress from user is correct
  $length = (int) (strlen($from_mail));
  if ($length > 100 or $length < 5) {$length_err = 1;}
  else {$length_err = 0;}
  $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$from_mail));

  if (strlen($error)>3) {echo $error;}

  else { // no error occured
    if (!($valid==1) or ($length_err==1)) {
      $links        = explode('?',$PHP_SELF);
      $link         = $links[0];
      $link         = $link."?idcat=".$idcat; // back-link
      echo "
<br><br><br>
<font color=\"red\"><b>
 $t2 
 <center>
  <form action=\"$link\" method=\"post\">
   <input type=\"hidden\" name=\"mailkontaktid\" value=\"$mailkontaktid\">
   <input type=\"hidden\" name=\"from_name\" value=\"$from_name\">
   <input type=\"hidden\" name=\"from_mail\" value=\"$from_mail\">
   <input type=\"hidden\" name=\"comment\" value=\"$comment\">
   <input type=\"submit\" value=\"$t14\">
  </form>
 </center>
</b></font>
<br><br>";
    } // end check user email-address
    else {

      /* finally mail message */
      mail($mailto,$t3,$comment,$header);

      // give confirmation to user:
      if (strlen($mailkontakt_name) < 1) $mailkontakt_name = "uns";
      echo "
<br><br><br><br>
<i>$t4</i>
<br><br><br>
<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\">
 <tr>
  <td class=\"text\"><b>$t5:</b></td>
  <td>&nbsp;&nbsp;</td>
  <td width=\"90%\" class=\"text\">";
      echo $from_name." <".$from_mail.">";
      echo "</td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
 </tr>
 <tr>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
  <td>&nbsp;</td>
 </tr>
 <tr valign=\"top\">
  <td class=\"text\"><b>$t6:</b></td>
  <td>&nbsp;&nbsp;</td>
  <td class=\"text\">".nl2br($comment)."</td>
 </tr>
</table>
<br><br><br>";
    } // end else ("user's email-addres is ok")
  } // end else ("no error occured")


} // end "data was given"








/* no data was given (yet), so give back form */
else {

  $db1 = new DB_Contenido;
  $sql1 = "SELECT * FROM mailkontakt WHERE mailkontakt_sil=\"Y\" ORDER BY mailkontakt_name";
  $db1->query($sql1);
  $db1->next_record();
  $nr1 = $db1->num_rows();
  if ($nr1 > 0) $show_list = "yes";


  $sql = "SELECT * FROM mailkontakt ORDER BY mailkontaktid";
  $db->query($sql);
  $db->next_record();
  $nr = $db->num_rows();

  /* there are recipients in DB */
  if ($nr > 0) {

    echo "<br><br><br>";

    // not all fields were filled during last submission!
    if ($mail == "yes") {
      echo "
  <font class=\"text\"><font color=\"red\">
   <i>$t7</i>
  </font></font><br><br>";
    } // end if "not all fields filled"

    echo "
  <form name=\"mail\" action=\"".$auth->url()."\" method=\"post\" class=\"text\">
  <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
  ";

    /* if there are any recipients with sil=="Y" */
    if ($show_list == "yes") {
      echo"
   <tr>
    <td  valign=\"middle\" class=\"text\">$t13:</td>
    <td>&nbsp;</td>";

      echo "
    <td>
     <select name=\"mailkontaktid\" style=\"width: 251px;\">";

      for($x=0; $x<$nr1; $x++){
        echo "
      <option value=\"".($db1->f("mailkontaktid"))."\"";
        if (($db1->f("mailkontaktid")) == $mailkontaktid) echo " selected";
        echo ">".($db1->f("mailkontakt_name"));
        $db1->next_record();
      } // end for
      echo "
     </select>
    </td>
    ";
      // end drop-down-menu


      echo "
    <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
   </tr>";
   } // end if($show_list == "yes")
   else {echo "<tr><td colspan=\"4\"><input type=\"hidden\" name=\"mailkontaktid\" value=\"0\"</td></tr>";}

   echo "
   <tr>
    <td class=\"text\" valign=\"middle\">$t8</td>
    <td>&nbsp;</td>
    <td><input type=\"text\" name=\"from_name\" size=\"38\" value=\"".$from_name."\" maxlength=\"100\"></td>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
   </tr>
   <tr>
    <td class=\"text\" valign=\"middle\">$t9:</td>
    <td>&nbsp;</td>
    <td><input type=\"text\" name=\"from_mail\" size=\"38\" value=\"".$from_mail."\" maxlength=\"100\"></td>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
   </tr>
   <tr>
    <td class=\"text\" valign=\"middle\">$t10</td>
    <td>&nbsp;</td>
    <td>
     <text"."area cols=\"45\" rows=\"10\" name=\"comment\" style=\"width:250px\" wrap=\"physical\">".
      $comment.
    "</text"."area></td>
    <td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
   </tr>
   <tr>
    <td colspan=\"4\" align=\"center\">
     <br>
     <input type=\"hidden\" name=\"mail\" value=\"yes\">
     <input type=\"submit\" value=\"$t11 &raquo;\">
    </td>
   </tr>
  </table>
 </fo"; echo "rm>
 <br><br>";

  } // end "there are recipients in DB"


  /* there are no recipients in DB */
  else {
    echo "
    <br><br><br>
    <center><font color=\"darkred\"><b>
$t12
    </b></font></center>
    <br><br><br>
    ";
  } // end "there are no recipients in DB"



} // end "no data was given (yet)"

echo "
<!-- end Mailkontakt output -->
";

?>

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Do 4. Mär 2004, 18:26

hey super, dass nenn ich mal initiative, und ich dachte schon ich bin hier alleine in einer welt voller konsumenten! ;) *fg*


ich werde das mal im laufe des wochenende testen und wenn das bei mir gut klappt, dann nehm ich das in ein neues release mit auf, kannst mir dazu noch deinen realname per pm schicken, dann kommst du in den header mit den copyright-hinweisen... ;) OK? :roll:

Pennywise
Beiträge: 5
Registriert: Di 13. Jan 2004, 20:02
Kontaktdaten:

Super ... - Es funktioniert

Beitrag von Pennywise » Do 4. Mär 2004, 23:53

Hi Darth-Vader,

super, funktioniert einwandfrei.

Also nochmals vielen Dank.

THX

Pennywise :D

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 5. Mär 2004, 08:47

Darth-Vader hat geschrieben: falls jemand einen neuen / andren Bug entdeckt, einfach hier posten, ich bin für hinweise immer dankbar! 8)
Hallo,

mal etwas vorab: ich benutze eigentlich das 'Original-Modul' (in leicht veraenderter Form), und ich habe nicht wirklich Ahnung von RegExp. :oops: Soll heissen, ich kann sie teilweise interpretieren, aber selbst habe ich keine einzige geschrieben. :?

Das, was Du aus dem Originalmodul gemacht hast, geht mir eigentlich schon zu weit :), was ich eigentlich braeuchte waere nur eine Ueberpruefung, ob alle Felder ausgefuellt sind, und ob die Mailadresse 'vernuenftig' aussieht. Ich habe zu diesem Thema mit dem Autor gemailt, ihm geschrieben, dass Du das Modul geaendert hast, und er machte mich auf ein moegliches Problem mit der Mailadressen-Ueberpruefung aufmerksam. Dieses spreche ich nun aufgrund der erwaehnten fehlenden RegExp-Kenntnis an: kommen Mailadressen, die Subdomains enthalten, durch die Ueberpruefung durch? Also so etwas wie dagobert@duck.entenhausen.de? Oder wuerde das schon als ungueltige Adresse angemeckert werden?

Gruss
Christa

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Fr 5. Mär 2004, 09:28

mails an subdomains müssten durchkommen, es sei denn ich hab mist gebaut ;)


EDIT: was hat der Author denn sonst noch so gemeint? Findet er meine Überarbeitung nicht gut? :roll:

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Do 11. Mär 2004, 21:10

Darth-Vader hat geschrieben: EDIT: was hat der Author denn sonst noch so gemeint? Findet er meine Überarbeitung nicht gut? :roll:
Aehm ... sorry, habe nur durch Zufall Deine Ueberarbeitung gerade gelesen. :) Er hat sonst nichts gesagt, und ueberhaupt hat er sich seit Freitag oder so nicht mehr gemeldet. :( Das eine Problem (eigentlich nur PHP Warnung) konnte ich heute mit Hilfe von emergence beheben koennen.

Deine Hilfe koenne ich aber auch gut gebrauchen :wink:, denn Deine ueberarbeitete Version ist mir, ehrlich gesagt, zu viel. Was mir im Prinzip noch fehlt ist eine Ueberpruefung, ob alle Felder ausgefuellt wurden, und die Ueberpruefung der Mailadresse auf 'Richtigkeit'. Erst habe ich mir gedacht, ich nehme das, was ich brauche, aus Deiner Ueberarbeitung, aber denkste ... Das war mir bei meinen kaum vorhandenen PHP-Kenntnissen schon zu viel. :(

Kannst Du mir vielleicht helfen, wenn ich ganz lieb BITTE sage? :oops:

Gruss
Christa

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Fr 12. Mär 2004, 15:12

hm, zeig mal was de bis jetzt hast, dann schauen wir mal, was wir da einbauen können ;)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 12. Mär 2004, 17:31

Darth-Vader hat geschrieben:hm, zeig mal was de bis jetzt hast, dann schauen wir mal, was wir da einbauen können ;)
Vielen Dank schon mal vorab. :wink:
aaaaaaalso ... es stand schon gestern an einer anderen Stelle im Forum (wo mir emergence geholfen hat), da ich aber auch noch seine Aenderung eingebaut habe, hier nochmal alles komplett, so wie es aktuell laeuft und auch keine PHP Warnungen mehr verursacht :):

INPUT

Code: Alles auswählen

echo "<table cellspacing="0" cellpadding="10" border="0">
        <tr>
          <td>Adressaten-Namen:</td>
          <td><input type="text" name="CMS_VAR[8]" value="CMS_VALUE[8]" size=70></td>
        </tr>
        <tr>
          <td>Adressaten-Emails:</td>
          <td><input type="text" name="CMS_VAR[9]" value="CMS_VALUE[9]" size=70></td>
        </tr>
        <tr>
          <td>Betreffzeilen:</td>
          <td><input type="text" name="CMS_VAR[7]" value="CMS_VALUE[7]" size=70></td>
        </tr>
        <tr>
          <td colspan=2>Notieren Sie in den beiden ersten Feldern eine gleiche Anzahl von Adressaten und Email-Adressen, im dritten Feld die gewünschten Betreffzeilen;
           trennen Sie die Einträge jeweils mit Kommata.</td>
        </tr>
      </table>";
OUTPUT

Code: Alles auswählen

<?php
$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
$betreff = explode(",","CMS_VALUE[7]");
$mail = $_REQUEST['mail'];
$email_from_name = strip_tags($_REQUEST['email_from_name']);
$email_from_mail = strip_tags($_REQUEST['email_from_mail']);
$kommentar = strip_tags($_REQUEST['kommentar']);
if($mail == 1 && count($email_to)!==0)
{
  $header='From:'.$email_from_name.'<'.$email_from_mail.'>';
  for($x=0;$x<count($email_to_name);$x++){
   if(in_array($x,$email_to)) {
    $mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
    $adressat .= $email_to_name[$x]." ";
   }
  }
  for($y=0;$y<count($betreff);$y++){
   if(in_array($y,$betr)) {
    $anliegen .= $betreff[$y]." ";
   }
  }
  mail("$mailto",$anliegen,$kommentar,$header);
  echo '<h2 class="headline">Folgende Nachricht wurde versendet:</h2>
<table border="1" cellpadding="3" cellspacing="0" width="100%">
  <tr>
   <td>Absender:</td>
   <td width="90%">';
  if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
  else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
  echo '</td>
  </tr>
  <tr>
   <td>Adressat(en):</td>
   <td width="90%">'.$adressat.'</td>
  </tr>
  <tr>
   <td>Betreff:</td>
   <td width="90%">'.$anliegen.'</td>
  </tr>
  <tr>
   <td colspan="2">'.stripslashes(nl2br($kommentar)).'</td>
  </tr>
</table>';
} else
{
  echo '<form name="mail" action="'.$auth->url().'" method="post">
   <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
     <td colspan="3">'; echo "<h1 class="headline">CMS_HTMLHEAD[1]</h1>
      <span id="font" class="subheadline">CMS_HTML[1]</span>"; echo '</td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td class="subheadline" width="150">Ihr Name:</td>
     <td>&nbsp;</td>
     <td><input type="text" name="email_from_name" size="30" 
value="'.$email_from_name.'" class="Input"></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td class="subheadline" width="150">Ihre E-Mail-Adresse:</td>
     <td>&nbsp;</td>
     <td><input type="text" name="email_from_mail" size="30" 
value="'.$email_from_mail.'" class="Input"></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">Adressat:<br>(Mehrfachauswahl 
mit <br>gedrückter Strg-Taste)</td>
     <td>&nbsp;</td>
    <td><select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';
 for($x=0;$x<count($email_to_name);$x++){
  echo '<option value="'.$x.'">'.$email_to_name[$x].'</option>';
 }
 echo '     </select>';
  if ($mail == 1) {
   echo '<br><i>Sie müssen mindestens einen Adressaten <br>auswählen, um die
Nachricht abzuschicken.</i>'; }
  echo '  </td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>

  <tr>
     <td class="subheadline" width="150">Betreff:</td>
     <td>&nbsp;</td>
     <td><select name="betr[]" size="1" class="Input">';
 for($y=0;$y<count($betreff);$y++)
 {
 if (is_array($betr)) { 
  if (in_array($y,$betr)) 
  { 
   echo '<option value="'.$y.'" selected>'.$betreff[$y].'</option>'; 
  } else 
  { 
   echo '<option value="'.$y.'">'.$betreff[$y].'</option>'; 
  } 
} else { 
echo '<option value="'.$y.'">'.$betreff[$y].'</option>'; 
}
}
 echo '     </select>
    </td>
    </tr>

    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">Ihre Nachricht:</td>
     <td>&nbsp;</td>
     <td><textarea cols="45" rows="10" name="kommentar" style="width:250px" 
class="InputArea">'.stripslashes($kommentar).'</text'.'area></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">&nbsp;</td>
     <td>&nbsp;</td>
     <td align="left"><input type="submit" value="E-Mail senden" name="submit" class="InputButton"></td>
     <input type="hidden" name="mail" value="1">
    </tr>
   </table>
  </fo'; echo 'rm>';
}
?>
Ach ja, einen Schoenheitsfehler gibt's noch ... bei Tests fiel auf, dass wenn der Absender Umlaute im Namen hat, der Name in der Mail in Anfuehrungszeichen gesetzt wird. Aber wenn der Vorname keine Umlaute enthaelt, der Nachname jedoch schon, dann steht nur der Nachname in Anfuehrungszeichen (so der Testfall :) ). Ist es moeglich, entweder die Umlaute wegzumachen oder ansonsten grundsaetzlich den kompletten Eintrag im 'Absender'-Feld in Anfuehrungszeichen zu setzen? Sonst sieht das etwas doof aus ...

Viele Gruesse
Christa

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Fr 12. Mär 2004, 19:15

Halchteranerin hat geschrieben: Ach ja, einen Schoenheitsfehler gibt's noch ... bei Tests fiel auf, dass wenn der Absender Umlaute im Namen hat, der Name in der Mail in Anfuehrungszeichen gesetzt wird. Aber wenn der Vorname keine Umlaute enthaelt, der Nachname jedoch schon, dann steht nur der Nachname in Anfuehrungszeichen (so der Testfall :) ). Ist es moeglich, entweder die Umlaute wegzumachen oder ansonsten grundsaetzlich den kompletten Eintrag im 'Absender'-Feld in Anfuehrungszeichen zu setzen? Sonst sieht das etwas doof aus ...
Das is aber net in meinem Modul so, oder?! :shock:


Du willst also jetzt ne Prüfung ob alles ausgefüllt wurde und dass die emailadi überprüft wird?

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Fr 12. Mär 2004, 19:52

probier mal folgendes aus:


Code: Alles auswählen


<?php


$email_to_name = explode(",","CMS_VALUE[8]");
$email_to_mail = explode(",","CMS_VALUE[9]");
$betreff = explode(",","CMS_VALUE[7]");
$mail = $_REQUEST['mail'];
$email_from_name = strip_tags($_REQUEST['email_from_name']);
$email_from_mail = strip_tags($_REQUEST['email_from_mail']);
$kommentar = strip_tags($_REQUEST['kommentar']);




if(($mail == 1) and (count($email_to)!==0) and (strlen($email_from_name) > 1)
     and (strlen($email_from_mail) > 1) and (count($betreff) >= 1)
     and (strlen($kommentar) > 3)) {
  $header='From:'.$email_from_name.'<'.$email_from_mail.'>';

  for($x=0;$x<count($email_to_name);$x++){
    if(in_array($x,$email_to)) {
      $mailto .= $email_to_name[$x]." <".$email_to_mail[$x].">,";
      $adressat .= $email_to_name[$x]." ";
    } // end if
  } // end for



  $valid = (eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]+$",$email_from_mail));

  if (!($valid==1)) {
    echo "
    <font color=\"red\">Die Emailadresse ist ungültig, bitte überprüfen!</font>
    <br>
    <form action=\"".($auth->url())."\" method=\"post\">
     <input type=\"hidden\" name=\"email_from_mail\" value=\"$email_from_mail\">
     <input type=\"hidden\" name=\"email_from_name\" value=\"$email_from_mail\">
     <input type=\"hidden\" name=\"kommentar\" value=\"$kommentar\">
     <input type=\"submit\" value=\"&laquo; Zur&uuml;ck\">
    </form>
    ";
  } else {

    for($y=0;$y<count($betreff);$y++){if(in_array($y,$betr)) $anliegen .= $betreff[$y]." ";}
    mail("$mailto",$anliegen,$kommentar,$header);

    echo '
  <h2 class="headline">Folgende Nachricht wurde versendet:</h2>
  <table border="1" cellpadding="3" cellspacing="0" width="100%">
   <tr>
    <td>Absender:</td>
    <td width="90%">';
    if ($email_from_mail=="") { echo '<i>keine Absenderangabe</i>'; }
    else { echo $email_from_name.' &l'.'t;'.$email_from_mail.'&g'.'t;'; }
    echo '</td>
   </tr>
   <tr>
    <td>Adressat(en):</td>
    <td width="90%">'.$adressat.'</td>
   </tr>
   <tr>
    <td>Betreff:</td>
    <td width="90%">'.$anliegen.'</td>
   </tr>
   <tr>
    <td colspan="2">'.stripslashes(nl2br($kommentar)).'</td>
   </tr>
 </table>';
 
  } // end else
  
  
} // end "if($mail == 1 && count($email_to)!==0)"




else {
  echo '
  <form name="mail" action="'.$auth->url().'" method="post">
   <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
     <td colspan="3">'; echo "<h1 class=\"headline\">CMS_HTMLHEAD[1]</h1>
      <span id=\"font\" class=\"subheadline\">CMS_HTML[1]</span>"; echo '</td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td class="subheadline" width="150">Ihr Name:</td>
     <td>&nbsp;</td>
     <td><input type="text" name="email_from_name" size="30" value="'.$email_from_name.'" class="Input"></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td class="subheadline" width="150">Ihre E-Mail-Adresse:</td>
     <td>&nbsp;</td>
     <td><input type="text" name="email_from_mail" size="30" value="'.$email_from_mail.'" class="Input"></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">
      Adressat:<br>(Mehrfachauswahl mit <br>gedrückter Strg-Taste)
     </td>
     <td>&nbsp;</td>
     <td>
      <select name="email_to[]" size="'.count($email_to_name).'" multiple class="Input">';

  for($x=0;$x<count($email_to_name);$x++){
    echo '
       <option value="'.$x.'">'.$email_to_name[$x].'</option>';
  } // end for
  echo '
      </select>';


  if ($mail == 1) {
    echo '
      <br><i>Sie müssen mindestens einen Adressaten
      <br>auswählen, um die Nachricht abzuschicken.</i>';
  } // end if


  echo '
     </td>
    </tr>
    <tr>
     <td colpsan="3">&nbsp;</td>
    </tr>
    <tr>
     <td class="subheadline" width="150">Betreff:</td>
     <td>&nbsp;</td>
     <td>
      <select name="betr[]" size="1" class="Input">';

  for($y=0;$y<count($betreff);$y++) {
    if (is_array($betr)) {
      if (in_array($y,$betr)) {
        echo '
       <option value="'.$y.'" selected>'.$betreff[$y].'</option>';
      } // end if
      else {
        echo '
       <option value="'.$y.'">'.$betreff[$y].'</option>';
      } // end else
    } // end if
    else {
      echo '
       <option value="'.$y.'">'.$betreff[$y].'</option>';
    } // end else
  } // end for

  echo '
      </select>
     </td>
    </tr>
    <tr>
     <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">Ihre Nachricht:</td>
     <td>&nbsp;</td>
     <td><textarea cols="45" rows="10" name="kommentar" style="width:250px" class="InputArea">'.stripslashes($kommentar).'</text'.'area></td>
    </tr>
    <tr>
     <td colspan="3">&nbsp;</td>
    </tr>
    <tr>
     <td valign="top" class="subheadline" width="150">&nbsp;</td>
     <td>&nbsp;</td>
     <td align="left"><input type="submit" value="E-Mail senden" name="submit" class="InputButton"></td>
     <input type="hidden" name="mail" value="1">
    </tr>
   </table>
  </fo'; echo 'rm>';


} // end else

?>




Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 12. Mär 2004, 21:03

Darth-Vader hat geschrieben: Das is aber net in meinem Modul so, oder?! :shock:
Neeeee, das habe ich gar nicht erst angefasst, weil mir das zu gross/umfangreich war. :(
Darth-Vader hat geschrieben: Du willst also jetzt ne Prüfung ob alles ausgefüllt wurde und dass die emailadi überprüft wird?
Ja, das wollte ich ... Na ja, und wenn etwas nicht ausgefuellt wurde oder die Mailadresse nicht dem Pruefmuster entspricht, eine entsprechende Fehlermeldung, so aehnlich wie bei nicht ausgewaehltem Adressaten. Also 'Sie muessen Ihren Namen angeben', 'Sie muessen Ihre E-Mail-Adresse angeben', 'Sie muessen einen Nachrichtentext angeben'.

Mit Deinem Code geht's leider nicht. Erst fand ich im Errorlog das hier:
[12-Mär-2004 20:45:44] Invalid SQL: insert into con_phplib_active_sessions ( sid, name, val, changed ) values (DAS HABE ICH HIER RAUSGENOMMEN, DA ZU LANG FUERS FORUM :) )<br><br>
[12-Mär-2004 20:45:44] Session: freeze() failed.
aber dann habe ich es geloescht, nochmal mit dem Formular gespielt, und es tauchte nicht mehr im Errorlog auf. Dafuer geht das Formular aber auch nicht. :( Beispiel: wenn ich den Namen eingebe, aber eine 'ungueltige' Mailadresse, Adressaten und Betreff auswaehle, bekomme ich die Meldung 'Sie müssen mindestens einen Adressaten
auswählen, um die Nachricht abzuschicken.' und die ist ja an der Stelle falsch ...

Anderer Vorschlag? :)

Viele Gruesse
Christa

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 12. Mär 2004, 21:06

Darth-Vader hat geschrieben:probier mal folgendes aus:
Da ist noch ein Fehler, irgendwo steht colpsan statt colspan :) aber daran lag's natuerlich nicht. Ich habe das Gefuehl, dass egal was ich mache oder nicht diese Fehlermeldung mit der Auswahl des Adressaten kommt ...

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Fr 12. Mär 2004, 21:50

warum is dir meins eigentlich zu komplex?

wenn ich ehrlich bin hab ich nämlich leider keine zeit hier spezialanfertigungen zu machen, srry :)

(den vorschlag oben hab ich grad mla schnell in 3min gemacht deswegen auch z.B. der Tippfehler mit dem colspan)

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Fr 12. Mär 2004, 22:29

Darth-Vader hat geschrieben:warum is dir meins eigentlich zu komplex?
Ich hab's mir nicht soooo genau angeguckt, ich gebe es zu. :) Aber was mir aufgefallen war (korrigier mich bitte, wenn es falsch ist, es ist auch schon ein paar Tage her, dass ich es mir angeschaut habe): die Mailadressen der Adressaten werden irgendwo (in einer extra Tabelle?) gespeichert, und es wird z.B. auch ueberprueft, ob eine gueltige Mailadresse angegeben/ausgewaehlt wurde ... ich habe bloss zwei Mailadressen als Adressaten, vielleicht werden es auch 3 oder 4, mehr aber auch nicht, und ich brauche deswegen keine so komplizierte Adressenverwaltung.

Ich muss mal gucken, ob ich den Fehler in Deinem Vorschlag finde ... ein blindes Huhn findet auch mal ein Korn. ;-)

Darth-Vader
Beiträge: 661
Registriert: So 25. Jan 2004, 19:06
Wohnort: Stuttgart-Bad Cannstatt
Kontaktdaten:

Beitrag von Darth-Vader » Sa 13. Mär 2004, 00:13

naja, im prinzip werden die werte der CMS_VARs auch in der Datenbank gespeichert in einer der Contenido-Tabellen, also warum soll man dann nicht hingehen und die Emailkontaktadressen in einer seperaten Tabelle speichern hab ich mir gedacht... nunja, ich wünsch dir mal viel Glück bei der Suche ;)

Gesperrt