Mail Problem mit Variable

Berbatov

Rated R Superstar
ID: 208039
L
20 April 2006
3.979
192
So nun wende ich mich mal an mein liebes Forum, nachdem ich hier seit Stunden verzweifel.

Vorhanden: Seite, mit Formular. Formular beinhaltet ein DropDown Menü, das mit onchange je nach auswahl im Menü ne andre Grafik anzeigt, Dazu sind noch 2 Textfelder vorhanden.

Füllt man nun die felder aus und wählt ein Ding aus der Liste aus und klickt abschicken, wird eine Mail geschickt.

Die beinhaltet alle 3 Variablen, die durch das Formular eingegeben werden. Nun ist es allerdings so, dass 2 (die von den textfeldern) funktionieren aber diese eine verdammte von der Liste nicht. Was heisst nicht, wenn ich das Script auf meinen ohost Webspace lade funktioniert es immer, hab ich es allerdings auf meinem richtigen, dann geht es nicht immer.

Das heisst manchmal bekomm ich in der Mail die Anzeige:

Template:

manchmal:

Template: Listenwahl

Sprich, manchmal klappt es, machmal nicht?!? Dann kanns ja nicht am Code liegen, dass es nicht klappt, zumal es ja ab und an doch klappt und mit dem selben Code bei ohost immer klappt.

Bin am verzweifeln und weiss eigentlich garnicht was ich fragen soll^^
Gibt es so ein Phänomen, woran könnte es liegen?

MfG
 
Sprich, manchmal klappt es, machmal nicht?!? Dann kanns ja nicht am Code liegen, dass es nicht klappt, zumal es ja ab und an doch klappt und mit dem selben Code bei ohost immer klappt.

Wenn du dir so sicher bist dass es nicht am Code liegen kann warum probierste das nicht einfach mal auf nem andern Server aus um schonmal den ohost Faktor auszuschliessen.
 
Wenn du dir so sicher bist dass es nicht am Code liegen kann warum probierste das nicht einfach mal auf nem andern Server aus um schonmal den ohost Faktor auszuschliessen.

Ich weiss nicht ob es am Code liegt, nur wenn es klappt müsste der Code ja richtig sein, aber es klappt halt nur in 1 von 10 Fällen oder so^^
Ich hab leider nicht soviele Server wie Finger. Habs zwar nochmal bei nem kostenlosen funpic getestet, aber da funpic und ohost ja zusammen gehören, ist es wenig erstaunlich, dass das da auch geklappt hat.
 
wie wäre es denn mal den Code hier zu posten?:roll:

Ai Ai:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Titel</title>
<script language="javascript">
function imgchange(bild){
    document.getElementById('image').innerHTML = '<img src="../ordner/images/' + bild + '.gif">';
}
</script>
</head>
<body>
<center><br><br><br>
<b><font face="Arial" size="4">Überschrift kommt noch</font></b><br>
<img src="../images/line.png" ALT="MyBling" hspace="20"><br>
<?php
if(!empty($_POST)) {
    $chooser = $_POST['template'];
    $text = $_POST['text'];
    $mail = $_POST['mail'];
    $error = false;
    if(!empty($chooser) && !empty($text) && !empty($mail) && preg_match("/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si", $mail) != FALSE) {

        echo "Erfolgreich gesendet!";
        
        $MailTo = "[email protected]";
        $nowDay = date("m.d.Y");
        $nowClock = date("H:i:s");
        
        $FormContent = "
        Dieses Formular wurde am  $nowDay um $nowClock abgeschickt.\n\n
        ----------------------------------------------------------------------------\n
        Template: $template\n
        Text: $text\n
        Email: $mail\n
        ----------------------------------------------------------------------------\n
        ";
        
        @mail($MailTo, "Nachricht", $FormContent, "From: ".$mail);
        
    }
    else {
        $error = 'Formular nicht vollständig ausgefüllt!';
    }
}


if(empty($_POST) || $error <> false) {
    if($error <> false) {
        echo "<b>Fehler:</b> ", $error;
    }
?><br>
<font size="-1" face="arial"><b>Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla <br>
Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla <br><br>
Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla </b><br><br>
<table cellpadding="0" cellspacing="0" width="310"><tr><td><img src="../images/1small.png" hspace=10 align="middle"></td>
<td><b><i>Auswahl.</i></b></td></tr></table>
<form name="choose_form" method="post" action="<?=$PHP_SELF;?>">
  <p><table>
  <tr>
    <td colspan="2"><center><select size="1" name="template" onchange="imgchange(this.options[this.selectedIndex].value);">
    <option value="Keine gewählt">Grafik auswählen</option>
    <optgroup label="- Thema 1 -">
    <option value="beispiel1">Beispiel 1</option>
    <option value="beispiel2">Beispiel 2</option>
          </optgroup>
    <optgroup label="- Thema 2 -">
    <option value="beispiel3">Beispiel 3</option>
    <option value="beispiel4">Beispiel 4</option>
          </optgroup>
    </select></center></td></tr>
    <tr><td align="center" id="image" colspan="2"><img src="../ordner/images/start.gif"><br></td></tr>
	<tr><td height=20 colspan="2"></td></tr>
    <tr><td><img src="../images/2small.png" hspace=10 align="middle"></td>
	<td><b><i><font size="-1" face="arial">Text.</font></i></b></td></tr>
    <tr>
    <td colspan="2"><center><input name="text" type="text" id="text" value="<?=$text;?>"></center></td></tr>
		<tr><td height=20 colspan="2"></td></tr>
    <tr><td><img src="../images/3small.png" hspace=10 align="middle"></td>
	<td><b><i><font size="-1" face="arial">Email.</font></i></b></td></tr>
    <tr>
    <td colspan="2"><center><input name="mail" type="text" id="mail" value="<?=$mail;?>"></center></td>
    <tr height="40"><td align="center" colspan="2"valign="middle"><input type="submit" name="Submit" value="Abschicken"></td></tr>
  </table></p>
</form>
<?
}
?>
</center>
</font>
</body>
</html>

Kurze beschreibung:
Habs bisschen abgespeckt, aber nichts vom Code rausgenommen, der wichtig ist, nur css Angaben und unnötigen text.
Es geht drum sich in der Liste einen Eintrag auszusuchen, was dann als Bild angezeigt wird (dazu müssen die grafiken mit dem value-Namen.gif in /ordner/images/ Ordner liegen.) (funktioniert aber auch ohne angezeigt Grafik/ Grafik im Ordner)
Textfeld un emailfeld dürfte bekannt sein ;)

Ich weiss es ist schön "dreckiger" Code, aber hoffe trotzdem, dass ihr durchsteigt und wenn es denn einen gibt, den fehler findet. Habs grad nochmal getestet, da haben rund 7 von 10 geklappt^^
 
Du hast deinen Code bisschen faslch aufgebaut, ich habs mal bissi korrigiert hoffe mal das es jetzt besser läuft.

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "https://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Titel</title>
<script language="javascript">
function imgchange(bild){
    document.getElementById('image').innerHTML = '<img src="../ordner/images/' + bild + '.gif">';
}
</script>
</head>
<body>
<center><br><br><br>
<b><font face="Arial" size="4">Überschrift kommt noch</font></b><br>
<img src="../images/line.png" ALT="MyBling" hspace="20"><br>
<?php
if(isset($_POST['Senden']))
{
    $chooser = $_POST['template'];
    $text = $_POST['text'];
    $mail = $_POST['mail'];
    $error = false;
    if(!empty($chooser) || !empty($text) || !empty($mail) || preg_match("/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si", $mail) != FALSE) {

        $MailTo = "[email protected]";
        $nowDay = date("m.d.Y");
        $nowClock = date("H:i:s");

        $FormContent = "
        Dieses Formular wurde am  $nowDay um $nowClock abgeschickt.\n\n
        ----------------------------------------------------------------------------\n
        Template: $chooser\n
        Text: $text\n
        Email: $mail\n
        ----------------------------------------------------------------------------\n
        ";

        if(@mail($MailTo, "Nachricht", $FormContent, "From: ".$mail))
			echo "Erfolgreich gesendet!";
		else
			echo "Beim senden ist ein Fehler aufgetreten!";
    }
    else {
        $error = 'Formular nicht vollständig ausgefüllt!';
    }
}


if(empty($_POST) || $error <> false) {
    if($error <> false) {
        echo "<b>Fehler:</b> ", $error;
    }
?><br>
<font size="-1" face="arial"><b>Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla <br>
Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla <br><br>
Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla Blabla </b><br><br>
<table cellpadding="0" cellspacing="0" width="310"><tr><td><img src="../images/1small.png" hspace=10 align="middle"></td>
<td><b><i>Auswahl.</i></b></td></tr></table>
<form name="choose_form" method="post" action="<?=$PHP_SELF;?>">
  <p><table>
  <tr>
    <td colspan="2"><center><select size="1" name="template" onchange="imgchange(this.options[this.selectedIndex].value);">
    <option value="Keine gewählt">Grafik auswählen</option>
    <optgroup label="- Thema 1 -">
    <option value="beispiel1">Beispiel 1</option>
    <option value="beispiel2">Beispiel 2</option>
          </optgroup>
    <optgroup label="- Thema 2 -">
    <option value="beispiel3">Beispiel 3</option>
    <option value="beispiel4">Beispiel 4</option>
          </optgroup>
    </select></center></td></tr>
    <tr><td align="center" id="image" colspan="2"><img src="../ordner/images/start.gif"><br></td></tr>
    <tr><td height=20 colspan="2"></td></tr>
    <tr><td><img src="../images/2small.png" hspace=10 align="middle"></td>
    <td><b><i><font size="-1" face="arial">Text.</font></i></b></td></tr>
    <tr>
    <td colspan="2"><center><input name="text" type="text" id="text" value="<?=$text;?>"></center></td></tr>
        <tr><td height=20 colspan="2"></td></tr>
    <tr><td><img src="../images/3small.png" hspace=10 align="middle"></td>
    <td><b><i><font size="-1" face="arial">Email.</font></i></b></td></tr>
    <tr>
    <td colspan="2"><center><input name="mail" type="text" id="mail" value="<?=$mail;?>"></center></td>
    <tr height="40"><td align="center" colspan="2"valign="middle"><input type="submit" name="Submit" value="Abschicken" name="Senden"></td></tr>
  </table></p>
</form>
<?
}
?>
</center>
</font>
</body>
</html>

wenn du deinen Code beibehalten willst ändere Deine if Bedingung
in
PHP:
if(!empty($chooser) || !empty($text) || !empty($mail) || preg_match("/^([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*(\.[a-zA-Z]{2,4}))/si", $mail) != FALSE) {

weil auch wenn NUR einwas fehlt ist nicht alles ausgefüllt.

aber was mich stutzig macht wo kommt die her

$template\n

müsste das nicht $chooser sein oder $_POST[template']
 
Zuletzt bearbeitet:

DANKE ;)

klappt super, hab die if-Bedingung geändert und das $template in chooser geändert.
Wenn ich allerdings deine Datei nehme, bekomm ich n Fehler in Line 18

Parse error: parse error, unexpected '{' in /var/www/vhosts/mybling.de/httpdocs/pc/new.php on line 18

Ist zwar nicht ganz so tragisch, aber würd auch gern Deine Version mal probieren, da die ja korigiert ist.

Trotzdem vielen Dank ;)