| |||
crear usuarios Buen día a todos, estoy en la tarea de crear usuarios para mi web, ya tengo la parte en que se registran funcionando, ahora lo que necesito hacer es la parte donde se autentican y entran con su usuario, podrían ustedes referirme algún manual legible y detallado de como hacer esto?? |
| ||||
Respuesta: crear usuarios Te referis a un tipico "login", hay información en abundancia en este foro y en www.google.com, lo mejor es que uses variables de session para el login http://php.net/manual/es/book.session.php busca en este foro o en google sobre sessiones para login hay mucho |
| |||
Respuesta: crear usuarios estuve leyendo sobre el tema, encontré algunos ejemplos y ahi voy entendiendo pero tengo algunas dudas digamos superficiales aún... por ejemplo en la variable $_session[], estaba viendo este pedazo de codigo: if (($_POST['nombre']=="usuario")&&($_POST['clave']=="123456") ) { session_start(); $_SESSION['usuario']="usuario"; $_SESSION['tiempo']=time(); header("location:index.php"); } etc. etc. porqué incluyen 'usuario' en $_SESSION, no debería ir la variable de $_post['nombre'] ahi? de esta manera: $var=$_post['nombre']; $_SESSION['var']="var"; sé que como está al principio esta bien porque el codigo funciona pero yo tengo esa duda, y me surge cuando quiero traer los datos de mi base de datos asi: if (isset($_POST['nombre']) && isset($_POST['clave'])) { $registro=mysql_query("select ".$NOM.", ".$CLA." from ".$US." where ".$NOM."='$_POST[nombre]'"); $reg=mysql_fetch_array($registro); if (($_POST['nombre']==".$reg["$NOM"].")&&($_POST['clave']==".$reg["$CLA"].") ) { session_start(); $_SESSION['usuario']="usuario"; //QUE DEBERÍA COLOCAR AQUÍ EN VEZ DE 'USUARIO'? sería ".$reg["$NOM"]."? $_SESSION['tiempo']=time(); //A QUE SE REFIEREN ESTA DECLARACION? header("location:index.php"); } else header("location:index.php"); etc. etc.etc. etc. porfavor puede alguien instruirme en este tema? gracias! |
| ||||
Respuesta: crear usuarios Cosas a decirte: session_start(); siempre en la 1era linea de tu archivo php,
Código PHP:
Ver original porque si no puede dar problemas. $_SESSION es un array asociativo, que lo utilizas para guardar datos e ir pasandolos entre varios archivos siempre y cuando en cada 1 de ellos contenga al comienzo session_start. $var=$_post['nombre']; $_SESSION['var']="var"; con respescto a esto, creo que lo que queres hacer es esto $var=$_post['nombre']; $_SESSION['var']=$var; creas la variable $var que es igual al valor de la variable nombre que te llega por POST ( va en mayusculas ), y luego creas una posición llamada var en el array asociativo al cual le asignas el valor de $var, o sea el nombre. Recorda que $_SESSION es un array asociativo eso quiere decir que no se accede a sus elementos por un indice numérico ( $_SESSION[0]..etc ) sino que por un string, su indice es un string, en este caso 'var'. $registro=mysql_query("select ".$NOM.", ".$CLA." from ".$US." where ".$NOM."='$_POST[nombre]'"); una pregunta, $NOM, $CLA son campos en tu tabla? se supone que deberian serlo, sino esa consulta no te deberia funcionar, y $US es una tabla que existe en tu base de datos? session_start(); $_SESSION['usuario']="usuario"; //QUE DEBERÍA COLOCAR AQUÍ EN VEZ DE 'USUARIO'? sería ".$reg["$NOM"]."? acordate de lo que te dije, session_start va al comienzo siempre del archivo, ahi no va. $_SESSION['usuario'] tendria que ser $_SESSION['usuario'] = $reg['NOM']; para asignarle el nombre del usuario. http://www.php.net/manual/es/function.time.php la funcion time devuelve la fecha actual $_SESSION['tiempo']=time(); ahi almacenas la fecha en la posicion tiempo del array SESSION |
| |||
Respuesta: crear usuarios Muchas gracias Rrodrigo, el funcionamiento de $_SESSION puede ser comparado con el de $_POST? si es así cuál sería el equivalente a <form method="post">... para pasar la informacion? Las variables por las que me preguntabas antes si son parte de mi base de datos, unas son campos y la otra es el nombre de la tabla... estuve experimentado con los codigos que encontre: <?php session_start(); if (isset($_POST['nombre']) && isset($_POST['clave'])) { $registro=mysql_query("select ".$NOM.", ".$CLA." from ".$US." where ".$NOM."='$_POST[nombre]'"); $reg=mysql_fetch_array($registro); if (($_POST['nombre']=='".$reg["$NOM"]."')&&($_POST['clave']=='".$reg["$CLA"]."') ) { $_SESSION['usuario']=$reg["$NOM"]; $_SESSION['tiempo']=time(); header("location:index.php"); } else header("location:index.php"); } else { ?> pero solo logro que me redirija nuevamente al inicio en donde esta el formulario de ingreso, por alguna razon no se inicia la sesion, creo que tiene que ver con la variable $_SESSION['usuario'] y la relacion con la variable $reg["$NOM"] que yo puse Última edición por ANDRESDD; 26/08/2012 a las 20:59 |
| ||||
Respuesta: crear usuarios Cita: o sea para pasar las variables de session entre diferentes archivos tenes que tener en la 1er linea, esto session_start() eso significa que inicializa las variables de session, sin eso no podes usarlas, suponete que tenes estoarchivio1.php
Código PHP:
Ver original archivo2.php
Código PHP:
Ver original
Código PHP:
Ver original y con respecto a que se te redirecciona al mismo lugar, y es obvio si en las 2 condiciones pones q vallan al mismo lado, location: index.php. Para saber si se crean las sessiones hace un echo de la session como dije antes |
| |||
Respuesta: crear usuarios Bueno ahora ya entiendo mejor la variable session... con respecto a location:index.php te puedo decir que forma parte de un codigo que encontré y empecé a modificar para entenderlo mejor, el codigo pues si funciona, solo que cuando hago ciertas modificaciones no logro hacer cumplir la condicion para que se inicie la sesion... este es el link donde esta el codigo, prácticamente solo tenés que copiar y pegar en tu bloc de notas y listo.. http://hacerpaginaswebconphp.com/control-de-sesiones-en-php/ te lo dejo por si queres hecharle un vistazo y probarlo |
| |||
Respuesta: crear usuarios estuve probando con dos archivos aparte, prueba.php y prueba1.php pero me sale este mensaje de error: Notice: Undefined variable: _session a que se debe este error? <?php session_start(); $_session['us']="david"; ?> y <?php session_start(); echo $_session['us']; ?> |
| |||
Respuesta: crear usuarios Ya logre autentificarme como usuario en mi pagina, muchas gracias. Estuve experimentando y en una seccion coloqué el siguiente codigo para que solo usuarios puedan ver esta seccion <?php session_start(); include ("seg.php"); ?> y me salio el siguiente mensaje: Notice: A session had already been started - ignoring session_start() luego removí el session_start() y ya no me dio ese error... a primera vista parece que hice lo correcto al quitarlo, sin embargo no sé si al haberlo removido aún se reconoce que el usuario está dentro de su sesion?? o es suficiente con la comprobacion que hago en seg.php en donde compruebo que exista $_session['us'] ? |
| ||||
Respuesta: crear usuarios ese error te dice que pusiste en algun lado de tu archivo 2 veces session_start, asi que con 1 basta. Para comprobar si existe $_SESSION['us'] podes hacer echo $_SESSION['us']; y veras su valor ( SI ES QUE LO TIENE, sino no veras nada, pero no saldrá error )si te da algun error de que no esta creada entonces solo creala y listo, o sino podes usar la función isset, que evalua si existe o no una variable.
Código PHP:
Ver original |
| |||
Respuesta: crear usuarios bien ya casi está todo funcionando.. según entiendo la variable session_start() pasa las variables por medio de cookies, si fuera por medio de URL como se haría? |
| ||||
Respuesta: crear usuarios http://www.php.net/manual/es/intro.session.php cita "Un visitante que accede a su sitio web se el asigna un id único, también llamado id de sesión. Éste es almacenado en una cookie en la parte del cliente o se propaga en el URL." ahi explica bien |
Etiquetas: |