2009-01-19 20 views
6

Tengo un sitio web que usa páginas PHP y HTML, quiero crear una sesión que almacene un nombre de usuario desde la página de inicio de sesión. Pero las páginas de inicio de sesión son php y las siguientes páginas son html.Sesiones PHP con HTML

Es esto un problema o puede que acabo de añadir una pequeña exposición de PHP en la página HTML diciendo

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

o estoy haciendo mal?

Esta es la primera vez que uso sesiones y me confunden un poco.

gracias por cualquier ayuda.

Respuesta

9

Si usted tiene acceso a la configuración de Apache, o un archivo .htaccess simple, puede indicarle a Apache para manejar código PHP dentro de un archivo .html. Usted puede hacer esto mediante la creación de un archivo .htaccess en la raíz de documentos del sitio (probablemente public_html /) y poner esto en él (recordemos el (punto) como primer carácter en ese nombre de archivo.):

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

Deberías poder volver a cargar la página html y tu código PHP (de la respuesta de Michael Matthews) funcionará muy bien.

+0

Por supuesto, no olvide que el análisis de cada página HTML con el motor PHP es una desaceleración menor, pero probablemente nunca se note. – TravisO

+0

Acepto, aunque solo es una desaceleración si tiene páginas en el sitio que realmente son estáticas. De lo contrario, es exactamente lo mismo que hacer todo bajo una extensión .php. – localshred

3

Como las sesiones son manejadas por PHP, necesita PHP para mantener el estado. Necesita al menos session_start() para usar las variables de sesión almacenadas en $_SESSION.

1

No puede poner php en archivos .html sin jugar con los archivos de configuración de su servidor. Solo debes poner php en archivos .php.

Si tiene muchos archivos .html, simplemente puede cambiarles el nombre a archivos .php. Está bien poner html puro en something.php. Por lo tanto, debe asegurarse de que todos sus archivos terminen en .php y luego puede incluir en ellos la lógica de sesión que desee.

5

Está tratando de compartir una variable de sesión de PHP con una página de tipo texto/html. Como sugirió, debe hacer que la página HTML sea una página PHP para que esto funcione y agregar un pequeño fragmento de PHP en algún lugar para mostrar el nombre de usuario.

Cambie su página HTML a PHP. En la parte superior de la página añadir algo como esto:

<?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

Tenga en cuenta que esto requiere short-tags, para un uso máximo de soporte: en la última línea. También como se dijo, asegúrese de limpiar las etiquetas HTML de $ nombre de usuario allí. De lo contrario, se mostrarán en su página (XSS) –