Inicio Sesión

Otra cuestión que me da error, quiero que los usuarios se identifiquen, para los cual les solicito un usuario y una clave. Dichos datos los quiero comparar con los que tengo en una bbdd de usuarios, para lo cual los datos introducidos en el formulario de acceso, los recibo en esta página,
<?php
session_start();
$_SESSION['usuario']=$_REQUEST['Usuario'];
$_SESSION['clave']=$_REQUEST['Clave'];
require("dbconnect.inc.php");
$registro=mysql_query("select Usuario, Clave from Usuarios where Usuario='$_SESSION[usuario]'",$conn) or die("problema en select");
if ($reg=mysql_fetch_array($registro))
                 if ($_SESSION['clave']=$registro["Clave"]
                           $_SESSION["validado"] = true;
?>
Me da el siguiente error :
Parse error: syntax error, unexpected T_VARIABLE in /mnt/web8/32/59/51867959/htdocs/acceso.php on line 9

1 respuesta

Respuesta
1
En efecto tienes un error en la línea 9 como te dice el compilador. De hecho son dos errores: la comparación no se realiza con un = sino con dos == y puesto que has abierto el paréntesis después del if tienes que cerrarlo al final:
if ($_SESSION['clave']==$registro["Clave"])
Ya he corregido los errores que me indicabas, pero ahora al ejecutarlo me sale por el die del select (el que indica "problema en select"), ¿por qué puede ser?
Por cierto, ¿podría hacerlo de la siguiente forma y así ahorrarme un if?
$registro=mysql_query("select Usuario, Clave from Usuarios where Usuario=='$_SESSION[usuario]' and Clave=='$_SESSION[Clave]'",$conn) or die("problema en select");
He probado a sustituirlo y me sigue saliendo por el "problema en el select"
Cuando sale por el die es que la sentencia tiene algún error. Suele ayudar copiar la sentencia en phpMyAdmin para comprobarla, ya que normalmente te explica el error. Puede ser un campo que no existe, el nombre de la tabla mal tecleado, etc.
En tu caso, el error es que usas la comparación con dos iguales y, resulta que en SQL se usa sólo uno, distinto como ves al caso de PHP y otros lenguajes de programación.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas