Ich hab mal den entscheidenden Code hier dargestellt:
$a_auth = file("tn-auth", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (trim($a_auth[0]) == "tn-auth")# Dateiprüfung
{
foreach ($a_auth as $s_auth)
{
# $x[0] = Anmeldename, $x[1] = Passwort
$x = explode("↔", $s_auth, 2);
if (count($x) < 2) continue;
$b_name = trim($aa_post["bname"]) == trim($x[0]);
$b_pass = trim($aa_post["pass"]) == trim($x[1]);
# Nutzername/Passwort prüfen, Nutzer/Zeit speichern
if ($b_name && $b_pass)
{
foreach ($a_user as $s_user)
{
$patt = '/name_nutzer_b64↔(.+)(?:\s.+)*\szugang_b64↔'.$x[0].'/m';
preg_match($patt, $s_user, $treffer);
if ($treffer)
{
ob_start();
$sid = trim(substr($s_user, 0, 4), ' {}');
session_start();
$_SESSION['user_id'] = $sid;
$_SESSION['user_nm'] = trim($treffer[1]);
$insert = "gnDas Einloggen war erfolgreich!";
header('Location: pinwand_html.php');
ob_end_flush();
#include "pinwand_anm_html.php";
exit;
}
}
}
}
$insert = "Benutzername oder Passwort sind falsch<br>"
."oder das Konto existiert nicht.<br>"
."Neu versuchen oder ein neues Profil anlegen?";
include "pinwand_anm_html.php";
}
"$insert" ist die Variable, in der ich den anzuzeigenden Text übergebe (nur bei include...
) und auch nur dort wird exit;
benötigt - klar.
Vor diesem Text gibt es keine Ausgabe,
session_start();
bleibt ganz am Anfang der PHP-Datei,
ob_start();
habe ich also vor den session_start();
gesetzt.
Ändert aber nix an der fehlfunktion.
An die error.log auf dem Server komme ich vermutlich nicht 'ran, ich frage aber mal nach.
Die error.log im XAMPP habe ich gefunden - Grundgütiger! Der schreibt ja wirklich jede Meldung 'rein. Das sind über 287tsd Zeilen. Aber wenn ich alle Zeilen lösche, die nichts meinem Problem zu tun habe (nicht definierte Variablern, Ein-/Ausschalten des Servers usw.) bleiben immernoch 250 Zeilen übrig.
Nur werde ich dort keine bezügliche Fehlermeldung finden, auf XAMPP funktioniert's ja.
Ich bin schlicht ratlos...