0 Usuarios y 1 Visitante están viendo este tema.
Gracias por el dato. Te comento que agregue en el index (donde se encuentra el formulario de login) el siguiente código.<?session_start();$_SESSION["nick"] = $nick;?> Luego, en las páginas que quiero restringir, el siguiente.<?session_start();if ($_SESSION["nick"] != "SI") { header("Location: index.php"); exit();}?> Al querer ingresar sin estar logeado funciona perfectamente, el problema viene cuando el usuario hace login... el redireccionamiento al index.php sigue. Es decir, usuarios logeados o no, no tienen acceso a dichas páginas.Cual podrá ser mi error.Gracias por la ayuda.
if ($_SESSION["nick"] != "SI")
if ($_SESSION["nick"] != "SI") Si el nick no se encuentra entonces me redireccione a index.php. Esta mal esa parte cierto?
if ($_SESSION["nick"] == "")oif ( empty( $_SESSION["nick"] ) ) oif (isset($_SESSION["nick"] ) )
<?php session_start();//acostumbrate a usarlo al inicio, aunke no esta mal como lo tenias lo ke se busca es ke no alla salida de texto ke genere un header antes ke session_start() ¿ok? //variables para base de datos $dbhost = 'localhost'; $dbusername = 'asdasd'; //datos de prueba $dbuserpass = 'uasdasdc5iCWCWV!YC]Oz<C}1Q'; //datos de prueba $dbname = 'asdasdasd'; //datos de prueba mysql_connect($dbhost, $dbusername, $dbuserpass) or die(mysql_error()); mysql_select_db($dbname) or die (mysql_error()); $nick = trim($_POST['nick']); $password = trim($_POST['password']); /*Validamos si el nick y el pass fueron escritos*/ if( $nick == "" || $password == "" ) /*Aki lo puedes mejorar*/ { echo '<script>alert("Tanto Nick como Password son necesarios"); history.go(-1);</script>'; exit; } /*Debes proteger la variable nick aki ya ke puedes ser victima de inyeccion sql*/ $query = mysql_query("SELECT password FROM registro WHERE nick = '".$nick."'") or die(mysql_error()); $data = mysql_fetch_array($query); /*Validamos si ese nick es correcto*/ if( mysql_num_rows($query) == 0 ) { echo '<script>alert("El nick proporcionado no existe en la base de datos"); history.go(-1);</script>'; exit; } /*validamos si el pass que se dio es igual al de la BD*/ if( $data['password'] != $password ) { echo '<script>alert("El password proporcionado es incorrecto"); history.go(-1);</script>'; exit; } /*Si todo va bien generamos la sesion*/ $_SESSION["nick"] = $nick; echo '<script>alert("Bienvenido"); location.href = "index.php";</script>'; ?>
session_start();if( $_SESSION["nick"] == "" ) /*puedes mejorar esto, solo para modo ejemplo*/{echo '<script>alert("Zona solo para usuarios logueados."); location.href="index.php";</script>';exit;}
INSERT INTO asdas (nick, otros campos) VALUES ( $_SESSION['nick'] , otros campos)
El código de el_santo funciono a las mil maravillas. Muchas gracias!Ahora comenzaré a documentarme sobre headers para hacer los redireccionamientos. Gracias belisario!Espero no cierren el post, para poder plantear cualquier otra duda que se me presente. Por otro lado me gustaría hacerles una consulta... no sé si este sea el lugar correcto: donde puedo hacer un buen curso de php y bases de datos? gracias.
Buenas tardes! Haciendo pruebas, he logrado restringir el acceso a varias secciones del website, nuevamente gracias.Ahora, cuando x usuario rellene el formulario que va a parar a la segunda tabla esta se genera perfectamente, pero no inserta la variable nick. $insertar = mysql_query("INSERT INTO quiniela_futbol (nick, dgoles, mfinalLocal, mfinalVisitante, mmediotLocal, mmediotVisitante, fganador, empate, penalti, ntarjetas, ngoles, cgolesprimertiempo, cgolessegundotiempo) VALUES ( '{$_SESSION['nick']}' , '{$dgoles}', '{$mfinalLocal}', '{$mfinalVisitante}', '{$mmediotLocal}', '{$mmediotVisitante}', '{$fganador}', '{$empate}', '{$penalti}', '{$ntarjetas}', '{$ngoles}', '{$cgolesprimertiempo}', '{$cgolessegundotiempo}')", $conexion); if (!$insertar) { die("Fallo en la insercion de registro en la Base de Datos: " . mysql_error()); }Si lo tengo así no da ningún error, pero no inserta el nick. Y si le quito las comillas a {$_SESSION['nick']} me arroja el siguiente error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near.Imagino es un problema con la variable $_SESSION, algo pude leer sobre las comillas dobles y simples... por ahí irá el problema?Gracias de antemano!
VALUES '{$_SESSION['nick']}'
VALUES '{".$_SESSION['nick']."}', bla bla bla