Hola,
A ver si me podéis ayudar. He hecho una pregunta hace poco pero no es la misma y por eso la abro en este nuevo post.
Sé que utilizo mysql y debería utilizar mysqli (estoy en ello).
La duda es la siguiente:
En el siguiente código quiero que me dirija a una página si if( $rs[0]="2") es 2 o me lleve a otra si es 1.
No hay manera que me lo haga, parece como que lo omite (no sé por qué)
Si me registro con un usuario que tenga id_TipoUsuario=1 el código tal como está no debería seguien en el if( $rs[0]="2") y sin embargo lo omite y sí lo logea.
Mi idea era poner al final del código lo mismo con if( $rs[0]="1") y copiar pero redireccionando a administrador.php pero nada, no hay manera.
A ver si me podéis orientar en dónde está el error
<?php
include("conectar_bd.php");
conectar_bd();
$usr = $_POST['usuario'];
$pw = $_POST['password'];
//Obtengo la version cifrada del password
$pw_enc = md5($pw);
$sql1 = "SELECT id_TipoUsuario FROM tbl_users
WHERE tx_username = '".$usr."'";
$result1=mysql_query($sql1,$conexio);
$uid = "";
$rs=mysql_fetch_array($result1);
if( $rs[0]="2"){
$sql = "SELECT id_usuario FROM tbl_users
INNER JOIN ctg_tiposusuario
ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
WHERE tx_username = '".$usr."'
AND tx_password = '".$pw_enc."' ";
$result =mysql_query($sql,$conexio);
$uid = "";
//Si existe al menos una fila
if( $fila=mysql_fetch_array($result) )
{
//Obtener el Id del usuario en la BD
$uid = $fila['id_usuario'];
//Iniciar una sesion de PHP
session_start();
//Crear una variable para indicar que se ha autenticado
$_SESSION['autenticado'] = 'SI';
//Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
$_SESSION['uid'] = $uid;
//CODIGO DE SESION
//Crear un formulario para redireccionar al usuario y enviar oculto su Id
?>
<form name="formulario" method="post" action="principalcero.php">
<input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
</form>
<?php
}
else {
?>
<form name="formulario" method="post" action="index.php">
<input type="hidden" name="msg_error" value="1">
</form>
<?php
}
?>
<script type="text/javascript">
//Redireccionar con el formulario creado
document.formulario.submit();
</script>
<?php
}
?>
if ($rs[0]="2")
tatuate -> "=" es asignacion, "==" es comparación!
Mil gracias. ME ha encantado lo de tatuate. Graciassss
Hola,
He conseguido que me incorpore la validación por tipo de usuario, pero me falta añadir un else (en caso de que el usuario se equivoque en el user o en pass) que me redireccione a index.php
Lo incluyo en diferentes partes (entendría que debería aparecer dos veces por cada if $rs[0]=="2" o "1" pero no hay manera que me redirija al index.php
A ver si me podéis dar una orientación
Mi código es:
<?php
include("conectar_bd.php");
conectar_bd();
$usr = $_POST['usuario'];
$pw = $_POST['password'];
//Obtengo la version cifrada del password
$pw_enc = md5($pw);
$sql1 = "SELECT id_TipoUsuario FROM tbl_users
WHERE tx_username = '".$usr."'
AND tx_password = '".$pw_enc."' ";
$result1=mysql_query($sql1,$conexio);
$uid = "";
$rs=mysql_fetch_array($result1);
if( $rs[0]=="2"){
$sql = "SELECT id_usuario FROM tbl_users
INNER JOIN ctg_tiposusuario
ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
WHERE tx_username = '".$usr."'
AND tx_password = '".$pw_enc."'
";
$result =mysql_query($sql,$conexio);
$uid = "";
//Si existe al menos una fila
if( $fila=mysql_fetch_array($result) ) {
//Obtener el Id del usuario en la BD
$uid = $fila['id_usuario'];
//Iniciar una sesion de PHP
session_start();
//Crear una variable para indicar que se ha autenticado
$_SESSION['autenticado'] = 'SI';
//Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
$_SESSION['uid'] = $uid;
//CODIGO DE SESION
//Crear un formulario para redireccionar al usuario y enviar oculto su Id
?>
<form name="formulario" method="post" action="principalcero.php">
<input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
</form>
<?php
}
}
elseif( $rs[0]=="1"){
$sql = "SELECT id_usuario FROM tbl_users
INNER JOIN ctg_tiposusuario
ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
WHERE tx_username = '".$usr."'
AND tx_password = '".$pw_enc."'
";
$result =mysql_query($sql,$conexio);
$uid = "";
//Si existe al menos una fila
if( $fila=mysql_fetch_array($result) )
{
//Obtener el Id del usuario en la BD
$uid = $fila['id_usuario'];
//Iniciar una sesion de PHP
session_start();
//Crear una variable para indicar que se ha autenticado
$_SESSION['autenticado'] = 'SI';
//Crear una variable para guardar el ID del usuario para tenerlo siempre disponible
$_SESSION['uid'] = $uid;
//CODIGO DE SESION
//Crear un formulario para redireccionar al usuario y enviar oculto su Id
?>
<form name="formulario" method="post" action="administrador.php">
<input type="hidden" name="idUsr" value='<?php echo $uid ?>' />
</form>
<?php
}
else {
//En caso de que no exista una fila...
//..Crear un formulario para redireccionar al usuario a la pagina de login
//enviandole un codigo de error
?>
<form name="formulario" method="post" action="index.php">
<input type="hidden" name="msg_error" value="1">
</form>
<?php
}
}?>
<script type="text/javascript">
//Redireccionar con el formulario creado
document.formulario.submit();
</script>
He visto que a veces se utiliza este código en el else
<?php
else{
echo "<script>alert('Se ha equivocado en el pass o en el usuario');</script>"; //saco una alerta de no autorizacion
echo "<script>window.location='index.php' ;</script>;" /// lo redirecciono a la pagina de login
}
?>
¿Esto dónde lo podría colocar para que me redireccionara si el pass o el user no coinciden?
Muchas Gracias a ver si me podéis ayudar