Foros del Web » Creando para Internet » Diseño web »

duda sobre inicio de sesion...

Estas en el tema de duda sobre inicio de sesion... en el foro de Diseño web en Foros del Web. Hola, estoy haciendo un registro de usuario... estoy armando la parte de inicio de sesion. Estoy siguiendo el aporte de pato12: http://www.forosdelweb.com/f18/aporte-sistema-registro-reconocimiento-usuario-aporte-561417/ todo bien, pero ...
  #1 (permalink)  
Antiguo 29/06/2011, 14:12
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 7 años, 5 meses
Puntos: 0
Pregunta duda sobre inicio de sesion...

Hola, estoy haciendo un registro de usuario... estoy armando la parte de inicio de sesion. Estoy siguiendo el aporte de pato12: http://www.forosdelweb.com/f18/aporte-sistema-registro-reconocimiento-usuario-aporte-561417/

todo bien, pero me gustaria que como la mayoria de las paginas (incluyendo esta) la sesion se inicie en la parte superior de la paguina y cuando la sesion este iniciado por un usuario se sustituya los campos de inicio de sesion por el usuario. ¿Me explico?
Saludos y gracias de antemano!
  #2 (permalink)  
Antiguo 30/06/2011, 11:36
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.106
Antigüedad: 7 años
Puntos: 66
Respuesta: duda sobre inicio de sesion...

lo tienes en la propia explicacion

Código PHP:
<?  
if(!isset($_SESSION['login'])){  
echo 
"No estas logeado.<a href='entra.html'>Clic qui para logearse</a> o <a href='rg.html'>para registrase</a>"
} else {  
echo 
"Hola ".$_SESSION['login'];  
echo 
"<br><a href='salir.php'>Salir</a>"
}  
?>
eso lo puedes colocar donde quieras
  #3 (permalink)  
Antiguo 01/07/2011, 08:32
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: duda sobre inicio de sesion...

Hola juanito1712, gracias por responder... el problema es que yo no tengo una pagina aparte para logear, si no que todas las paginas en la barra superior aparece la opsion de logear y necesito que el area de logeo se sustituya por el usuario cuando este inicie sesion. Ese codigo te da la opsion de ir a la pagina de logeo si no estas logeado y la otra parte del codigo si es lo que necesito.
Saludos!
  #4 (permalink)  
Antiguo 01/07/2011, 13:34
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.106
Antigüedad: 7 años
Puntos: 66
Respuesta: duda sobre inicio de sesion...

un poquito de imaginacion hombre

si el lugar de poner
echo "No estas logeado.<a href='entra.html'>Clic qui para logearse</a> o <a href='rg.html'>para registrase</a>";
le pides que imprima tu formulario




y en lugar de poner
echo "<br><a href='salir.php'>Salir</a>";

pones
echo bienvenido


no te imaginas que puede ocurrir?

sabes que sicnifica esto?
if(!isset($_SESSION['login']))
  #5 (permalink)  
Antiguo 01/07/2011, 17:44
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: duda sobre inicio de sesion...

Hola juanito1712, tenme un poco de paciencia XD… yo te entiendo y tambien conozco como se estructura un if, voy iniciandome en php pero antes había utilizado otros lenguajes de programación. Me gustaria saber como se imprime un formulario en php, es decir, yo lo cree en html ¿debo crearlo en php? y con respecto a if(!isset($_SESSION['login'])) tengo mas o menos una idea de su función, pero no me atrevo a responderte para no cometer una burrada XD.

este es my formulario si sirve de algo:

<td width="42%" height="25" align="left" valign="middle" bordercolor="#28527A"><label><span class="Texto">Usuario:</span>
<input name="usuario" type="text" class="Texto" id="usuario" value="usuario">
</label></td>
<td width="46%" height="25" align="left" valign="middle"><label><span class="Texto">Contraseña: </span>
<input name="contrasena" type="password" class="Texto" id="contrasena">
</label></td>
<td width="11%" height="25" align="left" valign="middle"><label>
<div align="center"><span class="style9">no cerrar: </span>
<input name="checkbox" type="checkbox" class="Texto" value="checkbox">
</div>
</label></td>

Saludos! Y disculpame por ser un poco lento para aprender :)
  #6 (permalink)  
Antiguo 03/07/2011, 18:22
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.106
Antigüedad: 7 años
Puntos: 66
Respuesta: duda sobre inicio de sesion...

trnaquilo, y no tengas miedo a decir burradas, es mejor dar una mala respuesta y que te corijan que no dar ninguna por miedo, asi nunca se aprende.

Mira, esto
if(!isset($_SESSION['login']))

lo podemos dividir en 3 partes

la primera es esta
if(!isset($_SESSION['login']))

Esto simplemente es un if, por lo que dices imagino que sabras como funciona un if
si la expresion incluida en el da verdadero realiza una accion, si da falso realiza la funccion else

la segunda parte sería esta
if(!isset($_SESSION['login']))
isset es una funcion php que devuelve verdadero o flso segun exista la variable incluida en el, por tanto este isset nos devolvera verdadero si la variable se sesion login existe, independientemente de lo que esta incluya

edito-al llevar el ! precediendo al isset entonces estas ante una negacion, el isset devuelve verdadero si existe, pero !isset devolverá verdadero si NO existe


y la tercera sería esta
if(!isset($_SESSION['login']))
esta es la variable de sesion en la que al realizar un logueo desde el formulario de login se almacenará al usuario validado o un valor true en caso correcto (no he mirado como guarda el login pero supongo que hara alguna de estas 2 cosas)


por lo tanto si lo mezclas todo esa linea, controlará algo similar a esto
si existe la variable de sesion login>haz esto / sino>haz lo otro


eso ya verás que simplemente controla si hay logueo o no luego en cada lado haces lo que quieres

y para lo del formulario puedes solucionarlo con un print

prueba poner esto en el if

print("
<form>
<input type=\"text\"/>
</form>
");

y verás lo que obtienes, luego de leerte esto te recomiendo lo que te enlazo aquí abajo y hacer unas cuantas pruebas

http://php.net/manual/es/function.isset.php
http://php.net/manual/es/function.print.php
  #7 (permalink)  
Antiguo 04/07/2011, 11:43
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: duda sobre inicio de sesion...

Hola juanito1712! gracias por responder y por la paciencia XD. Lei los enlaces que me diste y segun entiendo la funcion del print es mostrar una cadena de texto... en todo caso lo probe y me producio un error:

<?php
session_start();

mysql_connect ("localhost", "root", "");
mysql_select_db("MyBD") or die('Cannot select database');

if ($_POST['usuario']) {
$usuario=$_POST['usuario'];
$contrasena=$_POST['contrasena'];
if ($contrasena==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT usuario,contrasena FROM usuarios WHERE usuario = '$usuario'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['contrasena'] != $contrasena) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT usuario,contrasena FROM usuarios WHERE usuario = '$usuario'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_usuario"] = $row['usuario'];
echo "Has sido logueado correctamente ".$_SESSION['s_usuario'];
}
}
}
if(!isset($_SESSION['login']))
{
print("
<form>
<input type=\"text\"/>
<td width="42%" height="25" align="left" valign="middle" bordercolor="#28527A"><label><span class="Texto">Usuario:</span>
<input name="usuario" type="text" class="Texto" id="usuario" value="usuario">
</label></td>
<td width="46%" height="25" align="left" valign="middle"><label><span class="Texto">Contraseña: </span>
<input name="contrasena" type="password" class="Texto" id="contrasena">
</label></td>
<td width="11%" height="25" align="left" valign="middle"><label>
<div align="center"><span class="style9">no cerrar: </span>
<input name="checkbox" type="checkbox" class="Texto" value="checkbox">
</div>
</label></td>
</form>
");
}else{
echo "Hola ".$_SESSION['login'];
}
?>

El error dice: Parse error: syntax error, unexpected T_LNUMBER in C:\wamp\www\MyPagina\Templates\Base.dwt.php on line 110. La linea 110 es <td width="42%" height="25" align="left" valign="middle" bordercolor="#28527A"><label><span class="Texto">Usuario:</span>

Si no me equivoco el error se produce porque php no reconoce los label, td, div, etc. ¿Como podria incluir los codigos html dentro de un codigo php?

Saludos y gracias de antemano!
  #8 (permalink)  
Antiguo 04/07/2011, 13:49
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.106
Antigüedad: 7 años
Puntos: 66
Respuesta: duda sobre inicio de sesion...

a ver el error dice
arse error: syntax error, unexpected T_LNUMBER in

quiza no entiendas que quiere decir pero fijate que se ha topado con algo que no esperaba segun lo que te dice...

y a ve la estructura del print es esta

print("contenido");

las comillas abren y cierran el contenido y sirven para concatenar variables, por tanto una comilla es un caracter reservado por el print para su correcto funcionamiento

si queres que imrpima lo siguiente: con"te"nido deberas escribir esto

print("con\"te\"nido");
la barra inversa le está indicando al compilador que el siguiente caracter que va a encontrarse lo escape de su comprotamiento habitual y lo trate como un caracter de texto

fijate en tu print por ejemplo este trozo
<td width="42%"
ahi has cerrado el print y lo has vuelto a abrir
deberia estar asi
<td width=\"42%\"
y todo lo demás, igual

y grabate este error a fuego en la mente
parse error es un error de concatenación lo de unexpected es resultante al error de concatenación ya que recibe un valor inesperado, siempre que la cagues de este modo saltará este mismo error
  #9 (permalink)  
Antiguo 05/07/2011, 17:41
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: duda sobre inicio de sesion...

Hola juanito1712, muchisimas gracias! ya me funciono! gracias por tu ayuda y por tu paciencia...
Saludos!

Etiquetas: inicio
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:20.