Foros del Web » Programando para Internet » PHP »

Dara formato CSS a PHP con un session_start()

Estas en el tema de Dara formato CSS a PHP con un session_start() en el foro de PHP en Foros del Web. Hola. Tengo un código PHP, tal que así, que básicamente lo que hace es llevarte a la página de administrador si la contraseña y el ...
  #1 (permalink)  
Antiguo 07/09/2011, 18:24
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Exclamación Dara formato CSS a PHP con un session_start()

Hola.

Tengo un código PHP, tal que así, que básicamente lo que hace es llevarte a la página de administrador si la contraseña y el usuario son correctos.


Código PHP:
<?php 
include("conexion.php"); 
session_start();

$usuario $_POST['usuario'];
$contrasena $_POST['contrasena'];

if (
$usuario && $contrasena)
{
$resultado mysql_query("SELECT * FROM administrar WHERE usuario='$usuario' AND contrasena='$contrasena'");
if (
mysql_num_rows($resultado)>0)
    {
    
//Si encuentra coincidencias asigna el $usuario a la variable "usuario_valido" y registra ésta última.
    
$_SESSION['usuario_valido']=$usuario;
    }
}

//Si "usuario_vaido ha quedado registrado, porque se ha encontrado el usuario y contraseña, entonces redirige a la página privada
if (isset($_SESSION['usuario_valido']) && !empty($_SESSION['usuario_valido']))
{
header("Location: admin.php");
exit;
// ese exit lo ponemos para asegurar que no se ejucatará más código después de él
}

echo (
"<form method='post' action='$PHP_SELF'>
      Usuario</br><input type='text' name='usuario'></br>
      Clave</br><input type='text' name='contrasena'></br></br>
      <input type='submit' name='Submit' value='Entrar'>
    </form>"
);
 
echo (
"<a href=\"email.php\">¿Olvidó la contraseña?</a>");

?>


Lo que quiero, es darle formato con CSS a eso. Así que he incluido este código, como en otros archivos PHP, al principio del todo:

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php include("title.php")?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>

<body>

Código PHP:
<?php //Aquí iría el código de arriba ?>
</body> </html>

El problema es que, da error. Por lo que he leido, si metes código antes del "session_start", entonces da un error.

¿Cómo podría darle formato con la hoja de estilos css a la página? He probado haciendo esto:

Código:
Código PHP:
<?php  include("conexion.php");  session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title><?php include("title.php")?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="estilo.css" rel="stylesheet" type="text/css" /> </head> <body>
Código PHP:
<?php //Resto código ?>
</body> </html>

Y eso tampoco funciona. Muchas gracias : )
  #2 (permalink)  
Antiguo 07/09/2011, 18:47
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Dara formato CSS a PHP con un session_start()

Y si prueba a ponerlo así:

Código PHP:
Ver original
  1. <?php  session_start(); include("conexion.php"); ?>

Además como bien dices, no puede haber ningún texto que se imprima aunque sea un simple espacio que se quede antes de <?php, antes de declarar session_start();
  #3 (permalink)  
Antiguo 07/09/2011, 19:13
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Respuesta: Dara formato CSS a PHP con un session_start()

Cita:
Iniciado por hasdpk Ver Mensaje
Y si prueba a ponerlo así:

Código PHP:
Ver original
  1. <?php  session_start(); include("conexion.php"); ?>

Además como bien dices, no puede haber ningún texto que se imprima aunque sea un simple espacio que se quede antes de <?php, antes de declarar session_start();
He probado así y da un error. He puesto el código de la siguiente forma:

Código PHP:
<?php session_start(); include("conexion.php"); ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><?php include("title.php")?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>


<body>

<?php 
if (isset($_SESSION['usuario_valido']) && !empty($_SESSION['usuario_valido']))
{


//Si "copia" NO está vacio entonces es porque vengo de Editar.php y trae un valor y por tanto actualizar (si está vacio no actualices)
if(!empty($_POST['copia'])) 
{
$precioCopia=$_POST["copia"];
$precioCopia=str_replace(",",".",$precioCopia); //Cambia la "," (coma) por el "." (punto) dentro de lo que haya en la variable
$queryCopiasprintf("UPDATE precios SET copia='$precioCopia' WHERE ID=1"mysql_real_escape_string($precioCopia));
$actualizarCopia= @mysql_query($queryCopia);
if (!
$actualizarCopia) {
echo (
"Error al cambiar el precio de la copia. Inténtelo pasados unos segundos");
exit();
}
}

//Si "color" NO está vacio entonces es porque vengo de Editar.php y trae un valor y por tanto actualizar (si está vacio no actualices)
if(!empty($_POST['color'])) 
{
$precioColor=$_POST["color"];
$precioColor=str_replace(",",".",$precioColor); //Cambia la "," (coma) por el "." (punto) dentro de lo que haya en la variable
$queryColorsprintf("UPDATE precios SET color='$precioColor' WHERE ID=1"mysql_real_escape_string($precioColor));
$actualizarColor= @mysql_query($queryColor);
if (!
$actualizarColor) {
echo (
"Error al cambiar el precio del color. Inténtelo pasados unos segundos");
exit();
}
}

//Si "encuadernacion" NO está vacio entonces es porque vengo de Editar.php y trae un valor y por tanto actualizar (si está vacio no actualices)
if(!empty($_POST['encuadernacion'])) 
{
$precioEncuadernacion=$_POST["encuadernacion"];
$precioEncuadernacion=str_replace(",",".",$precioEncuadernacion); //Cambia la "," (coma) por el "." (punto) dentro de lo que haya en la variable
$queryEncuadernacionsprintf("UPDATE precios SET encuadernacion='$precioEncuadernacion' WHERE ID=1"mysql_real_escape_string($precioEncuadernacion));
$actualizarEncuadernacion= @mysql_query($queryEncuadernacion);
if (!
$actualizarEncuadernacion) {
echo (
"Error al cambiar el precio de la copia. Inténtelo pasados unos segundos");
exit();
}
}


//busqueda en la base de datos
$busqueda= @mysql_query("SELECT copia, color, encuadernacion FROM precios WHERE ID=1");
if (!
$busqueda) {
echo (
"Error al <b>seleccionar</b> los elementos de la base de datos. Inténtelo más tarde");
exit();
}

//mostrar por pantalla
while ($row mysql_fetch_array($busqueda))
{
echo (
"Precio copia: ".$row["copia"]. "</br>"."Precio color: ".$row["color"]. "</br>"."Precio encuadernacion: ".$row["encuadernacion"]);
}


echo (
"</br></br><a href=\"editar.php\">Editar precios</a></br><a href=\"editarperfil.php\">Editar tu contraseña y correo</a></br><a href=\"logout.php\">Cerrar sesión</a>");
}
else
{
echo(
"No estas logueado");
}


?>
[B]</body>
</html>[/B]

Da el siguiente fallo:


Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\proyectos\login.php:7) in C:\AppServ\www\proyectos\login.php on line 33

La línea 33 es la de:
header("Location: admin.php");


El archivo admin.php tiene la misma estructura que este, con el session_start al principio...
  #4 (permalink)  
Antiguo 07/09/2011, 19:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Dara formato CSS a PHP con un session_start()

y ¿en Login.php en la línea 7 que tienes?
  #5 (permalink)  
Antiguo 07/09/2011, 19:25
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años
Puntos: 0
Respuesta: Dara formato CSS a PHP con un session_start()

Cita:
Iniciado por GatorV Ver Mensaje
y ¿en Login.php en la línea 7 que tienes?

El login.php es el código de arriba. La línea 7 es esta:


Código:
<title><?php include("title.php")?></title>
Y title.php contiene este codigo:

Código:
<?php
echo("Titulo de la web");
?>
Que lo uso para que así cambie el título de todas las páginas y no tener que ir de una en una.
  #6 (permalink)  
Antiguo 07/09/2011, 19:26
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Dara formato CSS a PHP con un session_start()

Exacto, session_start() y header() modifican la información de la cabeza, si uno la toca, el otro se enfada.

Tienes que tener algo mal antes de la línea 33 de "login.php", ya que ese header no se va a reproducir por si sólo, lo tendrás en alguna condicional.

Según dices es este código:

Código PHP:
Ver original
  1. if (isset($_SESSION['usuario_valido']) && !empty($_SESSION['usuario_valido']))
  2. {
  3. header("Location: admin.php");
  4. // ese exit lo ponemos para asegurar que no se ejucatará más código después de él
  5. }

Yo lo modificaría a la siguiente forma:

Código PHP:
Ver original
  1. if($_SESSION['usuario_valido'])  {
  2.     header("Location: admin.php");
  3.     exit;
  4. }

A ver si te funciona, aunque sinceramente, no creo que sea esto.
  #7 (permalink)  
Antiguo 07/09/2011, 19:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Dara formato CSS a PHP con un session_start()

Exacto no puedes hacer un header() después de enviar contenido HTML (en este caso tu <title>).

Saludos.

Etiquetas: css, formato, html, mysql, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:01.