Php übergibt nicht alle Daten (kontaktformular)
Xen
- php
Hallo,
Ich habe eine kleines Problem mit nem Kontaktformular über mehrere Seiten und hoffe ihr könnt mir da weiterhelfen.
Diese folgende Tabelle wird von Seite 1 generiert und auf Seite 2 dargestellt. Hier mal ein kleiner Auszug aus von der 2. Seite:
<?php
foreach ($bezeichnung as $schluessel => $wert)
$bezeichnung[$schluessel] = htmlentities($wert);
foreach ($euro as $schluessel => $wert)
$euro[$schluessel] = htmlentities($wert);
$artikeltabelle = <<<EDS
<table border=0 cellspacing=0 width=400>
<tr>
<th class=bold width=10 align=left></th>
<th align=left><p class=price>Article</p></th>
<th class=price width=65 align=right><p class=price>Price </p></th>
<th class=bold width=10 align=left></th>
</tr>
<tr>
<th class=bold height=10 align=left style=background-image:url(../bilder/2px_line.gif); background-repeat:repeat-x></th>
<th class=bold height=10 align=left style=background-image:url(../bilder/2px_line.gif); background-repeat:repeat-x></th>
<th class=bold height=10 align=left style=background-image:url(../bilder/2px_line.gif); background-repeat:repeat-x></th>
<th class=bold height=10 align=left style=background-image:url(../bilder/2px_line.gif); background-repeat:repeat-x></th>
</tr>
EDS;
foreach($bezeichnung as $nummer => $e_bezeichnung)
{
$artikeltabelle .= <<<EDS
<tr>
<td class=bold></td>
<td class=bold>$bezeichnung[$nummer]</td>
<td align=right>$euro[$nummer] €</td>
<td align=right></td>
</tr>
EDS;
}
$artikeltabelle .= "</table>";
?>
Die Tabelle wird dann auch ganz normal mit echo $artikeltabelle angezeigt. Jedoch will ich dann von dieser Seite dann das Mail erhalten. Dieses erscheint dann aber nicht in der Mail alle weiteren Angaben die von Seite 2 gemacht werden, werden mir übermittelt.
In der Send.php steht dann folgendes:
$company = $_POST['company'];
$name = $_POST['name'];
$adress = $_POST['adress'];
$zip_code = $_POST['zip_code'];
$city = $_POST['city'];
$country = $_POST['country'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$message = $_POST['message'];
$artikeltabelle = $_POST['artikeltabelle'];
$Empfaenger = "nico.felix@web.de";
$Betreff = "Order to Xpose Print Ireland";
$Nachricht = "
<html>
<head>
<title>Xpose Print ::</title>
</head>
<body>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="27" colspan="2" valign="top"><span class="titles">Order</span></td>
</tr>
<tr>
<td height="27" colspan="2" valign="top">$artikeltabelle</td>
</tr>
usw....
Also das Problem ist wie oben erwähnt, dass sich die Artikelltabelle nicht in der E-Mail anzeigt. Vielleicht wisst ihr an was das liegen kann. Hab schon mehrere Sachen probiert und auch gegoogelt aber nichts hat bis jetzt funktioniert.
echo $begrüßung;
In der Send.php steht dann folgendes:
[code lang=php] $company = $_POST['company'];
$name = $_POST['name'];
$adress = $_POST['adress'];
$zip_code = $_POST['zip_code'];
$city = $_POST['city'];
$country = $_POST['country'];
$phone = $_POST['phone'];
$fax = $_POST['fax'];
$email = $_POST['email'];
$message = $_POST['message'];
$artikeltabelle = $_POST['artikeltabelle'];
Wozu machst du diesen unnötigen und unsinnigen Aufwand des Umkopierens?
Also das Problem ist wie oben erwähnt, dass sich die Artikelltabelle nicht in der E-Mail anzeigt.
Wie kommt denn diese Artikeltabelle in die POST-Daten? Vielleicht willst du lieber mit einer Session arbeiten, anstatt Berge von HTML-Code durch Formulare durchzuschleifen.
echo "$verabschiedung $name";
Danke für deine schnelle Antwort.
Also hab eben die Posts weggelöscht und es stimmt war sowieso unnötig.
Ich schaue mal wie das mit den Sessions funktioniert. Bin noch nicht so sehr bewandert in sachen php.
Also ich habe jetzt mal folgendes in die Dateien reingeschrieben:
<?
session_start();
echo SID."<br>";
?>
und dann in der
<form method="post" action="shopform.php?<? echo SID ?>">
Und bekomme jetzt auf den Seiten wo diese Befehle stehn folgende Fehlermeldungen:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /sites/shop.php:9) in /home/www/web157/html/kunden/li/sites/shop.php on line 72
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /sites/shop.php on line 72
PHPSESSID=1ae948392a249a61805d39d022b15a68
line 72 ist: session_start();
Mahlzeit Xen,
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /sites/shop.php:9) in /home/www/web157/html/kunden/li/sites/shop.php on line 72
[Google ist Dein Freund](http://www.google.de/search?q=headers+already+sent+by+(output+started+at) ... (ca. 7.480.000 Fundstellen - manchmal frage ich mich wirklich, was so schwer daran ist, eine Suchmaschine zu bedienen)
MfG,
EKKi
Moin
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /sites/shop.php:9) in /home/www/web157/html/kunden/li/sites/shop.php on line 72
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /sites/shop.php on line 72
Dann hast du vor session_start() eine Ausgabe. Auch Leerzeilen gelten als Ausgabe
Gruß Bobby
Hallo
<?
session_start();
echo SID."<br>";
?>
>
> und dann in der
>
> `<form method="post" action="shopform.php?<? echo SID ?>">`{:.language-html}
>
> Und bekomme jetzt auf den Seiten wo diese Befehle stehn folgende Fehlermeldungen:
>
> Warning: session\_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /sites/shop.php:9) in /home/www/web157/html/kunden/li/sites/shop.php on line 72
>
> Warning: session\_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /sites/shop.php on line 72
> PHPSESSID=1ae948392a249a61805d39d022b15a68
>
> line 72 ist: session\_start();
Eine Session die gestartet wird, sendet einen Keks an den Browser (außer es wird explizit verboten). Dies wird im Header des zu übermittelnden Dokuments erledigt. Der Header wird \*vor\* jeglicher Ausgabe, die für den Browser gedacht ist, gesendet und durch das erste Zeichen für den Browser automatisch beendet. Mit Ausgabe ist gemeint: jeder mögliche Schnipsel von HTML-Quelltext, aber auch Leerzeichen, Zeilenumbrüche etc. pp..
Wenn session\_start erst mitten im Quelltext, an einer Stelle nach z.B. einem `echo $variable." irgendwas";`{:.language-php} notiert ist, kann der zugehörige Header nicht mehr gesendet werden und es kommen die obigen Fehlermeldungen.
Notiere alles, was einen Header sendet (z.B. eben start\_session()), am Beginn des PHP Quelltextes an geeigneter Stelle (falls es eine Vorverarbeitung geben muss) und pfriemle dich in das [EVA-Prinzip](http://de.wikipedia.org/wiki/EVA-Prinzip) rein.
Tschö, Auge
--
Die deutschen Interessen werden am Liechtenstein verteidigt.
[Veranstaltungsdatenbank Vdb 0.2](http://termindbase.auge8472.de/)
echo $begrüßung;
<form method="post" action="shopform.php?<? echo SID ?>">
Du brauchst dich um das SID-Handling normalerweise nicht zu kümmern. Das macht PHP von selbst, wenn es nicht wegkonfiguriert wurde. Ein session_start(); an den Anfang jedes Scripts (oder zumindest vor den Zugriffen auf $_SESSION - und vor jegliche Ausgabe) und dann nur mit $_SESSION[...] auf das Sessiondaten-Array zugreifen.
Und bekomme jetzt auf den Seiten wo diese Befehle stehn folgende Fehlermeldungen:
Auch wenn du PHP-Anfänger bist, du bist garantiert nicht der erste, der die dir angezeigte Fehlermeldung (egal welche es in Zukunft sein wird) zu Gesicht bekommt. Versuch bitte demnächst erst einmal selbst nach Informationen zu dem jeweiligen Fehlertext zu suchen.
echo "$verabschiedung $name";