Доброе утро, я имею дело с существующим кодом, и мне нужно решить проблему: когда вы пишете URL-адрес без входа в Интернет, вы можете увидеть соответствующую страницу (кроме макета), что мне нужно, чтобы перенаправить на логин, чтобы избежать этого. Таким образом, вы можете видеть страницу без входа в систему
Проверка кода, который я видел, выглядит следующим образом:
layout. php
<body>
<?php if(isset($_SESSION["user_id"])):?>
HTML code (Logo, menu...)
<?php else:?>
<?php
View::load("login");
?>
<?php endif;?>
</body>
Если я изменю «View :: load (« login »);» to "header (" Location: index. php "); exit ();", это вызывает Infinite l oop и ничего не загружает. Я много исследовал в Stackoverflow и на других сайтах, но не нашел решения. Есть идеи?
ОБНОВЛЕНИЕ:
просмотр индекса. php
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>LegoBox</h1>
</div>
</div>
</div>
просмотр входа в систему. php
<?php
if(Session::getUID()!=""){
print "<script>window.location='index.php?view=home';</script>";
}
?>
<div class="container">
<div class="row">
<div class="col-md-4 col-md-offset-4">
<?php if(isset($_COOKIE['password_updated'])):?>
<div class="alert alert-success">
<p><i class='glyphicon glyphicon-off'></i> Se ha cambiado la contraseña exitosamente.</p>
<p>Pruebe iniciar sesion con su nueva contraseña.</p>
</div>
<?php setcookie("password_updated","",time()-18600);
endif; ?>
<div class="card">
<div class="card-header" data-background-color="lemon">
<h4 class="title">Acceder</h4>
</div>
<div class="card-content table-responsive">
<form accept-charset="UTF-8" role="form" method="post" action="index.php?view=processlogin">
<fieldset>
<div class="form-group">
<input class="form-control" placeholder="Usuario" name="mail" type="text">
</div>
<div class="form-group">
<input class="form-control" placeholder="Contraseña" name="password" type="password" value="">
</div>
<input class="btn btn-primary btn-block" type="submit" value="Iniciar Sesion" style="background-color:#339c24">
</fieldset>
</form>
</div>
</div>
</div>
</div>
</div>
processlogin -вид. php
<?php
if(Session::getUID()=="") {
$user = $_POST['mail'];
$pass = sha1(md5($_POST['password']));
$base = new Database();
$con = $base->connect();
$sql = "select * from user where (email= \"".$user."\" or username= \"".$user."\") and password= \"".$pass."\" and is_active=1";
//print $sql;
$query = $con->query($sql);
$found = false;
$userid = null;
while($r = $query->fetch_array()){
$found = true ;
$userid = $r['id'];
}
if($found==true) {
// print $userid;
ini_set('session.cookie_lifetime', 60 * 60 * 24 * 7);
$_SESSION['user_id']=$userid;
// setcookie('userid',$userid);
// print $_SESSION['userid'];
print "Cargando ... $user";
print "<script>window.location='index.php?view=home';</script>";
}else {
print "<script>window.location='index.php?view=login';</script>";
}
}else{
print "<script>window.location='index.php?view=home';</script>";
}
?>