estoy creando un login, y aparentemente todo deberia ir bien pero no funciona.
tengo un archivo que verifica los datos del formulario de inicio de sesion:
Código PHP:
session_start();
include '../includes/conexion.php';
function validamail($pMail) {
$comprobar = preg_match("/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$/i", $pMail);
if ($comprobar) {
return true;
}
else {
return false;
}
}
if (isset($_POST['enviar'])) {
//Comprobacion del envio del nombre de usuario y contraseña.
$user = $_POST['username'];
$password = $_POST['password'];
if ($password == NULL) {
echo'contraseña vacia var 0';
}
else{
$isemail = validamail($user);
if($isemail) {
$query = mysql_query("SELECT * FROM users WHERE email = '$user'") or die(mysql_error);
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo'contraseña incorrecta var1';
}
else{
$query = mysql_query("SELECT * FROM users WHERE email = '$user'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION['s_username'] = $row['username'];
$_SESSION['s_iduser'] = $row['id'];
if($_SESSION['s_username']){
echo'
<script language="Javascript">
location.href="../index.php";
</script>
';
}
else{
echo'sesion no iniciada var1';
}
}
}
else{
$query = mysql_query("SELECT * FROM users WHERE username = '$user'") or die(mysql_error);
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo'contraseña incorrecta var2';
}
else{
$query = mysql_query("SELECT * FROM users WHERE username = '$user'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION['s_username'] = $row['username'];
$_SESSION['s_iduser'] = $row['id'];
if($_SESSION['s_username']){
echo'
<script language="Javascript">
location.href="../index.php";
</script>
';
}
else{
echo'sesion no iniciada var2';
}
}
}
}
}
else{
echo'no hay datos';
}
como veran el codigo al verificar la cuenta y detectar la sesion, redirecciona al directorio principal, y este tiene dos variables:
1- si hay una sesion activa muestra la interfaz usuario.
2- si no hay sesion, muestra la interfaz visitante.
pareciese que la sesion se perdiera, al redireccianar con la sesion creada deberia mostrar la interfaz usuario, pero siempre muestra la de visitante, en algunos sitios mensionan que la sesion se pierde debido a una configuracion del host, y que se soluciona con el htaccess porque el php.ini no se puede acceder en mi host.
que deberia hacer?