Foros del Web » Programando para Internet » PHP »

Inicio de secion

Estas en el tema de Inicio de secion en el foro de PHP en Foros del Web. Buenas foreros del WED...bueno les escribo acerca de un reto(asi dice mi profe que le diga)..tengo un codigo php para inciar secion con unos usuarios ...
  #1 (permalink)  
Antiguo 09/03/2011, 13:56
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Inicio de secion

Buenas foreros del WED...bueno les escribo acerca de un reto(asi dice mi profe que le diga)..tengo un codigo php para inciar secion con unos usuarios que tengo en mi base de datos...pero la cuestion es que me arroga lo sgt:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 45

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php:18) in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 55


...Este es mi codigo php...

<html>
<head>
<title>Acceso</title>
</head>
<body>

<h1>Acceso Restringido</h1><br>
<hr>
<i>Por favor, ingrese su nombre de usuario y su clave </i><br>
<form name='f1' method='POST' action='conexion_usuario.php'>
<table border='0'>
<tr>
<td align='right'>Nombre de usuario</td>
<td align='left'><input type='textfield' name='txtNombre'></td>
</tr>

<tr>
<td align='right'>Clave</td>
<td align='left'><input type='password' name='txtclave'></td>
</tr>

<tr>
<td colspan='2' align='center'><input type='submit' value='ingresar'></td>
</tr>

</table>

<hr>

</form>
</body>
</html>

<?php

if($_POST)
{

$conexion=mysql_connect('localhost', 'root', '');
$nombre=$_POST['txtNombre'];
$clave=$_POST['txtclave'];
mysql_select_db('control', $conexion);
$sql="select * from usuarios where nombre='".$nombre."' and clave='".$clave."'";
$consulta=mysql_query($sql,$conexion);
$filas=mysql_num_rows($consulta);

if($filas > 0)
{
session_start();
$_SESSION['usuario']=$nombre;
header("Location:portal.php");//echo "Acceso Permitido";
}
else
{
header("Location:error.php");//echo "Acceso Denegado";
}
}
?>


Agradesco su ayuda a los foreros......de El pais el casi juamassss.....
  #2 (permalink)  
Antiguo 09/03/2011, 14:05
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Inicio de secion

Saludos!

Imprime la consulta y verifica que todos tus parámetros estén pasando correctamente!.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 09/03/2011, 14:28
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

Gracias por el alcanse nano..pèro algo mas especifico que me estoy perdiendo en esto!!!!!!
  #4 (permalink)  
Antiguo 09/03/2011, 15:07
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

Lo que te esta diciendo es que hagas un echo asi:

echo $sql;

Y coloques aquí el resultado, osea, lo que te imprime en la pagina
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 09/03/2011, 15:30
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

Jotaincubus..porfa pes......una explicada como para niño.....$sql..con que fin......y para que imprimirlo .....gradesco su cooperacion....
  #6 (permalink)  
Antiguo 09/03/2011, 15:32
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

queremos ver que imprime ese echo para ver si esta tomando bien el valor de las variables que llegan por POST

Para eso necesitamos ver el resultado
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 09/03/2011, 15:37
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

Por ai estoy leyendo ..no seria que....en la cebecera de todo ponga <?php session_star() ?>
.....que opinas....
  #8 (permalink)  
Antiguo 09/03/2011, 15:38
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

El error que te esta sacando de

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 45

No tiene nada que ver con las sesiones sino con la consulta a la base de datos
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #9 (permalink)  
Antiguo 09/03/2011, 15:39
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

ie man ...ise lo que te escribi y ahora solo sale...

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php:19) in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 44
  #10 (permalink)  
Antiguo 09/03/2011, 15:44
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

Gracias por ayuda,,pero ya no me arroja ese error...solo el que Cannot modify header information....
  #11 (permalink)  
Antiguo 09/03/2011, 15:48
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

Ahora si entendi:

mira al principio de todo el codigo coloca

<?php session_star() ?>
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 09/03/2011, 15:50
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

okasss.....asi me quedo claro tbm..pero el asunto es que me arroja este error tbm,,,

Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php:19) in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 44


y sucede que se deberia solucionar con el session_start arriba..pero nada pes..aguna idea.....
  #13 (permalink)  
Antiguo 09/03/2011, 15:53
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

Coloca todo tu codigo php antes del HTML asi:

Código PHP:
<?php

session_start
();

if(
$_POST)
{

$conexion=mysql_connect('localhost''root''');
$nombre=$_POST['txtNombre'];
$clave=$_POST['txtclave'];
mysql_select_db('control'$conexion);
$sql="select * from usuarios where nombre='".$nombre."' and clave='".$clave."'";
$consulta=mysql_query($sql,$conexion);
$filas=mysql_num_rows($consulta);

if(
$filas 0)
{
session_start();
$_SESSION['usuario']=$nombre;
header("Location:portal.php");//echo "Acceso Permitido";
}
else
{
header("Location:error.php");//echo "Acceso Denegado";
}
}
?>

<html>
<head>
<title>Acceso</title>
</head>
<body>

<h1>Acceso Restringido</h1><br>
<hr>
<i>Por favor, ingrese su nombre de usuario y su clave </i><br>
<form name='f1' method='POST' action='conexion_usuario.php'>
<table border='0'>
<tr>
<td align='right'>Nombre de usuario</td>
<td align='left'><input type='textfield' name='txtNombre'></td>
</tr>

<tr>
<td align='right'>Clave</td>
<td align='left'><input type='password' name='txtclave'></td>
</tr>

<tr>
<td colspan='2' align='center'><input type='submit' value='ingresar'></td>
</tr>

</table>

<hr>

</form>
</body>
</html>
Lo que sucede es que cuando precionas el boton entonces el codigo empieza a ejecutarse y llega a la redireccion pero como tienes HTML antes del codigo el no puede hacerlo porque ya hay cosas impresas en esa misma pagina.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???

Última edición por jotaincubus; 09/03/2011 a las 15:55 Razón: Mas informacion
  #14 (permalink)  
Antiguo 09/03/2011, 15:58
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Ya lo hice man,,,,y sucede que en efecto me redirecina...a la pagina PORTAL.PHP...sin antes pedirme el nombre del usuario y la contraseñaaa.......

Ya estamos cercaaaaaaa..........

Y sin mas preambulosssss.................................... .
te agradesco hermano latinoamericano..la ayuda..desinteresada o interesada......muchas GRACIAS...si tuviera karma te la rregalo....como se hace????

Buenas amigos del foreros.....tengo el sgt codigo...el cual no me deja iniciar sesion...con unos usuarios con clave que tengo en una base de datos....mi codigo es:

<?php
session_start();
if($_POST)
{
include('cn_conexion.php');
$nombre=$_POST['txtNombre'];
$clave=$_POST['txtclave'];
mysql_select_db('control', $conexion);
$sql="select * from usuarios where nombre='".$nombre."' and clave='".$clave."'";
$consulta=mysql_query($sql,$conexion);
$filas=mysql_num_rows($consulta);
if($consulta > 0)
{
session_start();
$_SESSION['usuario']=$nombre;
header("Location:portal.php");
}
else
{
header("Location:error.php");
}
}
?>




me arroja el sgte error::


Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php:16) in C:\wamp\www\Jueves(12-11-2009)\conexion_usuario.php on line 28


agradesco sus opiniones y consejos de ante mano.Gracias ....del pais del casi juamasssss.

Última edición por GatorV; 09/03/2011 a las 16:29
  #15 (permalink)  
Antiguo 09/03/2011, 16:24
 
Fecha de Ingreso: febrero-2010
Mensajes: 22
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Codigo php para iniciar Sesion

Creo que lo que pasa es que pones el sesion_start() después de la cabecera de la página.

El sesion_start() debe estar siempre antes que cualquier otro código de la página, sea php, html, o lo que sea. Realmente debe estar antes del <HEAD>, pero para quitarte cualquier problema, ya te digo que lo ideal es que lo pongas antes que cualquier otra cosa, es decir, lo primero de todo.
  #16 (permalink)  
Antiguo 09/03/2011, 16:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Codigo php para iniciar Sesion

Te recomiendo leer las FAQs de este foro, hay una muy buena explicación de como debe de funcionar.

Saludos.
  #17 (permalink)  
Antiguo 09/03/2011, 16:25
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Inicio de secion

bueno amigo para mi que eso esta sucediendo por el IF que tienes para verificar si se presiono el boton enviar.

Colocale un nombre al boton submit asi:

<input type='submit' name="submit" value='ingresar'>

Despues cambia esto if($_POST) por esto:

if (isset($_POST['submit']))

y asi verificaras bien si el usuario presiono el boton enviar, espero atento tu respuesta.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #18 (permalink)  
Antiguo 09/03/2011, 16:28
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Codigo php para iniciar Sesion

me quedaria asi,.........

<?php
session_start();
if($_POST)
{
include('cn_conexion.php');
$nombre=$_POST['txtNombre'];
$clave=$_POST['txtclave'];
mysql_select_db('control', $conexion);
$sql="select * from usuarios where nombre='".$nombre."' and clave='".$clave."'";
$consulta=mysql_query($sql,$conexion);
$filas=mysql_num_rows($consulta);
if($consulta > 0)
{
session_start();
$_SESSION['usuario']=$nombre;
header("Location:portal.php");
}
else
{
header("Location:error.php");
}
}
?>
<html>
<head>
<title>Acceso</title>
</head>
<body>
<h1>Acceso Restringido</h1><br>
<hr>
<i>Por favor, ingrese su nombre de usuario y su clave </i><br>
<form name='f1' method='POST' action='conexion_usuario.php'>
<table border='0'>
<tr>
<td align='right'>Nombre de usuario</td>
<td align='left'><input type='textfield' name='txtNombre'></td>
</tr>
<tr>
<td align='right'>Clave</td>
<td align='left'><input type='password' name='txtclave'></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='ingresar'></td>
</tr>
</table>
<hr>
</form>
</body>
</html>



pero si lo pongo asi.....me redirecciona de inmediato a la pagina PORTAL.php..sin antes pedrime el usuario y la clave....pork???? TESEO----GATORv
  #19 (permalink)  
Antiguo 09/03/2011, 16:31
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años
Puntos: 394
Respuesta: Codigo php para iniciar Sesion

Cita:
Iniciado por bariedto Ver Mensaje
me quedaria asi,.........

<?php
session_start();
if($_POST)
{
include('cn_conexion.php');
$nombre=$_POST['txtNombre'];
$clave=$_POST['txtclave'];
mysql_select_db('control', $conexion);
$sql="select * from usuarios where nombre='".$nombre."' and clave='".$clave."'";
$consulta=mysql_query($sql,$conexion);
$filas=mysql_num_rows($consulta);
if($consulta > 0)
{
session_start();
$_SESSION['usuario']=$nombre;
header("Location:portal.php");
}
else
{
header("Location:error.php");
}
}
?>
<html>
<head>
<title>Acceso</title>
</head>
<body>
<h1>Acceso Restringido</h1><br>
<hr>
<i>Por favor, ingrese su nombre de usuario y su clave </i><br>
<form name='f1' method='POST' action='conexion_usuario.php'>
<table border='0'>
<tr>
<td align='right'>Nombre de usuario</td>
<td align='left'><input type='textfield' name='txtNombre'></td>
</tr>
<tr>
<td align='right'>Clave</td>
<td align='left'><input type='password' name='txtclave'></td>
</tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='ingresar'></td>
</tr>
</table>
<hr>
</form>
</body>
</html>



pero si lo pongo asi.....me redirecciona de inmediato a la pagina PORTAL.php..sin antes pedrime el usuario y la clave....pork???? TESEO----GATORv
bueno amigo para mi que eso esta sucediendo por el IF que tienes para verificar si se presiono el boton enviar.

Colocale un nombre al boton submit asi:

<input type='submit' name="submit" value='ingresar'>

Despues cambia esto if($_POST) por esto:

if (isset($_POST['submit']))

y asi verificaras bien si el usuario presiono el boton enviar, espero atento tu respuesta.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #20 (permalink)  
Antiguo 09/03/2011, 16:41
 
Fecha de Ingreso: diciembre-2010
Ubicación: Ica
Mensajes: 28
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Inicio de secion

Ei..... jotaIncubus.....buena man...corrigiendo unas cosillas...de espàcio..y con lo que me digistes..porfin puedo decir aliviado....que ya me salio.....muchas gracias.......forero colombiano.

Última edición por GatorV; 09/03/2011 a las 16:59

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 09:28.