Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: pajaras en 13 Septiembre 2010, 20:48 PM

Título: login y bienvenido
Publicado por: pajaras en 13 Septiembre 2010, 20:48 PM
Hola a todos/as. La cuestión es la siguiente:
Cuando un usuario se registra lo guardo en una base de datos, luego cuando se loguea quiero que se redireccione a otra pagina y ponga:

Bienvenido, NICK!

este nick debe de coincidir con el nick de la persona que se ha logueado y que tengo en la base de datos, no lo consigo hacer funcionar, alguna ayuda?

gracias, el pajaras
Título: Re: login y bienvenido
Publicado por: Shell Root en 13 Septiembre 2010, 20:49 PM
Y el código?
Título: Re: login y bienvenido
Publicado por: pajaras en 13 Septiembre 2010, 20:59 PM
Hola shellroot, lo estoy haciendo con dreamweaver, tengo la pagina de login.php y cuando es correcto lo redirecciona a login_succed.php En esta ultima pagina he creado una variable de sesion detras de bienvenido, pero no me funciona, tambien lo e intentado con cookies, pero no lo consigo hacer. De codigo entinendo pero no demasiado, que codigo quieres el de juego de registro?

gracias

PD: quisiera crear un juego de registro en login_succed.php e insertar la variable apodo detras de bienvenido.
este apodo lo puedo obtener del userID y podria pasar el userID de una pagina a otra, pero como? URL?
Título: Re: login y bienvenido
Publicado por: Shell Root en 13 Septiembre 2010, 21:19 PM
Lo que tengas de login y para mostrar el nick, diferenciando cada pagina porfavor.
Título: Re: login y bienvenido
Publicado por: pajaras en 13 Septiembre 2010, 21:22 PM
login:

<?php require_once('Connections/conn_eeibairsoft.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['apodo'])) {
  $loginUsername=$_POST['apodo'];
  $password=$_POST['pwd'];
  $MM_fldUserAuthorization = "userGroup";
  $MM_redirectLoginSuccess = "login_succed.php";
  $MM_redirectLoginFailed = "login_failed.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_conn_eeibairsoft, $conn_eeibairsoft);
     
  $LoginRS__query=sprintf("SELECT apodo_nick, pwd, userGroup FROM tbl_users WHERE apodo_nick='%s' AND pwd='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
   
  $LoginRS = mysql_query($LoginRS__query, $conn_eeibairsoft) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
   
    $loginStrGroup  = mysql_result($LoginRS,0,'userGroup');
   
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;        

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>



login_succed.php :
<?php require_once('Connections/conn_eeibairsoft.php'); ?>
<?php
$colname_rs_loginsucced = "-1";
if (isset($_GET['userID'])) {
  $colname_rs_loginsucced = (get_magic_quotes_gpc()) ? $_GET['userID'] : addslashes($_GET['userID']);
}
mysql_select_db($database_conn_eeibairsoft, $conn_eeibairsoft);
$query_rs_loginsucced = sprintf("SELECT userID, username, pwd, apodo_nick FROM tbl_users WHERE userID = %s", $colname_rs_loginsucced);
$rs_loginsucced = mysql_query($query_rs_loginsucced, $conn_eeibairsoft) or die(mysql_error());
$row_rs_loginsucced = mysql_fetch_assoc($rs_loginsucced);
$totalRows_rs_loginsucced = mysql_num_rows($rs_loginsucced);


?>
Título: Re: login y bienvenido
Publicado por: Shell Root en 13 Septiembre 2010, 22:10 PM
Ok, cuando se ejecuta correctamente y se inserta el usuario en la base de datos, podes usar la siguiente función para retomar el nick que puso en el registro.

Código (php) [Seleccionar]

function fCallNick($sID){
 $sSQL = 'SELECT sNick FROM tblusers WHERE(sID ='.$sID.')';
 $sQuery = mysql_query($sSQL);
 if($sQuery){
   $sResult = mysql_fetch_array($sQuery);
   return $sResult[0];
 }else{
   return mysql_error();
 }
}#jejeje creo que así, ando leyendo un libro de porno y no esque este muy concentrado en estó.


El retorno de la función, la guardas en una SESSION o COOKIE,
Código (php) [Seleccionar]
SESSION['sNick'] = fCallNick('001');
para despues mostrarla en el otro archivo.
Código (php) [Seleccionar]
echo SESSION['sNick'];
Título: Re: login y bienvenido
Publicado por: ~ Yoya ~ en 13 Septiembre 2010, 22:13 PM
Bueno, te explico con un ejemplo de como lo podrías hacer...

Login.php
Código (php) [Seleccionar]

<?php
session_start
();
/*$connecion = mysql_connect('127.0.0.1', 'root', 'pass');
mysql_select_db('ejemplo', $connecion);*/


$user 'admin';
$pass 'hola';

$sql printf("select user, pass from login where user='%s' AND pass='%s'"mysql_real_escape_string($user), mysql_real_escape_string($pass));//Costumbre xD
if(mysql_query($sql){
$_SESSION['user'] = $user;

//Aqui el header para redireccion
}

?>


login_succed.php
Código (php) [Seleccionar]
<?php
session_start
();
if(!isset(
$_SESSION['user'])){
exit;
//Si no esta definida la session user, finalizamos el script
}

//Aunque bueno, esto no es necesario, ya que si existe la session user, es porque 
//Te haz logueado correctamente y nose porque lo quieres ocupar
$sql printf("select user from login where user='%s'"mysql_real_escape_string($_SESSION['user']));

if(
mysql_query($sql){
echo 
"Bienvenido ".$_SESSION['user'];
}

?>