Ergebnis 1 bis 2 von 2
  1. #1
    CIH-Virus
    Registriert seit
    24.12.2008
    Beiträge
    468

    Standard email daten übergeben

    Hallo,

    Ich habe ein Problem.
    Ich habe eine tabelle die aus einer datenbank per php daten ausliest und anzeigt. (das funktioniert hier brauche ich noch keine hilfe)
    Die tabelle ist nach A.N.: (antrags nummer ist automatisch genserierte id nummer), ID (ist fest für user), Name, Nachname, Tag, Schicht, E-Mail, Telefon und Zeit untergliedert.(t auch)

    Ich wollte das ich ne email aussuchen kann per checkbox und anschliesend eine zeit. Wenn ich auf senden klicke wird die info mit der Zeit an die email gesendet die ich per checkbox ausgewählt habe (t auch)

    Mein problem:

    In der email steht jetzt aber nicht der Name, Vorname, Tag und Schicht drinne die zu der email gehören. Was schlecht ist.
    Kann mir bitte einer sagen wie ich es hinbekomme das auch das in der mail drinne steht?

    hier der Code:

    eingang.php (hier wird die auswahl in der tabelle getroffen wer eine email mit persöhnlicher zeit bekommt)
    PHP-Code:
    <form id="frm" name="frm" method="post" action="mail.php"> 
      <div align="center"> 
        <table width="1087" border="1"> 
          <tr> 
            <td width="34" class="text_normal">A.N.:</td> 
            <td width="35" class="text_normal">ID:</td> 
            <td width="73" class="text_normal">Name:</td> 
            <td width="112" class="text_normal">Nachname:</td> 
            <td width="117" class="text_normal">Tag:</td> 
            <td width="130" class="text_normal">Schicht:</td> 
            <td width="208" class="text_normal">E-Mail:</td> 
            <td width="185" class="text_normal">Telefon:</td> 
            <td width="135" class="text_normal">Zeit:</td> 
          </tr> 
        </table> 
        <table width="1183" border="0"> 
          <!-verbindung zu tabelle und datenbank-> 
          <?PHP include ("../includes/_config.php"); 

            
    mysql_select_db("lol"); 
            
    $query "SELECT * FROM eingabe ORDER BY tag, zeit"
            
    $result mysql_query($query); 




    $alt=false
    while (
    $line mysql_fetch_array($result)) {  
        
    $styleclass = ($alt = !$alt) ? 'text_eingang1' 'text_eingang2'
         

         
    ?> 
    <tr> 
             
               
            <td width="183" class="text_normal"><span class="<?php echo $styleclass?>"> 
            <div align="right"><?PHP echo $line[id_a];?> | </div></span></td> 
                 
           <td width="51" class="text_normal"><span class="<?php echo $styleclass?>"><?PHP echo $line[id];?></span></td> 
            <td width="124" class="text_normal"><span class="<?php echo $styleclass?>"><?PHP echo $line[name];?></span></td> 
            <td width="223" class="text_normal"><span class="<?php echo $styleclass?>"><?PHP echo $line[vorname];?></span></td> 
            <td width="184" class="text_normal"><span class="<?php echo $styleclass?>"><?PHP echo $line[tag];?></span></td> 
             
            <td width="335" class="text_normal"><span class="<?php echo $styleclass?>"><?PHP echo $line[zeit];?></span></td> 
             
            <?php  
    if (!isset($counter)) $counter=0
    else 
    $counter++; 
    echo 
    "<td width=\"200\" class=\"text_normal\"><span class=\"$styleclass\">$line[email]</span></td> 
    <td width=\"41\"><span class=\"Stil3\"><input name=\"cmail[
    $counter]\" type=\"checkbox\" id=\"cmail[]\" value=\"$line[email]\"></span></td> 
    <td width=\"198\" class=\"text_normal\"><span class=\"
    $styleclass\">$line[tel]</span></td> 
    <td width=\"21\"><span class=\"Stil3\"><input name=\"tel[
    $counter]\" type=\"checkbox\" id=\"tel[]\" value=\"$line[tel]\"></span></td> 
    <td width=\"150\"><input name=\"a_zeit[
    $counter]\" type=\"text\" id=\"a_zeit\" maxlength=\"5\"></td>"
    ?> 
            <td width="53">&nbsp;</td> 
          </tr> 
          <?PHP 

    }  
    mysql_free_result($result); 

    mysql_close(); 
    ?> 
        </table> 
      </div> 
      <p align="center"> 
        <label> 
        <input type="submit" name="button" id="button" value="Senden"> 
        </label> 
      </p> 
    </form>
    </span>mail.php (hier wird die email los gesendet)

    PHP-Code:
     <?php 
    if ($_POST[cmail]) 


    $absender "ADMIN <admin@127.0.0.1>"
    $betreff   'Dein Termin.'
    $nachricht 'Bitte komm um %zeit% Uhr vorbei.'

    $keys array_keys($_POST['cmail']); 
    $key2 array_keys($_POST['a_zeit']); 
    $header    "From: $absender"\r\n" 
                 
    "Reply-To: $absender"\r\n" 
                 
    "X-Mailer: PHP/" phpversion(); 
    for(
    $i=0;$i<count($_POST['cmail']);$i++) 
        { 
        
    $akt $keys[$i]; 
        if (
    $akt != $key2[$i]) echo "Achtung!<br/>Die übergebenen Schlüssel sind nicht identisch. Ich sollte besser abbrechen..."
        else 
            { 
            
    $empfaenger $_POST['cmail'][$akt]; 
            
    $zeit $_POST['a_zeit'][$akt]; 
            
    $tmpnachricht str_replace("%zeit%",$zeit,$nachricht); 
            if (
    $zeit == "") echo "";  
            elseif (
    $zeit == "-") echo "";  
            elseif ( 
    mail$empfaenger$betreff$tmpnachricht$header) ) echo '<center>Message: Versendet an  <big><u>'.$empfaenger.'</u></big>  war erfolgreich. <br/></a></center>'
            else echo 
    "Nachricht an $empfaenger konnte nicht versendet werden.<br/>"
            } 
        }  
        echo 
    '<br><br><br><br><br><br><br><br><br><br><br><br><br><center>Fertig. Gehen Sie bitte wieder zurück <a href="eingang.php">Eingang</a>               </center>'


    else  
        {  

            echo 
    '<br><br><br><br><br><br><br><br><br><br><br><br><br><center>Sie haben keine Auswahl getroffen. Gehen Sie bitte wieder zurück <a href="eingang.php">Eingang</a></center>'

        } 
         
         


    ?>
    </span> </span>


  2. #2
    Kevin Lee Poulsen Avatar von VeN0m
    Registriert seit
    30.12.2008
    Beiträge
    1.270

    Standard

    Mh... Ich versuche mal Deinen Code nachzuvollziehen...
    Allerdings sehe ich Dein Problem nicht so ganz...
    Wenn Du schon diese schöne Variable $counter hast, kannst Du doch einfach alle anderen dazugehörigen Werte per <input type="hidden" value="..." name="..."> übergeben.

    Deine Idee mit dem Platzhaltern ist zwar ganz gut, aber dafür nimmt man, sofern man mehrere Dinge ersetzen möchte, eher preg_replace.
    Du fügst also in Deinen obrigen Code ein Feld für den Vornamen hinzu (als Beispiel):

    HTML-Code:
    <input type="hidden" value="Max" name="Vorname[0]">
    (musst Du natürlich an Deinen Code anpassen und die 0 mit $counter ersetzen ).

    Dann ersetzt Du den Text z.B. mit

    PHP-Code:
    $nachricht 'Hallo %vorname%! Bitte komm um %zeit% Uhr vorbei.'
    und holst Dir

    PHP-Code:
    $vorname $_POST['Vorname'][$akt]; 
    Nun ersetzt Du die Platzhalter mit den Werten...

    PHP-Code:
    $platzhalter = array("/\%zeit\%/","/\%vorname\%/");
    $replaces = array($zeit,$vorname);
    $tmpnachricht preg_replace($platzhalter,$replaces,$nachricht); 
    Aber ehrlich gesagt hätte ich da ein Wenig zu bemängeln:
    - Ich sehe keine Konvertierungsfunktion für die Zeit. Nutze lieber Unix-Zeitstempel, die Du per time() abfragen kannst und speichere diese in der Datenbank.
    Das spart Platz und Du kannst sie Dir in ein beliebiges Format umwandeln.
    - Daten, die aus einer Datenbank kommen, per Formular an ein Mailscript zu übergeben ist nur dann sinnvoll, wenn nur Du selbst Zugriff auf das Script hast.
    Ansonsten bitte nur die ID übergeben und dann die Daten über das Mailscript aus der Datenbank holen.

    Ich hoffe mal, ich habe Dein Problem erkannt und einigermaßen gelöst.
    Du musst das ganze natürlich noch erweitern.
    Come to the dark side - We have cookies

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •