Yeal: Mail Versand

Hallo,

hab da mal eine Frage. Ich möchte meinen Besuchern die Möglichkeit geben, dass die von meiner Seite auch Ohne Mail Klint eine Mail versenden können. Das geht auch schon fast nur wenn ich das Dropdown feld verände dann kommt da nur in der Mail wo der Besucher mit geschickt hat art:1 usw... das will ich nicht ich will da auch stehen haben, was er angeklickt hat.... geht das denn ?

Hier mal der Code....

Das steht ganz oben meiner Seite also PHP:

<?php

Beginn Konfiguration für die Mail

// An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'yeal@web.de';

// Welche Adresse soll als Absender angegeben werden?
// (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom       = '"Feedback" <Liven Privat>';

// Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Kontakt';

// Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
// Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'danke.php';

// Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ":\t";

Ende Konfiguration

if($_POST)
{
 $strMailtext = "";

while(list($strName,$value) = each($_POST))
 {
  if(is_array($value))
  {

foreach($value as $value_array)
   {
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";
   }
  }
  else
  {
   $strMailtext .= $strName.$strDelimiter.$value."\n";
  }
 }

if(get_magic_quotes_gpc())
 {
  $strMailtext = stripslashes($strMailtext);
 }

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
 header("Location: $strReturnhtml");
 exit;
}

?>

So sieht mein Formular aus:

<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
                      <p>&nbsp;</p>
                      <table align="center" cellpadding="2" cellspacing="2">
                        <tbody>
                          <tr>
                            <td align="right"><p>Name: </p></td>
                            <td><input name="Versender" type="text" class="chatfields" id="Versender" size="25" maxlength="300"></td>
                          </tr>
                          <tr>
                            <td align="right"><p>E-Mail: </p></td>
                            <td><p>
                                <input name="E-Mail" type="text" class="chatfields" id="E-Mail" size="25" maxlength="250">
          (An diese Adresse geht die Antwort)</p></td>
                          </tr>
                          <tr>
                            <td align="right"><p>Betreff: </p></td>
                            <td><input name="betreff" class="chatfields" size="35" maxlength="40" type="text"></td>
                          </tr>
                          <tr>
                            <td align="right" valign="top"><p>Art der Anfrage: </p></td>
                            <td><select name="art" id="art" class="chatfields">
                                <option value="1">--- bitte ausw&auml;hlen ---</option>
                                <option value="1">Privat</option>
                                <option value="2">Versto&szlig;</option>
                                <option value="3">Bilder</option>
                                <option value="3">Kontakt</option>
                                <option value="1">Sonstiges</option>
                            </select></td>
                          </tr>
                          <tr>
                            <td align="right" valign="top"><p>Nachricht:</p></td>
                            <td><textarea name="nachricht" cols="60" rows="6" class="chatfields"></textarea></td>
                          </tr>
                          <tr>
                            <td align="center">&nbsp;</td>
                            <td align="center"><div align="left">
                                <input name="submit" class="chatfields" value="&gt;&gt;&gt; abschicken" type="submit">
                            </div></td>

  1. hi,

    Das geht auch schon fast nur wenn ich das Dropdown feld verände dann kommt da nur in der Mail wo der Besucher mit geschickt hat art:1 usw... das will ich nicht ich will da auch stehen haben, was er angeklickt hat.... geht das denn ?

    ja - in dem du nicht einfach nur den wert, der übergeben wird, in deinen mailtext reinsetzt, sondern diesen vorher abfragst, und ihm wieder den klartext zuordnest - und _diesen_ dann einfügst.

    ist das wirklich so schwer, dass man das nicht erst mal selber probieren könnte?

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hi,

      ist das wirklich so schwer, dass man das nicht erst mal selber probieren könnte?

      Sag mal ist alles OK bei dir ich habe eine ganz normale Frage gestellt aber ich sehe schon Frauen sind hier nicht willkommen hatte meine Fruendin doch recht.... na ja ich dachte hier bekommt man eine Hilfe.......

      GRuß Yeal

      1. Hi!

        Hi,

        ist das wirklich so schwer, dass man das nicht erst mal selber probieren könnte?

        Sag mal ist alles OK bei dir ich habe eine ganz normale Frage gestellt aber ich sehe schon Frauen sind hier nicht willkommen hatte meine Fruendin doch recht.... na ja ich dachte hier bekommt man eine Hilfe.......

        Ich denke dass liegt eher weniger daran dass du eine Frau bist als eher daran dass es hier im Forum ungern gesehen wird wenn man sehr viel Code postet.

        Deine Frage an sich verstehe ich nicht richtig, könntest du die mir bitte nochmal *marcverständlich* posten? ;-)
        Ich hab nur irgendetwas von einem DropDown-Feld gelesen...

        cu

        Marc Reichelt || http://www.marcreichelt.de/

        --
        Linux is like a wigwam - no windows, no gates and an Apache inside!
        SELFCode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
        http://emmanuel.dammerer.at/selfcode.html
  2. Hello Anonymous,

    // Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
    // Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
    $strReturnhtml = 'danke.php';

    Das stht doch ganz eindeutig: "Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!"
    Und was machst Du? Du schreibst nur einen Scriptnamen hin!

    Hier wird der Post von irgendwo auseinandergenommen und in zwei Stufen in einen String verwandelt.
    Wenn Du diesen Teil verstehst, dann hast Du die Lösung gefunden, wo Du was einbauen musst:

    while(list($strName,$value) = each($_POST))
    {
      if(is_array($value))
      {

    foreach($value as $value_array)
       {
        $strMailtext .= $strName.$strDelimiter.$value_array."\n";
       }
      }
      else
      {
       $strMailtext .= $strName.$strDelimiter.$value."\n";
      }
    }

    Diese Daten aus dem Formular sollen also in den Mailtext eingebauit werden.
    Es ist schon mal löblich, dass Du den Options auch einen Value gibst

    <td align="right" valign="top"><p>Art der Anfrage: </p></td>
                                <td><select name="art" id="art" class="chatfields">
                                    <option value="1">--- bitte ausw&auml;hlen ---</option>
                                    <option value="1">Privat</option>
                                    <option value="2">Versto&szlig;</option>
                                    <option value="3">Bilder</option>
                                    <option value="3">Kontakt</option>
                                    <option value="1">Sonstiges</option>
                                </select></td>

    Das ist aber nur sinnvoll, wenn der Value auf Empfängerseite auch wieder in einen Optiontext verwandelt wird. Dur könntest das vor der Auswertung von oben machen:

    $_art[1] = '--- bitte auswählen ---';
     $_art[1] = 'Privat';
     $_art[1] = 'Verstoßig';
     $_art[1] = 'Bilder';
     $_art[1] = 'Kontakt';
     $_art[1] = 'Sonstiges';

    ##(da sit noch ein Fehler drin für Dich!, aber villeicht findest Du Deinen bei

    der Gelegenheit auch *gg*

    if(isset($_POST['art']) and (isset($_art[$_POST['art']])
     {
       $_POST['art'] = $_art[$_POST['art']];
     }
     else
     {
       ## Affenformular
     }

    Wenn Du nun spezielle Fragen zu dem Lösungsansatz hast, dann frag, aber schick bitte gleich die Links auf die passende Beschreibung im Handbuch mit, damit ich nicht erst suchen muss.

    z.B. http://de2.php.net/manual/en/ref.array.php

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Hi,

    hab da mal eine Frage. Ich möchte meinen Besuchern die Möglichkeit geben, dass die von meiner Seite auch Ohne Mail Klint eine Mail versenden können. Das geht auch schon fast nur wenn ich das Dropdown feld verände dann kommt da nur in der Mail wo der Besucher mit geschickt hat art:1 usw... das will ich nicht ich will da auch stehen haben, was er angeklickt hat.... geht das denn ?

    <td><select name="art" id="art" class="chatfields">
                                    <option value="1">--- bitte ausw&auml;hlen ---</option>
                                    <option value="1">Privat</option>
                                    <option value="2">Versto&szlig;</option>
                                    <option value="3">Bilder</option>
                                    <option value="3">Kontakt</option>
                                    <option value="1">Sonstiges</option>
                                </select></td>

    Wenn Du erreichen willst, daß der value des selectfelds dem angezeigten option-String entspricht, dann gib im option-Element einfach kein value an - dann wird für das value-Attribut der Default-Wert benutzt - und das ist der angezeigte String.
    Das steht klar und deutlich im HTML-Standard, wäre also für Dich leicht recherchierbar gewesen.

    Ach ja, zu dem Vorwurf an wahsaga, daß Frauen hier nicht willkommen seien:

    ICH kannte den Namen "Yeal" bisher überhaupt nicht - weder für Frauen noch für Männer.
    Andere Anzeichen dafür, daß das Posting von einer Frau stammt, sehe ich auch nicht.

    Für MICH (und vielleicht für wahsaga auch) war also nicht erkennbar, daß es sich um ein "Frauenposting" handelt.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. hi,

      Für MICH (und vielleicht für wahsaga auch) war also nicht erkennbar, daß es sich um ein "Frauenposting" handelt.

      dito, und ich sehe auch nicht, was das zur sache tuen soll.

      ist das etwa der moderne feminismus, dass frau eigene denkfaulheit mit ihrem geschlecht entschuldigt?

      gruß,
      wahsaga

      --
      "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      1. Hello,

        Für MICH (und vielleicht für wahsaga auch) war also nicht erkennbar, daß es sich um ein "Frauenposting" handelt.

        dito, und ich sehe auch nicht, was das zur sache tuen soll.

        ist das etwa der moderne feminismus, dass frau eigene denkfaulheit mit ihrem geschlecht entschuldigt?

        Nee, wahrscheinlich ist es ein pubertierender Jüngling, der uns hier an der naser herumführen will. Denn Zur Sache hat er/sie sich ja noch nicht wieder gemeldet, obwohl inzwischen ernstzunehmende Vorschläge vorliegen.

        Aber es ist Sonntag, und da hauen wir uns eben im Self-Forum die Köpfe ein.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau