Webstatt.org - Community seit 2006 - 2012 (2024?)

Formmailer includen

Avatar user-297
11.03.2007 18:07

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


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?

Fachabi 2007
user-321
11.03.2007 18:34

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

Avatar user-129
11.03.2007 19:02

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


gruß user-129

Avatar user-297
11.03.2007 20: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:

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

Fachabi 2007
Avatar user-129
11.03.2007 21:33

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

Avatar user-297
11.03.2007 21:55

Original von user-129
probier mal in die erste zeile des scripts das zu schreiben:
ob_start();


Damit verändert sich leider nichts. traurig

Fachabi 2007
user-209
12.03.2007 10: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

Avatar user-297
12.03.2007 17:11

Original von user-209
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."zwinkern;
header("Location: $strReturnhtml"zwinkern;
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>


Die frühere kontakt.php heißt jetzt tickets.php. Die Indexdatei heißt index1.php.

Fachabi 2007
Avatar user-129
12.03.2007 20:56

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

Avatar user-297
13.03.2007 12:30

Ah, so funktionierts, vielen user-158k! (:

Fachabi 2007