ich habe ein Login code in meiner Webseite integriert die auf PHP geschrieben ist.
Ich würde es aber gerne von einem seperaten Datei (.php) in meine HTML index.html rufen.
Ich habe das Befehl include benutzt aber es funkt nicht!! was meche ich falsch??
<?php include 'datei.html'; ?\>
login.php:
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { session\_start();
$username = $\_POST['username'];
$passwort = $\_POST['passwort'];
$hostname = $\_SERVER['HTTP\_HOST'];
$path = dirname($\_SERVER['PHP\_SELF']);
// Benutzername und Passwort werden überprüft
if ($username == 'benjamin' && $passwort == 'geheim') {
$\_SESSION['angemeldet'] = true;
// Weiterleitung zur geschützten Startseite
if ($\_SERVER['SERVER\_PROTOCOL'] == 'HTTP/1.1') {
if (php\_sapi\_name() == 'cgi') {
header('Status: 303 See Other');
}
else {
header('HTTP/1.1 303 See Other');
}
}
header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
exit;
}
}
?\>Geschützter Bereich
Username:
Passwort:
Danke euch!!!
hi gazale,
da steht include ‚datei.html‘;
Soll das nicht datei.php heißen?
Stimmt der Pfad, liegen die datei.xxx und index.html auf gleicher Ebene?
Gruß, Regina
Leider schreibst du keine Infos zu dem Fehler an sich, was die Lösungssuche naturgemäß schwierig gestaltet. Ich würde mit dem include-Aufruf anfangen, da mir nicht bekannt ist, dass man html-Dateien includen kann. Hier die Info zum Include-Befehl: http://php.net/manual/de/function.include.php
ich habe leider nicht ganz verstanden, was du jetzt genau wo einfügen möchtest.
Wichtig ist:
Wenn du header() nutzen willst um weiterzuleiten, darfst du vorher nichts ausgeben. Diesen Part also irgendwo in einer HTML-Datei auszugeben wird nicht klappen.
Du kannst include() oder readfile() verwenden.
include() erwartet eine reguläre PHP-Datei, die ausgeführt wird. Wenn die kein echo oder sonst eine Ausgabe enthält, siehst du eventuell nix.
readfile() gibt einfach alles aus, was in der Datei ist.
Ich nehme an, du brauchst readfile() für das, was du tun möchtest.
ich kann mir vorstellen, dass das mit deinem include zusammenhängt.
Der Header muss das Allererste sein, was beim Generieren der Webseite erzeugt wird. Da du ja aber bereits oben den kompletten Quelltext aus der datei.html einfügst, ist der Header nicht mehr am Anfang der Datei. PHP bricht in diesem Fall mit einer Fehlermeldung ab.
Wenn du auf einem produktiven Server entwickelst, sind Fehlermeldungen vermutlich deaktiviert (deshalb siehst du auch nix).
Entweder du aktivierst die Fehlermdeldungen, oder du installierst dir zuhause zum Entwickeln XAMPP auf deinem Rechner. Bei XAMPP sind die Fehler standardmäßig sichtbar.