Header location

  • Autor Autor Linares
  • Fecha de inicio Fecha de inicio
L

Linares

Beta
Verificado por Whatsapp
Buenas, que tal?

Les cuento mi inconveniente, tengo el siguiente código:

PHP:
<?php
session_start();
require_once("includes/connection.php");
include("includes/header.php");

if(isset($_SESSION["session_username"])){
// echo "Session is set"; // for testing purposes
header("Location: intropage.php");
}

if(isset($_POST["login"])){

if(!empty($_POST['username']) && !empty($_POST['password'])) {
    $username=$_POST['username'];
    $password=$_POST['password'];

    $query =mysql_query("SELECT * FROM usertbl WHERE username='".$username."' AND password='".$password."'");

    $numrows=mysql_num_rows($query);
    if($numrows!=0)

    {
    while($row=mysql_fetch_assoc($query))
    {
    $dbusername=$row['username'];
    $dbpassword=$row['password'];
    }

    if($username == $dbusername && $password == $dbpassword)

    {


    $_SESSION['session_username']=$username;

    /* Redirect browser */
    header("Location: intropage.php");
    }
    } else {

 $message =  "Nombre de usuario ó contraseña invalida!";
    }

} else {
    $message = "Todos los campos son requeridos!";
}
}
?>
    <div class="container mlogin">
            <div id="login">
    <h1>Login</h1>
<form name="loginform" id="loginform" action="" method="POST">
    <p>
        <label for="user_login">Nombre De Usuario<br />
        <input type="text" name="username" id="username" class="input" value="" size="20" /></label>
    </p>
    <p>
        <label for="user_pass">Contraseña<br />
        <input type="password" name="password" id="password" class="input" value="" size="20" /></label>
    </p>
        <p class="submit">
        <input type="submit" name="login" class="button" value="Entrar" />
    </p>
</form>

    </div>

    </div>
	
<?php 
include("includes/footer.php");	
if (!empty($message)) {echo "<p class=\"error\">" . "MESSAGE: ". $message . "</p>";} 
?>

Y por alguna razón, cuando le doy click a entrar solo refresca la pagina y no me re-direcciona a intropage.php, alguien sabría el porque?

Gracias!

- - - Actualizado - - -

Listo lo solucione, solo tuve que cambiar esta linea:

header("Location: intropage.php");

por esta:

echo '<script type="text/javascript">window.location.href="intropage.php";</script>';
 
Un mal codigo tienes.

PHP:
if(isset($_SESSION["session_username"])){ 
// echo "Session is set"; // for testing purposes 
header("Location: intropage.php"); 
}

Prueba con esto :


PHP:
  if(!isset($_SESSION['session_username'])) {

    header('location: /intropage.php');
    
  } else {

    // echo 'Usuario con sesion iniciada';
  }

revisando un poco, tambien podrias tener un error con el archivo header, tal vez tiene otro codigo haciendo interferencia con el actual.

lo mejor es que haga un require y no un include igual que la base de datos.
 
Supongo que en tu archivo includes/header.php tienes el html del header de tu página?

header() no se puede usar si ya se hizó un output (si ya escribiste algo como html, un texto, etc)

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

PHP: header - Manual

Saludos.
 
Atrás
Arriba