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';
}
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?