Foros del Web » Programando para Internet » PHP »

Problema con session_start()

Estas en el tema de Problema con session_start() en el foro de PHP en Foros del Web. no se que es lo que me esta fallando en mi codigo hago la llamada a una tabla llamada usuario con los campos 'id','usuario','contra' pero ...
  #1 (permalink)  
Antiguo 13/12/2011, 19:39
 
Fecha de Ingreso: septiembre-2009
Mensajes: 14
Antigüedad: 14 años, 7 meses
Puntos: 0
Problema con session_start()

no se que es lo que me esta fallando en mi codigo hago la llamada a una tabla llamada usuario con los campos 'id','usuario','contra' pero quiero que solo los usuarios que estan dentro de mi tabla tengan acceso a el contenido aqui pongo el codigo por si alguien me puede ayudar

Código:
<?php
session_start();
$nom=$_POST['nombre'];
$con=$_POST['password'];
$link = mysql_connect("localhost","root","") 
or die ("no se ha podido conectar"); 
mysql_select_db("biblioteca") 
or die("Error al tratar de selecccionar esta base");
$result = mysql_query("SELECT * FROM usuarios where usuario='$nom' and contra='$con'",$link)or die(mysql_error()); 
while($row = mysql_fetch_array( $result )){
echo("<br><br><br><br><br><br>");
echo $row['usuario'],$row['contra'];
	if($row['usuario']=='$nom' &&$row['contra']=='$con')
{
	$_SESSION['registrado']="si";
	header("location:archivo2.php");
}
}
?>

<html>
<head><title>Index</title></head>
<body background="fondo.jpg">
<script type="text/javascript">var MenuLinkedBy="AllWebMenus [4]",awmMenuName="menu",awmBN="854";awmAltUrl="";</script><script charset="UTF-8" src="menu.js" type="text/javascript"></script><script type="text/javascript">awmBuildMenu();</script>
<br><br><br><br><br><br><br><br><br>
<form action="index.php" method="post">
	<table align="center">
		<tr><td>Usuario</td><td><input type="text" name="nombre"></td></tr>
		<tr><td>Contrase&ntilde;a</td><td><input type="password" name="password"></td></tr>
		<tr><td colspan="2" align="center"><input type="submit" value="Aceptar" name"Aceptar"></td></tr>
	</table>
</form>
</body>
</html>
  #2 (permalink)  
Antiguo 13/12/2011, 19:46
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Respuesta: Problema con session_start()

Hola cual es el error que te arroja?

he mirado el código por encima y veo un error aquí:
Código PHP:
Ver original
  1. if($row['usuario']=='$nom' &&$row['contra']=='$con') {
  2. //lo que sea
  3. }

debería ser


Código PHP:
Ver original
  1. if($row['usuario']==$nom && $row['contra']==$con) {
  2. //lo que sea
  3. }

Debido a que las comillas simples evalúan su interior literalmente, es decir, estás comparando tus variables con un string '$con' y no con tu variable $con.

Lo mismo para tu consulta SQL. Usa comillas dobles, o concatena correctamente

Saludos
  #3 (permalink)  
Antiguo 13/12/2011, 19:49
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Problema con session_start()

en lugar de whie debería haber un if, que compruebe si existe al menos un registro que cumpla con la consulta

Código PHP:
Ver original
  1. if(mysql_num_rows() > 0){
  2.    
  3.         $_SESSION['registrado']="si";
  4.         header("location:archivo2.php");
  5. }


esto ( mysql_num_rows() ) te dá la cantidad de registro que cumplen con la consulta, si es mayor que cero entonces el user existe , sino no
__________________
la la la
  #4 (permalink)  
Antiguo 13/12/2011, 19:54
 
Fecha de Ingreso: septiembre-2009
Mensajes: 14
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con session_start()

Cita:
Iniciado por SetheR Ver Mensaje
Hola cual es el error que te arroja?

he mirado el código por encima y veo un error aquí:
Código PHP:
Ver original
  1. if($row['usuario']=='$nom' &&$row['contra']=='$con') {
  2. //lo que sea
  3. }

debería ser


Código PHP:
Ver original
  1. if($row['usuario']==$nom && $row['contra']==$con) {
  2. //lo que sea
  3. }

Debido a que las comillas simples evalúan su interior literalmente, es decir, estás comparando tus variables con un string '$con' y no con tu variable $con.

Lo mismo para tu consulta SQL. Usa comillas dobles, o concatena correctamente

Saludos
es verdad tenia ese error muchas gracias
  #5 (permalink)  
Antiguo 13/12/2011, 19:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 14
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Problema con session_start()

Cita:
Iniciado por truman_truman Ver Mensaje
en lugar de whie debería haber un if, que compruebe si existe al menos un registro que cumpla con la consulta

Código PHP:
Ver original
  1. if(mysql_num_rows() > 0){
  2.    
  3.         $_SESSION['registrado']="si";
  4.         header("location:archivo2.php");
  5. }


esto ( mysql_num_rows() ) te dá la cantidad de registro que cumplen con la consulta, si es mayor que cero entonces el user existe , sino no
es verdad de esta manera tambien funciona perfectamente gracias por la alternativa

Etiquetas: php+formularios
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 08:22.