2009-01-19 13 views
6

Ich habe eine Website, die PHP-und HTML-Seiten verwendet, möchte ich eine Sitzung erstellen, die einen Benutzernamen von der Anmeldeseite speichert. Aber die Login-Seiten sind PHP und die nächsten Seiten sind HTML.PHP-Sitzungen mit HTML

Ist das ein Problem oder kann ich nur eine kleine Anweisung von PHP in die HTML-Seite hinzufügen, sagen

<?PHP session_start(); 
$_session['loginid']=$_post['username']; 
?> 

Oder bin ich es falsch?

Dies ist das erste Mal, dass ich Sitzungen verwendet habe und sie mich ein wenig verwirren.

danke für jede Hilfe.

Antwort

9

Wenn Sie Zugriff auf Ihre Apache-Konfiguration haben, oder eine einfache .htaccess-Datei, können Sie Apache sagen, PHP-Code innerhalb einer HTML-Datei zu behandeln. Sie können dies tun, indem sie eine .htaccess Datei erstellen auf dem Dokument Wurzel der Site (wahrscheinlich public_html /) und setzt diese hinein (Sie erinnern sich die (dot) als erstes Zeichen in diesem Dateinamen.):

# Add this to public_html/.htaccess file 
AddHandler application/x-httpd-php .html 
AddHandler application/x-httpd-php .htm 

Sie sollten in der Lage sein, die HTML-Seite neu zu laden und Ihr PHP-Code (von Michael Matthews Antwort) wird großartig laufen.

+0

Natürlich vergessen Sie nicht, dass das Parsen jeder HTML-Seite mit der PHP-Engine eine kleine Verlangsamung ist, aber wahrscheinlich nicht eine, die Sie jemals bemerken würden. – TravisO

+0

Ich stimme zu, obwohl es nur eine Verlangsamung ist, wenn Sie irgendwelche Seiten auf der Website haben, die wirklich statisch sind. Ansonsten ist es genau das Gleiche wie alles unter einer .php-Erweiterung. – localshred

3

Da die Sitzungen von PHP verarbeitet werden, benötigt PHP den Status. Sie benötigen mindestens session_start(), um die Sitzungsvariablen zu verwenden, die in $_SESSION gespeichert sind.

1

Sie können PHP nicht in .html-Dateien einfügen, ohne mit den Konfigurationsdateien Ihres Servers herumzuspielen. Sie sollten PHP nur in .php-Dateien einfügen.

Wenn Sie viele .html-Dateien haben, können Sie sie einfach in .php-Dateien umbenennen. Es ist in Ordnung, reines HTML in something.php zu setzen. Sie sollten also sicherstellen, dass alle Ihre Dateien mit .php enden, und dann können Sie jede gewünschte Session-Logik in sie einfügen.

5

Sie versuchen, eine PHP-Sitzungsvariable mit einer Seite vom Typ text/html zu teilen. Wie Sie vorgeschlagen haben, müssen Sie die HTML-Seite zu einer PHP-Seite machen, damit dies funktioniert, und irgendwo ein kleines Stück PHP hinzufügen, um den Benutzernamen anzuzeigen.

Ändern Sie Ihre HTML-Seite in PHP. Ganz oben auf der Seite etwas wie folgt hinzu:

<?php 
    session_start(); // must be before any output 
    $username = $_SESSION['username']; // or whatever you called it 
    // check that $username is valid here (safe to display) 
?> 
html here 
Hello <?= $username ?>! 
+0

Beachten Sie, dass dies kurze Tags erfordert, um maximale Unterstützung zu nutzen: in der letzten Zeile. Wie gesagt, passe darauf hin, HTML-Tags von $ username dort zu bereinigen. Andernfalls werden sie auf Ihrer Seite angezeigt (XSS) –