• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warning: Cannot modify header information - headers already sent by (output started a

AxelFoley

Neues Mitglied
Hi zusammen,

bekomme ständig die im Titel genannte Fehlermeldung und werde bald verrückt. Weis jmd von euch, wie ich im positiven Fall die danke.php aufrufen lassen kann und im negativen
die error.html? Danke Euch!

PHP:
<!doctype html>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="style2.css" />
<?php
   if(isset($_POST["gesendet"]))
   {
      mysql_connect("123", "123", "123"); 
      mysql_select_db("123");
      $sqlab = "insert personen (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) values "
         . "('" . $_POST["ar"] . "', "
         . "'" . $_POST["vn"] . "', "
         . "'" . $_POST["nn"] . "', "
         . "'" . $_POST["suh"] . "', "
         . "'" . $_POST["plz"] . "', "
         . "'" . $_POST["wo"] . "', "
         . "'" . $_POST["tel"] . "', "
         . "'" . $_POST["mob"] . "', "
         . "'" . $_POST["nat"] . "', "
         . "'" . $_POST["mail"] . "', "
         . "'" . $_POST["grp"] . "', "
         . "'" . $_POST["lev"] . "', "
         . "'" . $_POST["aus"] . "', "
         . "'" . $_POST["sab"] . "', "
         . "'" . $_POST["stud"] . "', "
         . "'" . $_POST["spr"] . "', "
         . "'" . $_POST["itk"] . "', "
         . "'" . $_POST["hob"] . "', "
         . "'" . $_POST["rad"] . "', "
         . $_POST["verf"] . ", "
         . "'" . $_POST["geh"] . "', "
         . "'" . $_POST["gt"] . "')";

      mysql_query($sqlab);

      if(mysql_affected_rows() > 0)
         header ("location: danke.php");
      else
         header ("location: error.html");
   }
?>
</head>
 
Nein, "nach ganz oben" heißt vor dem sichtbaren Element Doctype und ggfs. auch vor irgendwelche anderen unsichtbaren Zeichen.
 
Dirty-Lösung:

Statt des header ein:
PHP:
   ?><meta http-equiv="refresh" content="0;URL=danke.php"><?PHP
 
oder in die erste zeile:
PHP:
ob_start();
dann ganz normal deinen code
und in die letzte zeile:
PHP:
ob_end_flush()
wenn du wissen willst, was da passiert am besten mal auf php.net nachschauen.
 
Leute, bitte, sowohl der Meta-Tag als auch der Käse mit dem Output-Buffering ist absolut nicht nötig. Einfach mal das EVA-Prinzip beachten und alles wird gut.
 
Also, php code vor alles stellen (also vor den doctype) bringt nichts, Fehler kommt weiterhin...
Meta-Tag --> Wirklich eine dirty Lösung, mein Formular wird mir gefühlte 0,5 Sekunden angezeigt und dann werde ich sofort auf die error.html weitergeleitet
Output-Buffering --> selbe Fehlermeldung nach wie vor

@bdt600: EA-Prinzip?

LG

Was ich ja generell nicht verstehe, wieso funzt das ganze Konsturkt mit xampp und localhost aber live nicht?
 
So schwer?
PHP:
<?php
   if(isset($_POST["gesendet"]))
   {
      mysql_connect("123", "123", "123"); 
      mysql_select_db("123");
      $sqlab = "insert personen (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22) values "
         . "('" . $_POST["ar"] . "', "
         . "'" . $_POST["vn"] . "', "
         . "'" . $_POST["nn"] . "', "
         . "'" . $_POST["suh"] . "', "
         . "'" . $_POST["plz"] . "', "
         . "'" . $_POST["wo"] . "', "
         . "'" . $_POST["tel"] . "', "
         . "'" . $_POST["mob"] . "', "
         . "'" . $_POST["nat"] . "', "
         . "'" . $_POST["mail"] . "', "
         . "'" . $_POST["grp"] . "', "
         . "'" . $_POST["lev"] . "', "
         . "'" . $_POST["aus"] . "', "
         . "'" . $_POST["sab"] . "', "
         . "'" . $_POST["stud"] . "', "
         . "'" . $_POST["spr"] . "', "
         . "'" . $_POST["itk"] . "', "
         . "'" . $_POST["hob"] . "', "
         . "'" . $_POST["rad"] . "', "
         . $_POST["verf"] . ", "
         . "'" . $_POST["geh"] . "', "
         . "'" . $_POST["gt"] . "')";

      mysql_query($sqlab);

      if(mysql_affected_rows() > 0)
         header ("location: danke.php");
      else
         header ("location: error.html");
   }
?>
<!doctype html>
<html>
<head>
<title>test</title>
<link rel="stylesheet" type="text/css" href="style2.css" />
</head>
Wenn der Fehler immernoch auftritt, stimmt was mit deiner SQL Verbindung nicht und diese gibt einen Fehler aus!

EVA = Eingabe, Verarbeitung, Ausgabe

MfG

//EDIT
Was ich ja generell nicht verstehe, wieso funzt das ganze Konsturkt mit xampp und localhost aber live nicht?
Weil dein mysql befehl falsch ist und xampp keine fehler dazu ausgibt?
 
Zuletzt bearbeitet:
Danke, genau die Variante hatte ich versucht und es hat nicht hingehauen :-(
SQL-Verbindung steht wie ne eins :-)

Habe jetzt folgendes versucht:

PHP:
<?php


require_once('form_logic.php');
require_once('form_markup.php');


?>

PHP Code liegt in form_logic.php und der rest in form_markup.php. Der Witz ist, ich habe die form.php (siehe Auszug oben) mit ANSI statt UTF-8 gepseichert und es funzt! Die Schattenseite: öüä wird nun nicht korrekt ausgegeben...

Mit UTF-8 bin ich natürlich wieder beim Ausgangsproblem, es ist zum in Luft gehen...
 
Sind wirklich alle Dateien im UTF-8-Format? Ist der Zeichensatz in der DB wirklich UTF-8? Sagst du MySQL im Script, dass du die Daten im UTF-8-Format erwartest?

PHP:
mysql_query("SET NAMES 'utf8'");
 
also um Verwirrungen zu vermeiden, die DB Abfrage funzt, war zwar wirklich nicht in UTF-8 angelegt, aber das sollte glaube ich auch nix mit Cannot modify... zu tun haben. Habe jetzt auch die DB in UTF-8 umgetellt, das script erweitert, aber alles funzt nur, wenn ich die form.php in ANSI formatiere. Stelle ich wieder auf UTF-8 um kommt wieder die alt bekannte Fehlermeldung

@CGollhardt, sorry bin absoluter Newbie in Sachen PHP und HTML, was ist ein Bom?
 
ja, wenn ich im Browser google.de eingebe kommt so ne komische Cannot modify Meldung :grin:

Danke für den Link :-)

Habe kein Bom gespeichert
 
Zurück
Oben