Foros del Web » Programando para Internet » PHP »

Problemas con Sesion()

Estas en el tema de Problemas con Sesion() en el foro de PHP en Foros del Web. Bueno tengo una conexiòn a una BD en MySQL, pero el problema es que cuando un ingreso mi usuario y mi clave me dice que: ...
  #1 (permalink)  
Antiguo 23/11/2005, 22:02
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Problemas con Sesion()

Bueno tengo una conexiòn a una BD en MySQL, pero el problema es que cuando un ingreso mi usuario y mi clave me dice que:
Cita:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 76

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 76

Warning: Cannot modify header information - headers already sent by (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 100
y nose que hacer, esta aplicaciòn me la pasaron los amigos del foro, pero yo le he dado algunas modificaciones, ahora en mi casa funciona bien(en mi casa tengo el Appserv, y no tengo conexiòn a internet), pero cuando lo levanto al servidor surge el problema cambie los usuario y las claves para levantar al servidor, y supongo que estan bien los datos porque no sale error en el "mysql_connect". Ojala que puedan ayudarme, gracias.

Ahh, me olvidaba en otro formulario me aparece tambienpero esto:
Cita:
Usuario Aceptado, prosiga...
Warning: Cannot modify header information - headers already sent by (output started at /home2/jgamarra/public_html/verificar_user.php:11) in /home2/jgamarra/public_html/verificar_user.php on line 82
Y en el primer error (linea 11) esta lo siguiente:
<script language='javascript'>
Y el 2ª error esta lo siguiente
header("Location: adduser.php?var=$verifica");
__________________
http://about.me/jemano

Última edición por Nova; 23/11/2005 a las 22:08
  #2 (permalink)  
Antiguo 24/11/2005, 06:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
aut_config.inc.php:2

En ese script .. linea 2 tienes un espacio .. salto de línea o algo de HTML/echo "algo" antes de <? .. o al final de ?>

Todo el resto de errores sobre cabeceras van en cadena por este.

El otro error de otro script:
verificar_user.php:11


Lo mismo, . .en la línea 11 tienes algo de HTML/javascript . .etc como ese que indicas:
<script language='javascript'>

Antes de un header() NO Corresponde NADA de html ni javascript .. tendrás que reordenar tu código para que NO se origine esa "salida" (tu javascirpt HTML .. etc) en ese punto del script, si indicas el código completo que usas tal vez te podrámos orientar sobre este punto.

El objetivo de un "header()" y sobre todo de "Location" es "redireccionar" a otro script y dejar de ejecutar el que estás en curso. Esa cabecera HTTP ("location") se envia -antes- por parte de PHP que cualquier otra salida que puedas generar: HTML, javascript .. etc. por ende NO tiene sentido nada de HTML, javascript .. etc antes de un header() por qué NUNCA se llegará a interpretar .. ese script ha de ser "puro" de proceso PHP.

Un saludo,
  #3 (permalink)  
Antiguo 24/11/2005, 10:00
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Ok amigo pero me gustaria saber porque funciona bien en mi host local (de mi casa), y cuando lo levanto ya no funciona,...
__________________
http://about.me/jemano
  #4 (permalink)  
Antiguo 24/11/2005, 10:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando subes tus archivos a tu servidor .. editas algún archivo ? sobre todo ese aut_config.inc.php para cabiar por ejemplo datos de conexión de las BD .. etc?

Podría ser también diferencias de configuración de PHP con respecto al tratamiento del buffer de salida de PHP .. Tal vez la directiva:

output_buffering a ON en tu casa? (o 1)
http://www.php.net/manual/es/ref.outcontrol.php

Un saludo,
  #5 (permalink)  
Antiguo 24/11/2005, 11:05
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Claro amigo como dices solo cambio el tipo de conexión como el:
User, Password, pero el caso es que en esas linas no sale error sino en otras, voy a chekar la direccion que me dices
__________________
http://about.me/jemano
  #6 (permalink)  
Antiguo 24/11/2005, 11:10
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Información

Bueno cheke la web y no entiendo mucho, pero me puedes dar unos tips para que pueda configurar mi host, para lo que me dijiste??
Cita:
output_buffering a ON en tu casa? (o 1)
http://www.php.net/manual/es/ref.outcontrol.php

Un saludo,
__________________
http://about.me/jemano
  #7 (permalink)  
Antiguo 24/11/2005, 11:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ese tipo de configuración la puedes ajustar usando:

ini_set()
www.php.net/ini_set

(si es que se puede .. revisa en la lista de direcitvas de PHP si puedes hacerlo así).

Pero, de todas formas NOOOOOOOOOOO deberías solventar un problema de cabeceras (esos errores con header()) de esa forma .. Por favor .. date el tiempo de ordenar tu código y entender (puesdes preguntar) como funciona el tema.

Un saludo,
  #8 (permalink)  
Antiguo 24/11/2005, 15:02
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Aqui esta el codigo de aut_verifica.inc.php
Código PHP:
1.    <?
2.    
require ("aut_config.inc.php");
3.    $url explode("?",$_SERVER['HTTP_REFERER']);
4.    $pag_referida=$url[0];
5.    $redir=$pag_referida;
6.    if ($_SERVER['HTTP_REFERER'] == ""){
7.    die ("Error cod.:1 - Acceso incorrecto!");
8.    exit;
9.    }
10.    if (isset($_POST['user']) && isset($_POST['pass'])) {
11.    $db_conexionmysql_connect("$sql_host""$sql_usuario""$sql_pass") or die(header ("Location:  $redir?error_login=0"));
12.    mysql_select_db("$sql_db");
13.    $usuario_consulta mysql_query("SELECT cod_modular,usuario,pass,nivel_acceso FROM $sql_tabla WHERE usuario='".$_POST['user']."'") or die(header ("Location:  $redir?error_login=1"));
14.    if (mysql_num_rows($usuario_consulta) != 0) {
15.    $login stripslashes($_POST['user']);
16.    $password md5($_POST['pass']);
17.    $usuario_datos mysql_fetch_array($usuario_consulta);
18.    mysql_free_result($usuario_consulta);
19.    mysql_close($db_conexion);
20.    if ($login != $usuario_datos['usuario']) {
21.    Header ("Location: $redir?error_login=4");
i.    exit;
22.    }
23.    if ($password != $usuario_datos['pass']) {
24.    Header ("Location: $redir?error_login=3");
a.    exit;}
25.    unset($login);
26.    unset ($password);
27.    session_name($usuarios_sesion);
28.    session_start();
29.    session_cache_limiter('nocache,private');
30.    $_SESSION['usuario_id']=$usuario_datos['cod_modular'];
31.    $_SESSION['usuario_nivel']=$usuario_datos['nivel_acceso'];
32.    $_SESSION['usuario_login']=$usuario_datos['usuario'];
33.    $_SESSION['usuario_password']=$usuario_datos['pass'];
34.    $pag=$_SERVER['PHP_SELF'];
35.    header ("Location:$pag?");
36.    exit;
37.    } else {
38.    header ("Location:$redir?error_login=2");
39.    exit;}
40.    } else {
41.    session_name($usuarios_sesion);
42.    session_start();
43.    if (!isset($_SESSION['usuario_login']) && !isset($_SESSION['usuario_password'])){
44.    session_destroy();
45.    die ("Error cod.: 2 - Acceso incorrecto!");
46.    exit;
47.    }
48.    }
49.    ?>
Y los errores son los siguientes:
Cita:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 30

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 37
__________________
http://about.me/jemano
  #9 (permalink)  
Antiguo 24/11/2005, 15:26
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Información

Aqui el archivo verifica_user.php
http://www.fondoverde.org/archivo.txt

Aqui los errores de verifica_user.php:
Cita:
Usuario Aceptado, prosiga...
Warning: Cannot modify header information - headers already sent by (output started at /home2/jgamarra/public_html/verificar_user.php:10) in /home2/jgamarra/public_html/verificar_user.php on line 76
POR FAVOR AYUDENME
__________________
http://about.me/jemano

Última edición por Nova; 24/11/2005 a las 15:37
  #10 (permalink)  
Antiguo 25/11/2005, 05:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te dije que los mensajes de error se producen en los scripts que llamas en ese.

Revisalo bien .. por qué los errores se producen donde DICE!:
output started at /home2/jgamarra/public_html/login/aut_config.inc.php:2

Lo que dice "nombre_Script.php:n°" se refiere a cierto script (incluso te dá la ruta) y el n° es el n° de línea que origina el problema!!!.

Esto no puedes hacerlo:
"Usuario Aceptado, prosiga..."

Es decir, mostrar un mensaje y luego hacer header() .. La redirección es y debe ser automática .. sin mensajes ni avisos ni nada de HTML .. NO corresponde. Si tu quieres mostrar un mensaje de error o aviso .. debes hacerlo en la página que REDIRECCIONAS no en la de proceso. Para eso te puedes ayudar de una variable de control que pases por el URL por ejemplo ..

header ("Loction: donde_Tenga_que_ir.php?mensaje=1");

y donde_Tenga_que_ir.php .. procesas $_GET['mensaje'] para mostrar el mensaje que corresponda .. en ese caso sería "Ud. se autentificó correctamente" .. no "prosiga" .. eso ya lo hará automáticamente si corresponde.

Un saludo,
  #11 (permalink)  
Antiguo 25/11/2005, 10:58
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Vale mi amigo todo muy claro borre todos los espacios en blanco, pero por ejemplo en este error no entiendo porque(si no hay nada de php y html, eso lo hiso solo dreamweaver ):
Cita:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/jgamarra/public_html/login/change_pass.php:6) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 44
Aqui el archivo change_pass
http://www.fondoverde.org/change_pass.txt
Estoy utilizando como me dijiste:
-No enviar un mensaje antes de un header
-Use estas dos sintaxis, pero nada:
header ("Location: adduser.php?var=$verifica");
header ("Location: $rr?var=$verifica");
__________________
http://about.me/jemano

Última edición por Nova; 25/11/2005 a las 11:27
  #12 (permalink)  
Antiguo 25/11/2005, 12:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No se alcanza a ver correctametne el código de "change_pass.php" .. pero tambien puede ser que tengas un espacio o salto de línea despues de un ?> (si es que esa línea 6 corresponde a la última línea de ese script).

Un saludo,

Consejo: Pega aquí el código , usa la funcionalidad "PHP" (botón) para que quede coloreado .. (no s verán los n° de linea .. pero eso no lo indicas tu).
  #13 (permalink)  
Antiguo 25/11/2005, 12:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
session_start();

Hola parece que yo tengo el mismo problema que tú. He quitado todos las lineas en blanco pero me sigue dando error.

Pego los errores:
Cita:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/inmobiliaria/introducir.php:10) in /var/www/inmobiliaria/introducir.php on line 34

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/inmobiliaria/introducir.php:10) in /var/www/inmobiliaria/introducir.php on line 34
Y pego el código:
Código PHP:
<html>
    <head>
        <TITLE>lalala</TITLE>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
    </head>
    <body  style="font-family :Verdana; font-size:15px;">
        <table width="760" border="0" cellpadding="0" cellspacing="0" align="center">
            <tr>
            <td colspan="2" width="760" height="100" valign="top">
                <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=4,0,2,0" id="inmobiliaria" width="760" height="100">
                  <param name="movie" value="inmobiliaria.swf">
                  <param name="bgcolor" value="#999999">
                  <param name="quality" value="high">
                  <param name="allowscriptaccess" value="samedomain">
                  <embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" width="760" height="100" name="inmobiliaria" src="inmobiliaria.swf" bgcolor="#999999" quality="high" swLiveConnect="true" allowScriptAccess="samedomain"></embed>
                </object>
            </td>
            </tr>
            <tr>
            <TD width="760" height="65">
                <OBJECT ID=macro-style classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH=760 HEIGHT=65 STYLE="">
                <PARAM NAME="flashvars" value="Copyright=[www.dreamingsoft.com]">
                <PARAM NAME="movie" VALUE="menuhoriz.swf">
                <PARAM NAME="menu" VALUE="false">
                <PARAM NAME="quality" VALUE="best">
                <PARAM NAME="scale" VALUE="noscale">
                <PARAM NAME="salign" VALUE="LT">
                <PARAM NAME="wmode" VALUE="window">
                <param name="bgcolor" value="#72828B">
                <EMBED src="menuhoriz.swf" menu="false" quality="best" scale="noscale" salign="LT" WIDTH=760 HEIGHT=65 bgcolor="#72828B" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED>
                </OBJECT>
            </TD>
            </tr>
<?php session_start();?>
            <tr>
            <td bgcolor="#72828B">
                <form name="f1" action="introduciendo.php" method="POST" enctype="multipart/form-data">
                <Table align="center">
                    <TR><TD width="180"><label>Operación</label></TD>
                        <TD width="400"><SELECT name="operacion">
                            <OPTION value="venta">Venta</OPTION>
                            <OPTION value="alquiler">Alquiler</OPTION>
                        </SELECT></TD></TR>
                        <tr><TD><label>Tipología del inmueble</label></TD>
                        <TD><SELECT name="tipo" >
                            <OPTION value="null">Selecionar...</OPTION>
                            <OPTION value="piso">Piso</OPTION>
                            <OPTION value="casa">Casa</OPTION>
                            <OPTION value="garaje">Garaje</OPTION>
                            <OPTION value="local">Local comercial</OPTION>
                            <OPTION value="oficina">Edificio de oficinas</OPTION>
                            <OPTION value="industrial">Solar industrial</OPTION>
                            <OPTION value="hotel">Hotel</OPTION>
                            <OPTION value="rustico">Rústico</OPTION>
                            <OPTION value="terreno">Terreno</OPTION>
                        </SELECT></TD></TR>
                        <TR><TD><label>Localidad</label></TD>
                        <TD><SELECT name="localidad">
                            <OPTION value="null">Selecionar...</OPTION>
                            <OPTION value="algorta">Algorta</OPTION>
                            <OPTION value="barakaldo">Barakaldo</OPTION>
                            <OPTION value="basauri">Basauri</OPTION>
                            <OPTION value="berango">Berango</OPTION>
                            <OPTION value="bilbao">Bilbao</OPTION>
                            <OPTION value="galdakao">Galdakao</OPTION>
                            <OPTION value="gallarta">Gallarta</OPTION>
                            <OPTION value="gernika">Gernika</OPTION>
                            <OPTION value="gorliz">Gorliz</OPTION>
                            <OPTION value="lasarenas">Las Arenas</OPTION>
                            <OPTION value="leioa">Leioa</OPTION>
                            <OPTION value="muskiz">Muskiz</OPTION>
                            <OPTION value="ortuella">Ortuella</OPTION>
                            <OPTION value="portugalete">Portugalete</OPTION>
                            <OPTION value="santurtzi">Santurtzi</OPTION>
                            <OPTION value="sestao">Sestao</OPTION>
                            <OPTION value="sopelana">Sopelana</OPTION>
                            <OPTION value="sopuerta">Sopuerta</OPTION>
                            <OPTION value="trapagaran">Trapagarán</OPTION>
                            <OPTION value="zierbena">Zierbena</OPTION>
                            <OPTION value="zorroza">Zorroza</OPTION>
                        </SELECT>
                        <BUTTON onmousedown="introdlocalidad();">Otra</BUTTON></TD>
                        </TR>
                        <TR><TD><label>Dirección:</label></TD>
                        <TD> <INPUT type="text" name="direccion"></td>
                        </tr>
                        <TR><TD><label>Metros cuadrados:</label></TD>
                        <TD> <INPUT type="text" name="metros" onblur="comprobarn(document.f1.metros.value,'metros')">m<SUP>2</SUP></TD>
                        </tr>
                        <TR><TD><label>Habitaciones:</label></TD>
                        <TD> <INPUT type="text" name="habitaciones" onblur="comprobarn(document.f1.habitaciones.value,'habitaciones')"></td>
                        </tr>
                        <TR><TD><label>Baños:</label></TD>
                        <TD> <INPUT type="text" name="banyos" onblur="comprobarn(document.f1.banyos.value,'banyos')"></td>
                        </tr>
                        <TR><TD><label>Calefacción:</label></TD>
                        <TD><SELECT name="calefaccion">
                            <OPTION value="null">Selecionar...</OPTION>
                            <OPTION value="no">No</OPTION>
                            <OPTION value="si">Si</OPTION>
                        </SELECT></TD></tr>
                        <TR><TD><label>Garaje:</label></TD>
                        <TD><SELECT name="garaje">
                            <OPTION value="null">Selecionar...</OPTION>
                            <OPTION value="no">No</OPTION>
                            <OPTION value="si">Si</OPTION>
                        </SELECT></TD></tr>
                        <TR><TD><label>Ascensor:</label></TD>
                        <TD><SELECT name="ascensor">
                            <OPTION value="null">Selecionar...</OPTION>
                            <OPTION value="no">No</OPTION>
                            <OPTION value="si">Si</OPTION>
                        </SELECT></TD></tr>
                        <TR><TD><label>Precio:</label></TD>
                        <TD> <INPUT type="text" name="precio" onblur="comprobarn(document.f1.precio.value,'precio')">€</TD>
                        </tr>
                </table>
                <table align="center">
                        <TR><TD width="180"><label>Imagen 1:</label></TD>
                        <TD width="400"> <INPUT type="file" name="imagen1"></td>
                        </tr>
                        <TR><TD><label>Imagen 2:</label></TD>
                        <TD> <INPUT type="file" name="imagen2"></td>
                        </tr>
                        <TR><TD><label>Imagen 3:</label></TD>
                        <TD> <INPUT type="file" name="imagen3"></td>
                        </tr>
                        <TR><TD valign="top"><label>Descripción:</label></TD>
                        <TD> <TEXTAREA name="descripcion" rows="3" cols="30"> </TEXTAREA></td>
                        </tr>
                </table>
                <br>
                <center><input type="submit" value="Envíar"></center>
                <br><br>
                </form>
            </td>
            </tr>
                <TR bgcolor="#99cccc" ><TD>
                <table width="760"><TR><TD align="left"> Inmobiliaria lalaa S.A.</TD>
                <TD align="center"> Tlfno: 9425632145</TD>
                <TD align="right">[email protected]</TD>
                </TR>
                </table>
            </TD></TR>
        </table>
    </body>
</html>
Yo creo que me pega el warning en la linea 10 porque en el editor de textos que utilizo no cabe en un linea y salta a la siguiente. Es una razón un poco tonta pero es la unica explicación que le veo después de haber hecho muchas pruebas.

A ver si me podeis ayudar.

Gracias.
  #14 (permalink)  
Antiguo 25/11/2005, 13:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
ktorxe

Ese <?php session_start();?> no puede estar ahí "al medio" de todo ese HTML .. debes usarlo -antes- de cualquier HTML que uses o salida en general que tu script PHP origine.

Un saludo,
  #15 (permalink)  
Antiguo 25/11/2005, 13:46
 
Fecha de Ingreso: noviembre-2005
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
session_start()

Vale pues era eso. Pues anda que no me he comido la cabeza.

Muchas gracias Cluster.
  #16 (permalink)  
Antiguo 26/11/2005, 08:08
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
De acuerdo

Ok puse el codigo por que es un poco largo pero ahi va(ojo que como me dijiste borre todos los espacios en blanco y en el error que sale esta todo pegado):
Código HTML:
1.	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2.	<html>
3.	<head>
4.	<title>Cambiar Password</title>
5.	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6.	<style type="text/css">
7.	<!--
8.	.Estilo1 {
9.	font-family: Verdana, Arial, Helvetica, sans-serif;
10.	font-size: 14px;
11.	font-weight: bold;
12.	}
13.	.Estilo2 {
14.	font-family: Verdana, Arial, Helvetica, sans-serif;
15.	font-size: 11px;
16.	}
17.	.Estilo6 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #FFFFFF; }
18.	-->
19.	</style>
20.	</head>
21.	<body>
22.	<form name="form1" method="post" action="change.php">
23.	<p align="center" class="Estilo1">&nbsp;</p>
24.	<p align="center" class="Estilo1">&nbsp; </p>
25.	<table width="349" border="1" align="center">
26.	<tr bgcolor="#009900">
27.	<th colspan="2" class="Estilo2"><span class="Estilo6">CAMBIAR CLAVE</span></th>
28.	</tr>
29.	<tr>
30.	<th colspan="2" bgcolor="#E0DFE3" class="Estilo2"><p align="center" class="Estilo1">
31.	<?php
32.	require("aut_verifica.inc.php");
33.	$nivel_acceso=0; // definir nivel de acceso para esta página.
34.	if ($nivel_acceso < $_SESSION['usuario_nivel']){
35.	header ("Location: $redir?error_login=5");
36.	exit;
37.	}
38.	$fica=$_GET['err'];
39.	if ($fica==1){
40.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password nuevo incompatible</font>";
41.	}
42.	if ($fica==2){
43.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incompatible</font>";
44.	}
45.	if ($fica==3){
46.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incorrecto</font>";
47.	}
48.	?>
49.	</p></th>
50.	</tr>
51.	<tr>
52.	<th width="189" bgcolor="#E0DFE3" class="Estilo2"><div align="left">Password Anterior</div></th>
53.	<th width="144"><input name="pass_ant" type="password"></th>
54.	</tr>
55.	<tr>
56.	<td bgcolor="#E0DFE3" class="Estilo2">Repita Password Anterior </td>
57.	<td><input name="pass_ant1" type="password"></td>
58.	</tr>
59.	<tr>
60.	<td bgcolor="#E0DFE3"><p class="Estilo2">Nuevo Password</p></td>
61.	<td><input name="new_pass" type="password" ></td>
62.	</tr>
63.	<tr>
64.	<td bgcolor="#E0DFE3" class="Estilo2">Repita Nuevo password </td>
65.	<td><input name="new_pass1" type="password" ></td>
66.	</tr>
67.	<tr bgcolor="#E0DFE3">
68.	<td colspan="2"><input type="submit" name="Submit" value="Enviar">
69.	<input type="button" name="Submit2" value="Volver a Men&uacute;" onClick="javascript:history.back()"></td>
70.	</tr>
71.	</table>
72.	</form>
73.	</body>
74.	</html> 
__________________
http://about.me/jemano
  #17 (permalink)  
Antiguo 27/11/2005, 18:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Nova .. no veo en ese script referencia a "session_Start()" o al aut_verifica.inc.php ...

Un saludo,
  #18 (permalink)  
Antiguo 30/11/2005, 09:01
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Bueno, a ver tengo otro formulario que es para cambiar password (change_pass.php) y me salen estos errores:
Cita:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home2/jgamarra/public_html/login/change_pass.php:6) in /home2/jgamarra/public_html/login/aut_verifica.inc.php on line 44
Aqui el formulario PHP ("change_pass.php").
Código HTML:
1.	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2.	<html>
3.	<head>
4.	<title>Cambiar Password</title>
5.	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6.	<style type="text/css">
7.	<!--
8.	.Estilo1 {
9.	font-family: Verdana, Arial, Helvetica, sans-serif;
10.	font-size: 14px;
11.	font-weight: bold;
12.	}
13.	.Estilo2 {
14.	font-family: Verdana, Arial, Helvetica, sans-serif;
15.	font-size: 11px;
16.	}
17.	.Estilo6 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #FFFFFF; }
18.	-->
19.	</style>
20.	</head>
21.	<body>
22.	<form name="form1" method="post" action="change.php">
23.	<p align="center" class="Estilo1">&nbsp;</p>
24.	<p align="center" class="Estilo1">&nbsp; </p>
25.	<table width="349" border="1" align="center">
26.	<tr bgcolor="#009900">
27.	<th colspan="2" class="Estilo2"><span class="Estilo6">CAMBIAR CLAVE</span></th>
28.	</tr>
29.	<tr>
30.	<th colspan="2" bgcolor="#E0DFE3" class="Estilo2"><p align="center" class="Estilo1">
31.	<?php
32.	require("aut_verifica.inc.php");
33.	$nivel_acceso=0; // definir nivel de acceso para esta página.
34.	if ($nivel_acceso < $_SESSION['usuario_nivel']){
35.	header ("Location: $redir?error_login=5");
36.	exit;
37.	}
38.	$fica=$_GET['err'];
39.	if ($fica==1){
40.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password nuevo incompatible</font>";
41.	}
42.	if ($fica==2){
43.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incompatible</font>";
44.	}
45.	if ($fica==3){
46.	echo "<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incorrecto</font>";
47.	}
48.	?>
49.	</p></th>
50.	</tr>
51.	<tr>
52.	<th width="189" bgcolor="#E0DFE3" class="Estilo2"><div align="left">Password Anterior</div></th>
53.	<th width="144"><input name="pass_ant" type="password"></th>
54.	</tr>
55.	<tr>
56.	<td bgcolor="#E0DFE3" class="Estilo2">Repita Password Anterior </td>
57.	<td><input name="pass_ant1" type="password"></td>
58.	</tr>
59.	<tr>
60.	<td bgcolor="#E0DFE3"><p class="Estilo2">Nuevo Password</p></td>
61.	<td><input name="new_pass" type="password" ></td>
62.	</tr>
63.	<tr>
64.	<td bgcolor="#E0DFE3" class="Estilo2">Repita Nuevo password </td>
65.	<td><input name="new_pass1" type="password" ></td>
66.	</tr>
67.	<tr bgcolor="#E0DFE3">
68.	<td colspan="2"><input type="submit" name="Submit" value="Enviar">
69.	<input type="button" name="Submit2" value="Volver a Men&uacute;" onClick="javascript:history.back()"></td>
70.	</tr>
71.	</table>
72.	</form>
73.	</body>
74.	</html> 
Y el código de aut_verifica.inc.php esta arriba, como bien dices Cluster no se muesra "session_Start()", y eso nose de donde sale.
__________________
http://about.me/jemano
  #19 (permalink)  
Antiguo 30/11/2005, 10:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. no está "arriba" (que entiendes tu por "arriba" en este contexto?). El require("aut_verifica.inc.php") que es donde se hace un session_Start() (no se debe mostrar nada .. !!!) debe estar al principio de ese script.

Cita:
31. <?php
32. require("aut_verifica.inc.php");
Debe estar:
1. <?php
2. require("aut_verifica.inc.php");
3. ?>
N. Resto de tu actual código HTML+PHP.

Recuerda que PHP se ejecuta "primero"!!!!! y luego lo que este (PHP) genera se entrega al cliente (tu navegador) para que este haga su parte junto con todo el javscirpt que tengas ahí o lo que corresponda. Por eso tienes tantos problemas con el dichoso "session_start()" y las cabeceras (header's) .. Por que no estás "pensando como trabaja pHP" sino que estás "incrustrando" PHP entre el HTML .. el concepto es bien diferente y debes comprenderlo para no tener problemas .. sobre todo con esto de los "headers" que se envian por parte de PHP -antes- de tu HTML que puedas generar en tu página/script.

Un saludo,
  #20 (permalink)  
Antiguo 30/11/2005, 20:44
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Bueno amigo es hecho lo que me haz dicho , he partido el codigo PHP en uno y código PHP+HTML en otro
Es decir:
Código PHP:
<?php
  
require("aut_verifica.inc.php");
  
$nivel_acceso=0// definir nivel de acceso para esta página.
?>
<?php
    
if ($nivel_acceso $_SESSION['usuario_nivel']){
    
header ("Location: $redir?error_login=5");
    exit;
    }
?>
<?php
  $fica
=$_GET['err'];
  if (
$fica==1){
  echo 
"<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password nuevo incompatible</font>";
  }
  if (
$fica==2){
  echo 
"<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incompatible</font>";
  }
  if (
$fica==3){
  echo 
"<font face='Verdana, Arial, Helvetica, sans-serif' size='1' color='#FF0000'>Password antiguo incorrecto</font>";
  }
?>
PERO NADA....
Me dices que el
Código PHP:
header ("Location: $redir?error_login=5"); 
debe ir limpio de código HTML, y eso es lo que he puesto, bueno eso es lo que te entendido...
__________________
http://about.me/jemano

Última edición por Nova; 30/11/2005 a las 20:50
  #21 (permalink)  
Antiguo 30/11/2005, 21:08
Avatar de chr_c  
Fecha de Ingreso: junio-2003
Mensajes: 204
Antigüedad: 14 años, 6 meses
Puntos: 0
vamos a aclarar un poco las cosas. ya que por lo visto no comprendiste muy bien lo que te explico cluster (cosa extraña per no imposible).

todo archivo que trabaje con sesiones debe tener en el la llamada
<?php session_start(); ?>

pero para que esta llamada funcione como corresponde debe estar en la PRIMER LINEA de TODO el conjunto de archivos y en todos los archivos que necesites utilizar como sesion.
Es decir si vas a incluir un archivo, debe ser debajo del session_start, si vas a poner HTML debe ser despues del session_start en definitiva, todo debe ir despues del session_start.
Ya que lo primero que debe hacer apache es "validar" la session, y esto lo hace en funcion de los headers, pero una vez que envia aunque sea UNA SOLA linea en blanco, esto es interpretado como codigo HTML y el apache NO puede enviar header cuando empezo a enviar HTML.
espero que esto te halla aclarado un poco el tema.
saludos
  #22 (permalink)  
Antiguo 08/12/2005, 18:54
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Ok amigo de cabezon no hay nadie como yo, bueno sera porque estoy parametrado con los leguajes de escritorio..
Entonces lo que quieres decir es que tengo que hacer :
Cita:
El codigo HTML
Cita:
Codigo PHP sin html
Cita:
<? luego php session_start(); ?>
Cita:
Luego el resto de codigo PHP
Cita:
y el resto de html???
Amigo quiero pedirte un gran favor ahi esta el codigo que grandes problemas me ha traido, podrias acomodarlo y postearlo rapidamente como dices que tiene que ir es que no logro entender en su totalidad, por favor es el unico favor que te pido
__________________
http://about.me/jemano
  #23 (permalink)  
Antiguo 09/12/2005, 05:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El orden es:

1° -> <? luego php session_start(); ?>

y luego todo lo que necesites .. asi de simple!. Te lo he mencionado un montón de veces en este mensaje.

Un saludo,
  #24 (permalink)  
Antiguo 13/12/2005, 16:43
Avatar de Nova  
Fecha de Ingreso: enero-2003
Ubicación: Hyo
Mensajes: 832
Antigüedad: 14 años, 10 meses
Puntos: 1
Pero el codigo original que tengo es de un ejemplo que ustedes me dieron.
Ademas yo tengo que poner algunas condiciones antes de "session()" obligatoriamente como verificar el usuario y su contraseña y luego si cumple eso poner el famoso session en esos caso como hacen entonces ustedes, por favor si no fuera mucha molestia como lo dije anteriormente podrian poner al orden correcto del codigo que se encuentra arriba??? por favor para que ya no le meta mas candela al tema por favor he hecho todos los intento y nada por favor la ultima cosa que les pido podrian ordenas el codigo de como deberia ir , muchas gracias amigos lo poco que se es por ustedes
__________________
http://about.me/jemano
  #25 (permalink)  
Antiguo 13/12/2005, 20:47
Avatar de chr_c  
Fecha de Ingreso: junio-2003
Mensajes: 204
Antigüedad: 14 años, 6 meses
Puntos: 0
ok, bien. ahora con el mismo concepto ( el session arriba) debes hacer exactamente lo mismo para la funcion "header(" es decir ho podes hacer un header("location......") en cualquier parte, tambien debe estar limpio de codigo html anterior.... sino ahi tenes el famoso error.
Todo lo que hace referencia al header (tanto la funcion con el famoso "session") es informacion que descargas al browser del tipo http, es decir es codigo exclusivo de la coneccion entre el cliente y el servidor apache. asi que en ningun caso podes mandar codigo HTML antes de esto ya que el servidor presupone que terminaste de enviar su propia coneccion y te devuelve ese error.
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 17:29.