mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 25.04.2024 12:17 Benutzername: Passwort: Auto-Login

Thema: php Formmailer php-code ist im Browser sichtbar vom 19.07.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> php Formmailer php-code ist im Browser sichtbar
Seite: 1, 2  Weiter
Autor Nachricht
deliciious
Threadersteller

Dabei seit: 15.11.2006
Ort: Essen
Alter: 39
Geschlecht: Männlich
Verfasst Do 19.07.2007 12:22
Titel

php Formmailer php-code ist im Browser sichtbar

Antworten mit Zitat Zum Seitenanfang

Hi

Soll einen formmailer auf einer seite einfügen.
habe gestern eine beispieldatei (von selfhtml) auf unseren server geladen und getestet. funktionierte auch bestens (abgesehen davon, dass die mails stunden später erst ankamen).

jetzt habe ich aber plötzlich folgendes problem:
ich habe den html-code ein wenig geändert (inputs hinzugefügt).
und nun enthält die php-datei bei ansicht im browser auf einmal teile vom php-code. Der php-code an sich ist unverändert.


kann jemand helfen??
woran liegt das? sonstige schwerwiegende fehler im php- oder html-code zu finden?
und noch eine frage: was bedeutet das "<dl>" und "<dd>" - dadurch werden die textfelder/inputs ja "eingerückt" im design. kann man die getrost weglassen???

kenn mich mit so formularen und php absolut nicht aus!
Danke im vorraus!!
deliciiouzz


code (die domain ist rausgenommen):

Code:
<?php

### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 'info@domain.de';

# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom       = '"Formmailer" <Bestellung@domain.de>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Test';

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

# 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;
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
    <head>
        <title>Einfacher PHP-Formmailer</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
      <form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
            <!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
         <dl>
               
                <dd><input type="text" name="Versender" value="Name" /><br/>
               <input type="text" name="Adresse" value="Stra&szlig;e" /><br/>
               <input type="text" name="PLZ" value="PLZ" size="5" maxlength="5" /><input type="text" name="Ort" value="Ort" size="17" /><br/>
               <input type="text" name="E-Mail" value="E-Mail" /><br/>
            </dd>
               
                <dd><input type="text" name="Telefon" value="Telefon" /><br/>
               <br/>
               <input type="text" name="Betreff" value="Bestellung" /><br/>
               <textarea name="Bemerkungen" rows="7" cols="30" tabindex="0">Nachricht</textarea></dd>
            <dd>Bei Bestellungen bitte hier best&auml;tigen:<br/>
               <input type="checkbox" name="Akzeptiert[]" value="HTML" />Ich habe die AGB gelesen und akzeptiere diese.<br/>
            </dd>
            <dd></dd>
         </dl>
         <!-- Ende der Beispielangaben -->
         <p><input type="submit" value="Senden" /></p>
      </form>
   </body>
</html>


im Browser ist dann folgendes zu sehen:

Code:
'; # Welchen Betreff sollen die Mails erhalten? $strSubject = 'Test'; # Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden? # Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben! $strReturnhtml = 'http://www.domain.de/danke.html'; # 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; } ?>


(dann folgt ganz normal das formular, was auch richtig angezeigt wird.


Zuletzt bearbeitet von deliciious am Do 19.07.2007 12:26, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
bambam42

Dabei seit: 10.04.2007
Ort: Dessau
Alter: 59
Geschlecht: Weiblich
Verfasst Do 19.07.2007 12:47
Titel

Antworten mit Zitat Zum Seitenanfang

<Bestellung@domain.de>

nimm mal die <> dort weg
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Account gelöscht


Ort: -
Alter: -
Verfasst Do 19.07.2007 12:57
Titel

Antworten mit Zitat Zum Seitenanfang

http://de.selfhtml.org
 
deliciious
Threadersteller

Dabei seit: 15.11.2006
Ort: Essen
Alter: 39
Geschlecht: Männlich
Verfasst Do 19.07.2007 13:10
Titel

Antworten mit Zitat Zum Seitenanfang

bambam42 hat geschrieben:
<Bestellung@domain.de>

nimm mal die <> dort weg


danke! lag (hoffentlich) tatsächlich daran. nun ist der code im browser zumindest weg beim ersten Test!!
hat noch jemand eine Antwort auf die Frage mit "<dl>" und "<dd>"? kann ich die getrost weglassen oder benötigt der php-code die irgendwo/irgendwie??
würde es ja auch einfach testen, aber müsste dann ja wieda 4 stunden auf die Test-Email warten xD
Woran liegt es eigentl. dass die Email erst stunden später ankommt? Am Server?

Vielen Dank!
  View user's profile Private Nachricht senden
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Do 19.07.2007 13:12
Titel

Antworten mit Zitat Zum Seitenanfang

ja das liegt am server wenn das so lange dauert und nein den php code interessieren diese format tags nicht
  View user's profile Private Nachricht senden
deliciious
Threadersteller

Dabei seit: 15.11.2006
Ort: Essen
Alter: 39
Geschlecht: Männlich
Verfasst Do 19.07.2007 14:39
Titel

Antworten mit Zitat Zum Seitenanfang

Danke!

mhhh..... bin schon die ganze zeit am googeln aber finde keine richtige Lösung (die ich auch noch ohne viel php wissen selbst abändern kann). Hat jemand ne ahnung, wie ich gleichzeitig eine kopie der email (cc oder bcc) an den sender des formulars schicken (lassen) kann - (kein MUSS diese Kopie, aber wäre schon nice).
und wie erstelle ich pflichtfelder, die ausgefüllt werden müssen - bzw. in meinem fall reicht es wenn das Optionsfeld: "AGB wurden akzeptiert" angeklickt wurde! Wenn dieses nicht angeklickt wurde sollte die email auch nicht versendet werden und eine fehlermeldung sollte auftauchen.

kann da jemand weiterhelfen? erfahrene leute wissen da doch best. - selbst auf die schnelle - bescheid?
ansonsten googel ich noch paa stunden weiter =(


vielen dank! Lächel
  View user's profile Private Nachricht senden
bambam42

Dabei seit: 10.04.2007
Ort: Dessau
Alter: 59
Geschlecht: Weiblich
Verfasst Do 19.07.2007 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

jetzt fängt es an, wo du dann doch mehr wissen brauchst

und wenn du so gar keine ahnung hast, wie du ja schreibst, dann solltest du dich doch besser mit xschinkenx's link befassen, um die grundkenntnisse zu erlangen
  View user's profile Private Nachricht senden
deliciious
Threadersteller

Dabei seit: 15.11.2006
Ort: Essen
Alter: 39
Geschlecht: Männlich
Verfasst Do 19.07.2007 16:14
Titel

Antworten mit Zitat Zum Seitenanfang

mh ja das sowieso...
damit auseinandersetzen will ich mich privat eh solange ich zeit und lust (in meiner geringen freizeit xD) dazu finde.. zumindest die grundkenntnisse aneignen

aber dachte vielleicht gibt es da ein patentrezept, da die frage doch best. häufiger kommt - 3, 4 zeilen hinzugefügt und die pflichtfeld-abfrage wäre drin. wenn dem nicht so ist, wie gesagt werde ich googeln und mich später damit auseinandersetzen..


trotzdem mal eben dieser code, den ich gefunden habe:

Code:


"mit dem folgenden code alles ab "mail" bis "exit" ersetzen.
vor dem Versenden der Mail prüfst Du, ob deine Pflichtfelder einen Wert besitzen:"

$valid = true;
if (strlen(trim($_POST["email"])) < 1) // Wenn keine Mailadresse angegeben....
 $valid = false;
if (strlen(trim($_POST["name"])) < 1) // Wenn kein Name angegeben...
  $valid = false;


// Wenn $valid immer noch true ist, wurden die Pflichtfelder ausgefüllt und wir versenden die Mail:

if ($valid)
 { mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
 }
// ansonsten senden wir die Mail nicht ab und leiten nicht zur
// "Dankeschön"-Seite weiter, sondern definieren eine
// Fehlermeldung, die im Formular ausgegeben wird:

else
 {
  $message = "Bitte füllen Sie die Pflichtfelder aus!";
 }


Für die eventuelle Ausgabe der Fehlermeldung platzierst Du folgenden Schnipsel irgendwo im HTML-Code:

<?
 if ($message)
  {
    echo "<font style='color:red'>$message</font>";
  }
 
?>


ich könnte mir denken (vl. liege ich aba au ganz falsch xD), dass dieses:
["name"])) < 1)
eine eingabe erfordert. 0 = keine eingabe. 1 = eingabe. aber in meinen feldern ist ja von vornerein bereits text (die beschriftung innerhalb des inputs) - dann könnte dies ja eh net bei mir funktionieren?!
und zudem benötige ich ja eine pflichtfeldangabe auf einem "kontrollkästchen" nicht auf den textfeldern.

also falls noch jemand helfen will und kann und mag..
wäre sehr dankbar *zwinker*
und natürl. ersetzt es nicht die tatsache dass ich mich privat selbst noch hinsetzen will und mir die grundkenntnisse und bei gefallem vl. auch mehr aneigne in zukunft (!). das hilft mir aber für dieses problem heute/morgen nicht weiter *zwinker*

Danke..
  View user's profile Private Nachricht senden
 
Ähnliche Themen [PHP] Code wird in Browser nicht ausgeführt
HTML-Code wird im Browser angezeigt
Formulardaten nach Browser-"Zurück" sichtbar machen
Mobile Design - Objekte Sichtbar und Sichtbar Bootstrap
Formmailer
php formmailer
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.