Datenschutz Impressum

NOF-Schule | Forum

zur Schule NOF-NetObjects-Tutorials von Tommy Herrmann


Headers already sent error in PHP
#1
Ich weiß, ein altes Thema. 
Lade ich es hoch beim Provider,wird das Script mal genommen, mal nicht. 
(Cannot modify header information - headers already sent by (output started at...) 
Auf meinem lokalen Server gibt es keine Probleme. PHP Version 7.3 ist auf beiden Systemen gleich.

PHP-Code:
<?php
    
if(isset($_POST["submit"])){
      require("mysql.php");
      $stmt $mysql->prepare("SELECT * FROM accounts WHERE USERNAME = :user 
      AND permission = 1 "
); //Username überprüfen
      $stmt->bindParam(":user"$_POST["username"]);
      $stmt->execute();
      $count $stmt->rowCount();
      if($count == 1){
        //Username ist frei
        $row $stmt->fetch();
        if(password_verify($_POST["pw"], $row["PASSWORD"])){
          session_start();
          $_SESSION["username"] = $row["USERNAME"];
          header("Location: /languages/de_de/search_login/index_de_search.php");
        
      
    }
?>
Hier noch mein mysql.php
PHP-Code:
<?php
$host 
"...";
$name "db_event";
$user "...";
$passwort "...";
try{
    $mysql = new PDO("mysql:host=$host;dbname=$name;charset=utf8"$user$passwort);
} catch (
PDOException $e){
    echo "SQL Error: ".$e->getMessage();
}
?>
Der Fehler in mysql.php, wenn er auftritt, ist in line 12(die ist aber leer) und im oberen Code line 14.

Vielleicht dürfte ich Euch noch einmal bitten, mir bei diesem Fehler zu helfen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#2
• Also die Dateien mit der Zeichenkodierung UTF-8 (ohne Signatur).
• Befindet sich der PHP-Tag <?php ... am Anfang der Datei und sind keine Leerzeichen davor.
• Erzeugt die Abfrage der DB einen PHP-Fehler dann wird mit session_start() ein "headers already sent" ausgegeben das dann den eigentlichen Fehler verschleiert.
• Oder ist eine Variable / Funktion Online nicht vorhanden ...

Da hilft es nur das Script Stück für Stück abzuarbeiten und an bestimmten stellen Ausgaben zu machen
var_dump($variable) und exit; bevor session_start() aufgerufen wird.

Um die MySQL Fehlermeldungen anzeigen zu lassen, kann eine Ausnahmebehandlung zu PDO hinzugefügt werden:

PHP-Code:
<?php
// ...
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

$mysql = new PDO("mysql:host=$host;dbname=$name;charset=utf8"$user$passwort$options);

// Und so die MySQL Meldungen anzeigen

if ($stmt->execute()) {
  // ...
}
else {
 
print_r($stmt->errorInfo());
}
?>
Bleibt Gesund!
Werner
https://werner-zenk.de - Webseiten erstellen, optimieren und aufpeppen

Benutze zum arbeiten: Win10 (Windows Insider) - Mozilla Firefox, Microsoft Edge - EmEditor, Visual Studio Code - XAMPP/WAMP,  FileZilla, paint.net und Gimp.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#3
Zitat:Vielleicht dürfte ich Euch noch einmal bitten, mir bei diesem Fehler zu helfen.

Und wir dürften mal bitten, Feedback zu geben Rolleyes
Lieben Gruß
Barbara
--------------
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  PHP-Script Fehler: Parse error Martin73 11 1.889 19.04.2020, 17:10
Letzter Beitrag: Martin73



Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
nach oben An den Anfang der Seite scrollen
NetObjects Fusion Infos, Downloads und Updates Diese Website wird durch Bot-Trap vor Spam geschützt!