Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel Gurgel

[Resolvido] Proteção De Página Com Cadastro Em Php

Recommended Posts

Oi, tenho um script pronto de login e cadastro em php, mas eu queria proteger umas páginas e forçar usuários a fazer login. Posto logo abaixo o código. Espero que possam me ajudar!

Obs: o sistema está em inglês.

 <?php include "base.php"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>Be a Lamb | Mariah's Theme</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>  

<body>  
<div id="main">

<?php
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))
{
        ?>

   <h1>Welcome,<?=$_SESSION['Username']?>!! </h1>
        <p>Glad to see you here again, <b><?=$_SESSION['Username']?></b> . Your email address is <b><?=$_SESSION['EmailAddress']?></b>.</p>

   <ul>
       <li><a href="logout.php">Logout.</a></li>
   </ul>

   <?php
}
elseif(!empty($_POST['username']) && !empty($_POST['password']))
{
        $username = mysql_real_escape_string($_POST['username']);
   $password = md5(mysql_real_escape_string($_POST['password']));

        $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");

   if(mysql_num_rows($checklogin) == 1)
   {
        $row = mysql_fetch_array($checklogin);
       $email = $row['EmailAddress'];

       $_SESSION['Username'] = $username;
       $_SESSION['EmailAddress'] = $email;
       $_SESSION['LoggedIn'] = 1;

        echo "<h1>Success</h1>";
       echo "<p>We are now redirecting you to the member area.</p>";
       echo "<meta http-equiv='refresh' content='2;lamb_logged.php' />";
   }
   else
   {
        echo "<h1>Error</h1>";
       echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>";
   }
}
else
{
       ?>

  <h1><img src="http://gabrielgurgel.zxq.net/mariahtheme/be-a-lamb/lamb_ico.png" width="60" height="50">  Lambs Login</h1>

  <p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>

       <form method="post" action="index.php" name="loginform" id="loginform">
       <fieldset>
               <label for="username">Username:</label><input type="text" name="username" id="username" /><br />
               <label for="password">Password:</label><input type="password" name="password" id="password" /><br />
               <input type="submit" name="login" id="login" value="Login" />
       </fieldset>
       </form>
   <a href="about.php">click here to learn more about membership</a>
  <?php
}
?>
</div>
</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra isso, você irá criar um arquivo chamado seguranca.php, e nele terá o seguinte código:

 

<?php
       session_start();
if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {
	header("Location: login.php");
}
?>

 

E em todas as páginas que irá ser restrita a pessoas não logadas, você irá dar um include no seguranca.php, mas você irá incluir este arquivo na primeira linha do seu documento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou... posso perguntar mais uma coisa nesse tópico se é que permitido.

Como eu faço pro usuário após fazer o login ser redirecionado pra página que ele estava. Muito obrigado pela ajuda Wanderson Valerio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

header("Location: pagina.php");

 

Para redirecionar, faça da maneira acima, e troque "pagina.php" pela página que você quer que o usuário seja redirecionado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, o usuário volte para a página que ele estava antes de ser forçado a fazer login, tipo, eu quero acessar pagina1.php aí sou forçado ai pro login. Aí depois que faço login volto para a pagina1.php, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código de login tá no código que eu postei ali em cima... aqui ta mais detalhado.

 <h1><img src="http://gabrielgurgel.zxq.net/mariahtheme/be-a-lamb/lamb_ico.png" width="60" height="50">  Lambs Login</h1>

  <p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>

       <form method="post" action="index.php" name="loginform" id="loginform">
       <fieldset>
               <label for="username">Username:</label><input type="text" name="username" id="username" /><br />
               <label for="password">Password:</label><input type="password" name="password" id="password" /><br />
               <input type="submit" name="login" id="login" value="Login" />
       </fieldset>
       </form>
   <a href="about.php">click here to learn more about membership</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php
       session_start();
       if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {

           $url = $_SERVER['php_self'].$_SERVER['query_string'];
           header("Location: login.php?url=$url");
       }
?>


 

 

e na página de login tu pegar por get a url e faz com que depois do login ele seja redirecionado para ela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael, o código que eu to usando pra proteger as páginas e redirecionar para o login é esse:

verify.php

<?php
       session_start();
       if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {
               header("Location: login.php");
       }
?>

 

Como eu faço o código na página do login?

Compartilhar este post


Link para o post
Compartilhar em outros sites

verify.php

 

<?php
session_start();
if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {
		header("Location: login.php");
}
$url = $_SERVER['php_self'].$_SERVER['query_string'];
$_SESSION['redirect'] = $url;
?>

 

E na sua página de login, na parte de redirecionar para o painel.

 

<?php
(isset($_SESSION['redirect'])) ? $redirect = $_SESSION['redirect'] : $redirect = "index.php";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou... Eu fiz o que o Rafael falou, mudei o meu arquivo verify.php para:

<?php
       session_start();
       if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {

           $url = $_SERVER['php_self'].$_SERVER['query_string'];
           header("Location: login.php?url=$url");
       }
?>

 

Aí a url ficou assim: /be-a-lamb/login.php?url=

o que falta?

 


<?php
       session_start();
       if (!isset($_SESSION['Username']) or !isset($_SESSION['EmailAddress']) or !isset($_SESSION['LoggedIn'])) {

           $url = $_SERVER['php_self'].$_SERVER['query_string'];
           header("Location: login.php?url=$url");
       }
?>


 

 

e na página de login tu pegar por get a url e faz com que depois do login ele seja redirecionado para ela

 

qual o código pro login?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código de login está embutido no index,mas agora eu separei em uma página.

 

<?php include "base.php"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>Be a Lamb | Mariah's Theme</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>  

<body>  
<div id="main">
 <h1><img src="http://gabrielgurgel.zxq.net/mariahtheme/be-a-lamb/lamb_ico.png" width="60" height="50">  Lambs Login</h1>

  <p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>

<form method="post" action="index.php" name="loginform" id="loginform">
<fieldset>
	<label for="username">Username:</label><input type="text" name="username" id="username" /><br />
	<label for="password">Password:</label><input type="password" name="password" id="password" /><br />
	<input type="submit" name="login" id="login" value="Login" />
</fieldset>
</form>
   <a href="about.php">click here to learn more about membership</a>
  <?php
}
?>
</div>
</body>

</html>

 

Alguém pode me ajudar????

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.