Problem mit Kontaktformular

M

MAC4-EVER

Aktives Mitglied
Thread Starter
Dabei seit
02.10.2005
Beiträge
184
Reaktionspunkte
7
Hallo Community,

Ich habe folgendes Problem mit meinem Kontaktformular. Immer wenn es gesendet werden sollte kommt diese Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /home/matteoba/www/matteobaschera.ch/de_navigation.php:11) in /home/matteoba/www/matteobaschera.ch/dekontaktkontaktformular.php on line 20

Hier die betreffende Zeilen aus den Dokumenten:
(Navigation)
PHP:
<div class="menu">
  <ul>
  	<li><a href="http://matteobaschera.ch/index.php?lang=de&page=start">Start</a></li>
      <!--[if IE 7]><!--><!--<![endif]--><!--[if lte IE 6]></a><![endif]-->
    <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=vita&sub=ueber_mich">Vita
      <!--[if IE 7]><!--></a><!--<![endif]-->
        <table>
              <td>
              <ul>
                  <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=vita&sub=ueber_mich" title="">&Uuml;ber mich</a></li>

(Kontaktformular)
PHP:
<?php
if(isset($_GET['action']) != "" && !empty($_POST['vorname']) && !empty($_POST['nachname']) && !empty($_POST['message']) && ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
setcookie("spam_protection", "spam_protection", time()+500);
}
$Zahl_1 = intval(rand(1, 5));
$Zahl_2 = intval(rand(1, 5));
?>
        </p>
        <div id="text">
          <p>
            <?php

Danke für Eure Hilfe
MAC4-EVER
 
@E-Mail: Übersehe ich da was oder ist dort auch ein Escape zu viel? \\.

name@domain\.de

IP-Adressen statt Domain-Namen sind meines Wissens nach auch erlaubt.
 
hmm Ok, aber was muss ich nun verändern, damit dies nicht mehr passier ?

Sorry, bin noch PHP anfänger.

MAC4-EVER
 
setcookie muss einfach nur aufgerufen werden bevor irgend etwas ausgegeben wird. Also vor jeglichen Tags, Zeilenumbrüchen und Leerzeichen.
 
Kannst du mir ein Beispiel dafür machen ?
Habe selber keinen Erfolg gehabt ? :)

MAC4-EVER
 
PHP:
if(isset($_GET['action']) != "" && !empty($_POST['vorname']) && !empty($_POST['nachname']) && !empty($_POST['message']) && ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$", $_POST['email']))
{
setcookie("spam_protection", "spam_protection", time()+500);
}

Das muss ganz oben in die Seite, bevor Du HTML-Code ausgibst. Am Besten direkt in die erste Zeile.

Der Cookie wird mit dem HTTP-Header gesendet. Und wenn du bereits HTML-Code auslieferst, lässt sich der Header nicht mehr verändern.

PHP:
$Zahl_1 = intval(rand(1, 5));

Wofür brauchst Du hier das intval()? rand() hat als Rückgabewert grundsätzlich einen Integer, das intval() ist also überflüssig.
 
Ich danke dir für deine Hilfe.

Das Problem besteht leider immer no.

Also die ganze Webseite wird über php include (index.php) gesteuert.

Nun liegt das problem ja immer in der Navigationsdatei

PHP:
<link href="screen.css" rel="stylesheet" type="text/css" media="screen">
<body><div class="menu">
  <ul>
  	<li><a href="http://matteobaschera.ch/index.php?lang=de&page=start">Start</a></li>
      <!--[if IE 7]><!--><!--<![endif]--><!--[if lte IE 6]></a><![endif]-->
    <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=vita&sub=ueber_mich">Vita
      <!--[if IE 7]><!--></a><!--<![endif]-->
        <table>
              <ul>
                  <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=vita&sub=ueber_mich" title="">&Uuml;ber mich</a></li>
                <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=vita&sub=cv" title="">Lebenslauf</a></li>
              </ul></td>
            </tr>
          </tbody>
        </table>
      <!--[if lte IE 6]></a><![endif]-->
    </li>
    <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=fotografie&sub=equipment">Fotografie
      <!--[if IE 7]><!--></a><!--<![endif]-->
        <table>
          <tbody>
            <tr>
              <td><ul>
                  <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=fotografie&sub=equipment" title="">Equipment</a></li>
                <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=fotografie&sub=preise" title="">Preise</a></li>
                <li><a href="http://www.matteobaschera.ch/index.php?lang=de&page=fotografie&sub=news" title="">News</a></li>
              </ul></td>
            </tr>
          </tbody>
        </table>

Muss dein Code in die Index.php datei ? und was muss noch genau im Kontaktformular selber stehen ?

Danke vielmals für deine Hilfe
MAC4-EVER
 
Also die ganze Webseite wird über php include (index.php) gesteuert.

Da haben wir das Problem. Das gehts so natürlich nicht, denn die index.php gibt ja sicherlich auch Zeichen aus.

Mach mal folgendes:
Gaaaanz am Anfang der index.php kommt folgende Zeile:
Code:
<?php ob_start();?>
Und gaaaanz am Ende kommt folgende Zeile:
Code:
<?php ob_end_flush();?>
Dann kannst Du an egal welcher Stelle im Code Deinen Cookie setzen.
 
@ dms

Herzlichen Dank. Es funktioniert (endlich).

gruss
MAC4-EVER
 
Zurück
Oben Unten