Willkommen in der Webstatt Zum Webstatt Blog und Stories
Sheep Sheep am 11.03.07 19:07

Ich möchte einen Formmailer, der ähnlich wie der von SelfHTML aufgebaut ist, in mein vorhandenes Design includen.
if ($_GET['action'] == "kontakt"){
include("kontakt.php");
}


Dass man geschickter includen kann, ist mir bewusst, allerdings funktioniert der includete Formmailer nicht. Nur wenn ich die .php-Datei direkt aufrufe, klappt der E-Mail Versand.

Warum kann ich nicht includen?

netcup.de Warum gibt es hier Werbung?
The Master am 11.03.07 19:34

du sendest das formular wahrscheinlich fälschlicherweise mit action="kontakt.php" ab oder?

Ben Ben am 11.03.07 20:02

wenn ja einfach das formular so verändern:
<form method="post" action="index.php?action=kontakt" >

gruß Ben

Sheep Sheep am 11.03.07 21:49

Ich habs jetzt so gemacht:

<?php print $_SERVER['PHP_SELF']; ?>?action=kontakt entspricht also /index.php?action=kontakt

Die Mail wird versendet allerdings tritt danach folgender Fehler auf:

Quote
Warning: Cannot modify header information - headers already sent by (output started at /home/htdocs/web142/html/index1.php:1) in /home/htdocs/web142/html/tickets.php on line 52

Ben Ben am 11.03.07 22:33

probier mal in die erste zeile des scripts das zu schreiben:
ob_start();

Sheep Sheep am 11.03.07 22:55

Quote
Original von Ben
probier mal in die erste zeile des scripts das zu schreiben:
ob_start();


Damit verändert sich leider nichts. :(

jRothkegel am 12.03.07 11:23

Zeig doch mal ein wenig mehr Quellcode - welcher Code steht z.B. auf Zeile 52 in der tickets.php?

Hast du das Projekt vielleicht online? Wenn ja zeig mal den Link

Sheep Sheep am 12.03.07 18:11

Quote
Original von jRothkegel
Zeig doch mal ein wenig mehr Quellcode - welcher Code steht z.B. auf Zeile 52 in der tickets.php?

Hast du das Projekt vielleicht online? Wenn ja zeig mal den Link


Link zum Projekt: http://www.intermission-sonthofen.de/index1.php?action=tickets

tickets.php
<?php

### Konfiguration ###

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

# An welche Adresse sollen die Mails gesendet werden?management@intermission-sonthofen.de
$strEmpfaenger = 'entfernt wegs spam';

# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"Ticketbestellung"';

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

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

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

### Ende Konfiguration ###
ob_start();
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;
}

?>


<h3>Ticketbestellung</h3>
<form action="<?php print $_SERVER['PHP_SELF']; ?>?action=tickets" method="post">
<!-- Hier die eigentlichen Formularfelder eintragen. Die folgenden sind Beispielangaben. -->
<dl>
<dt>
Name und Vorname:</dt>
<dd>
<input type="text" name="Name" />
</dd>
<dt><br>
E-Mail-Adresse:</dt>
<dd>
<input type="text" name="E-Mail" />
</dd>
<dt><br>
Stra&szlig;e und Hausnummer:</dt>
<dd>
<input type="text" name="Strasse" />
</dd>
<dt><br>
Postleitzahl und Ort:</dt>
<dd>
<input type="text" name="Ort" />
</dd>
<dt><br>
Anzahl der Tickets:</dt>
<dd>
<input name="E-Mail4" type="tickets" size="5" maxlength="2" />
</dd>
<dd>&nbsp; </dd>
</dl>
<dl>
<dt>Wie sind Sie auf das Intermission Festival aufmerksam geworden?</dt>
<dd>
<select name="Aufmerksamkeit">
<option value="Flyer">Flyer</option>
<option value="Freunde">Freunde</option>
<option value="Printmedien">Werbung in Printmedien</option>
<option value="Internet">Werbung im Internet</option>
<option value="Sonstiges">Sonstiges/KA</option>
</select>
</dd>
<dt>Bemerkungen:</dt>
<dd>
<textarea name="Bemerkungen" rows="2" cols="20"></textarea>
</dd>
</dl>
<!-- Ende der Angaben-->
<p>
<input type="submit" value="Senden" />
<input type="reset" value="Zurücksetzen" />
</p>
</form>


[SIZE=10]Die frühere kontakt.php heißt jetzt tickets.php. Die Indexdatei heißt index1.php.[/SIZE]

Ben Ben am 12.03.07 21:56

Das ob_start(); musst du in die index.php schreiben direkt nach <?php .

Sheep Sheep am 13.03.07 13:30

Ah, so funktionierts, vielen Dank! (:

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt