 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.04.2008, 13:33
|
#1
|
|
TP-Senior
Registriert seit: Dec 2006
|
Formular lässt sich nicht abschicken!
Hallo,
ich experimentiere schon fast den ganzen morgen mit diesem Formmailer herum. Anfangs klappte auch alles ganz gut, aber jetzt lässt sich das Formular nicht mehr abschicken, denn ich erhalte immer diese Fehlermeldung:
Zitat:
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w****/ordnername/kontakt/formmailer.php:2) in /www/htdocs/w****/ordnername/kontakt/formmailer.php on line 203
|
Allerdings kann ich den Fehler nicht finden, oder übersehe ich einfach was?
PHP-Code:
<style type="text/css">
body {
background-color: #FFFFFF;
}
.font-big {
font-family:Verdana, sans-serif;
font-size:16px; font-weight:bold;
color:#FFFFFF;
}
.font-small {
font-family:Verdana, sans-serif;
font-size:10px; font-weight:normal;
color:#000000;
}
.table {
background-color:#FFFFFF;
width:90%;
}
.head {
background-color:#83ADDD;
}
.main {
background-color:#ECECEC;
font-family:Verdana, sans-serif;
font-size:12px; font-weight:normal;
color:#000000;
}
.foot {
background-color:#83ADDD;
}
.align {
text-align:left;
}
.textarea {
background-color:#ECECEC;
color:#000000;
font-family : Verdana, Helvetica, sans-serif;
font-size: 12px;
font-weight: bold;
border : 1px solid #808080;
}
.input {
background-color:#ECECEC;
color:#000000;
font-family : Verdana, Helvetica, sans-serif;
border : 1px solid #808080;
font-size: 12px;
}
.select {
background-color:#ECECEC;
color:#000000;
font-family : Verdana, Helvetica, sans-serif;
font-size: 12px;
}
.button {
width: 130px;
}
</style>
<script language="JavaScript" type="text/javascript">
<!--
function VerifyEmailAddress(EmailAddress) {
if (window.RegExp) {
var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,4})(\\]?)$";
var reg1 = new RegExp(reg1str);
var reg2 = new RegExp(reg2str);
if (!reg1.test(EmailAddress) && reg2.test(EmailAddress)) {
return true
}else {
return false
}
}else {
if (EmailAddress.indexOf("@") >= 0) {
return true
}else {
return false
}
}
}
function rest(a,b,c,d) {
var keyCode = d.keyCode ? d.keyCode : d.which ? d.which : d.charCode;
if (keyCode == 38 || keyCode == 40)
return;
r = (b - a.value.length);
if (r < 0)
r = 0;
if ( (e = document.getElementById(c)) != null)
e.innerHTML = r;
if (a.value.length > b) {
a.value = a.value.substr(0,b);
}
}
function check_form(f) {
if (f.elements['unternehmen_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Unternehmen)");
f.elements['unternehmen_'].focus();
return false;
}
if (f.elements['ansprechpartner_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Ansprechpartner)");
f.elements['ansprechpartner_'].focus();
return false;
}
if (f.elements['strasse_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Straße)");
f.elements['strasse_'].focus();
return false;
}
if (f.elements['adresse_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Plz Ort)");
f.elements['adresse_'].focus();
return false;
}
if (f.elements['telefon_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Telefon)");
f.elements['telefon_'].focus();
return false;
}
if (f.elements['absender_mail'].value=='') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(E-Mail)");
f.elements['absender_mail'].focus();
return false;
}else {
if (!VerifyEmailAddress(f.elements['absender_mail'].value)) {
alert("Bitte geben Sie eine gültige E-Mail Adresse ein!");
f.elements['absender_mail'].focus();
return false;
}
}
if (f.elements['webseite_'].value == '') {
alert("Bitte alle Pflichtfelder ausfüllen! \n(Webseite)");
f.elements['webseite_'].focus();
return false;
}
if (!f.elements['absender_AGB'].checked) {
alert("Bitte alle Pflichtfelder ausfüllen! \n(AGB)");
return false;
}
if (navigator.appName=="Microsoft Internet Explorer") {
for (i=0;i<f.length;i++) {
var e=f.elements[i];
if (e.type == 'submit' || e.type == 'reset')
e.disabled=true;
}
}
return true;
}
//-->
</script>
<?php
### Konfiguration ###
# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!
# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = 't.luttmann@erfolgsfaktor.mobi';
# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom = '"ANMELDUNG" <noreply@erfolgsfaktor.mobi>';
# Welchen Betreff sollen die Mails erhalten?
$strSubject = 'ANMELDUNG GRATIS ANALYSE';
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = '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;
}
?>
<form action="<?php print $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post" onsubmit="return check_form(this);">
<input type="hidden" name="pflicht" value="unternehmen_,ansprechpartner_,strasse_,adresse_,telefon_,webseite_,absender_AGB" />
<input type="hidden" name="empfaenger_mail" value="t.luttmann@erfolgsfaktor.mobi" />
<input type="hidden" name="language" value="de" />
<input type="hidden" name="page_background_color" value="#FFFFFF" />
<input type="hidden" name="page_font_color" value="#000000" />
<table align="center" class="table" border="0" cellspacing="1" cellpadding="3">
<tr>
<td colspan="2" class="head" height="17" width="100%" align="left"><span class="font-big">Anmeldung</span></td>
</tr>
<tr>
<td class="main" colspan="2" height="16" width="100%"><span class="font-small">Bitte füllen Sie alle mit * markierten Felder aus. (Pflichtfelder)</span></td>
</tr><tr>
<td class="main" width="30%"><div class="align">Unternehmen*</div></td>
<td class="main"><input class="input" type="text" name="unternehmen_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Ansprechpartner*</div></td>
<td class="main"><input class="input" type="text" name="ansprechpartner_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Straße*</div></td>
<td class="main"><input class="input" type="text" name="strasse_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Plz Ort*</div></td>
<td class="main"><input class="input" type="text" name="adresse_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Telefon*</div></td>
<td class="main"><input class="input" type="text" name="telefon_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">E-Mail*</div></td>
<td class="main"><input class="input" type="text" name="absender_mail" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Webseite*</div></td>
<td class="main"><input class="input" type="text" name="webseite_" size="20" maxlength="100" /></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Ihr Kommentar</div></td>
<td class="main">(Restzeichen: <span id="count_1">2500</span>)<br /><textarea class="textarea" name="komentar_" id="komentar_" cols="30" rows="5" onkeydown="rest(this,2500,'count_1',event)" onkeyup="rest(this,2500,'count_1',event)" onchange="rest(this,2500,'count_1',event)"></textarea>
</td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">AGB*</div></td>
<td class="main"><input type="checkbox" name="absender_AGB" id="absender_AGB" value="ja" /> <span class="main"><a href="http://www.adresse.de/agb" target="_blank">AGB's</a></span> <label for="absender_AGB">gelesen und akzeptiert</label></td>
</tr>
<tr>
<td class="main" width="30%"><div class="align">Wie haben Sie uns gefunden</div></td>
<td class="main"><select class="select" name="marketing_">
<option value="google">google</option>
<option value="Tageszeitung">Tageszeitung</option>
<option value="Empfehlung">Empfehlung</option>
<option value="Erfolgsfaktor Internet">Erfolgsfaktor Internet</option>
<option value="sonstiges">sonstiges</option>
</select>
</td>
</tr>
<tr><td class="foot" colspan="2" align="center" height="25" width="100%"><input class="button" type="submit" value="Abschicken" /> <input class="button" type="reset" value="Zurücksetzen" /></td></tr>
</table>
</form>
Wäre nett, wenn vielleicht mal jemand drüberschauen würde. Ich bin wahrscheinlich betriebsblind. 
|
|
|
09.04.2008, 14:00
|
#2
|
|
TP-Junior
Registriert seit: Apr 2008
Ort: Verden
|
Hi,
header() kannst du nur benutzen, wenn vorher nichts (weder HTML, noch CSS, noch Javascript oder sonst irgendeine Art von Text - auch keine Leerzeichen) ausgegeben wurden.
MfG, Christian
|
|
|
09.04.2008, 14:12
|
#3
|
|
TP-Senior
Registriert seit: Dec 2006
|
Zitat:
Zitat von chorn
Hi,
header() kannst du nur benutzen, wenn vorher nichts (weder HTML, noch CSS, noch Javascript oder sonst irgendeine Art von Text - auch keine Leerzeichen) ausgegeben wurden.
MfG, Christian
|
AHHH Perfekt! Tausend dank! Ich hab es rausgenommen und jetzt funktioniert es. Nur die Weiterleitung auf die Danke.html funktionert nocht nicht. Hab ich noch einen Fehler übersehen? 
|
|
|
09.04.2008, 17:37
|
#4
|
|
TP-Junior
Registriert seit: Apr 2008
Ort: Verden
|
Hi,
da du die Überprüfung der Inhalte des Formulares nur per Javascript machst, kann es natürlich passieren, dass jemand, indem er Javascript einfach deaktiviert, leere Felder abschickt. Sicher kannst du dir nur sein, wenn du die Felder serverseitig prüfen lässt.
Da alle Felder bis auf die Nachricht vorbelegt sind sehe ich auch keine Möglichkeit einer Mail-Injection.
Falls du dein Problem mit der nachfolgenden Seite beheben möchtest, brauchst du den PHP-Teil einfach nur an den Anfang der Datei legen.
MfG, Christian.
|
|
|
09.04.2008, 18:27
|
#5
|
|
TP-Specialist
Registriert seit: Jan 2004
Ort: Münster-Hiltrup
|
Hallo, bei der Dankeseite wirds wohl daran liegen, dass Du keine
HTTP-Adresse angegeben hast:
# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'http://www.deineDomain/danke.html';
Du hast definiert: $strReturnhtml = 'danke.html';
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:12 Uhr.
|
 |