Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Big-D

Hide/Show layers em PHP (Resolvido)

Recommended Posts

Big-D

Bom Dia,

Gostava de saber se é possivel atraves de PHP esconder uma div.

passo o exemplo:

Enquanto o login nao for efectuado aparecem as seguintes divs: Registar e Login; após o login ter sido feito essas duas divs escondem-se e aparece as seguintes divs: ola "user" e Logout; e vice versa.

Opiniões??? Resto de um bom dia e obrigado

Share this post


Link to post
Share on other sites
cyclop

if  (verificasetemLoginFeito) { echo('<div> olá '.$varQueTemOUser.'</div>') }else{ echo('<div>formulario de login etc...</div>'); }

qual a duvida?


"Quando eu for grande quero ser como o Celso"

Share this post


Link to post
Share on other sites
Big-D

Eu nao sei se fui eu que nao percebi ou se me expliquei mal mas é o seguinte:

Eu tenho a pagina de login onde o user faz o seu login normal e na pagina index aparece numa div ola "user".

Caso o login nao seja feito sempre que for á pagina index aparece "Ola estranho!". Isto funciona bem a questão é:

Na pagina index tenho as opçoes login e registar que so podem aparecer enquanto nao houver um login efectuado caso ja haja so aparece a opçao logout, ou seja, na pagina index (sem login) aparece as opçoes Login e Registar. Caso o login seja efectuado na pagina index so aparecera a opçao de logout tando as outras duas escondidas.

Eu gostava era de conseguir fazer isso

Share this post


Link to post
Share on other sites
Big-D

Sim tenho. Aqui ta o codigo usado:

<?php 
// Connects to your Database 
mysql_connect("localhost", "root", "") or die(mysql_error()); 
mysql_select_db("supless") or die(mysql_error()); 

//Checks if there is a login cookie
if(isset($_COOKIE['ID_my_site']))

//if there is, it logs you in and directes you to the members page
{ 
$username = $_COOKIE['ID_my_site']; 
$pass = $_COOKIE['Key_my_site'];

$check = mysql_query("SELECT * FROM supless WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check )) 
{
if ($pass != $info['password']) 
{
}
else
{
header("Location: login.php");

}
}
}

//if the login form is submitted
if (isset($_POST['submit'])) { // if form has been submitted

// makes sure they filled it in
if(!$_POST['username'] | !$_POST['pass']) {
echo "<script>alert('Por favor, preencha todos os campos.'); window.location=\"login.php\"</script>";
}
// checks it against the database

if (!get_magic_quotes_gpc()) {
$_POST['email'] = addslashes($_POST['email']);
}
$check = mysql_query("SELECT * FROM supless WHERE username = '".$_POST['username']."'")or die(mysql_error());

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
echo "<script>alert('O utilizador não existe, por favor volte-se a registar!'); window.location=\"registo.php\"</script>";
}
while($info = mysql_fetch_array( $check )) 
{
$_POST['pass'] = stripslashes($_POST['pass']);
$info['password'] = stripslashes($info['password']);
$_POST['pass'] = md5($_POST['pass']);

//gives error if the password is wrong
if ($_POST['pass'] != $info['password']) {
die('Incorrect password, please try again.');
}
else 
{ 

// if login is ok then we add a cookie 
$_POST['username'] = stripslashes($_POST['username']); 
$hour = time() + 20000; 
setcookie(ID_my_site, $_POST['username'], $hour); 
setcookie(Key_my_site, $_POST['pass'], $hour);	

//then redirect them to the members area 
header("Location: index.php"); 

} 
}
}
else 
{	

// if they are not logged in 
?>

Share this post


Link to post
Share on other sites
jcfr

um concelho á parte disto, tenta, sempre que precisares apenas de meia duzia de dados da base de dados, não utilizar o * na pesquisa, usa antes algo do genero:

SELECT id, user, pass, nome FROM registos WHERE.....

a pesquisa torna-se mais rápida principalmente quando tiveres milhares de utilizadores, não que seja importante em nets actualizadas mas pelo menos no nosso pais ainda existem muitas terrinhas que se tiverem net a 512kb já é muito bom e terem já não é nada mau...

é o pais que temos mas para que não se torne demasiado lento para esses utilizadores é aconcelhável restringires os campos...

quanto à tua duvida, se bem percebi o utilizador tem acesso à página quer esteja autenticado ou nao esteja

e pelo que li já tens uma div a dizer ola estranho, isso quer dizer que nao se encontra autenticado...

nao sei se estou correcto mas se é estranho não se registou, por isso em vez de dizeres ola estranho devias apresentar a opção registar e login.

em caso de login falhado deves apresentar uma mensagem a dizer que os dados estao incorrectos e para tentar novamente e apresentas igualmente a opçao login e registar....

não sei qual e a duvida... é so substituires a div que diz ola estranho...

Share this post


Link to post
Share on other sites
Big-D

A duvida é que (pondo de lado a parte do Ola estranho) se o individuo não tiver logado a div que é apresentada no index tem de dizer p.e.:Login / Registar mas se o individuo fizer login a div que é apresentada no index tem de dizer Logout. Via javascrcipt ja tentei e não consegui por isso perguntei se via PHP era possível fazer o hide show layers para que seja possível eu fazer o que quero.

Resto de um Bom Dia

Share this post


Link to post
Share on other sites
jcfr

nao sei se é possivel fazer hide and show divs em php, penso que nao mas podes sempre fazer algo do genero:

<table width="100%">

<tr>
    	<td width="31%"><?php if((isset($_SESSION['user']))&&(!empty($_SESSION['user']))){echo "Benvindo senhor(a) $nome!";}else{echo "Benvindo desconhecido!";}?> </td>
        <td width="52%"> </td>
        <td width="17%"><?php if((isset($_SESSION['user']))&&(!empty($_SESSION['user']))){?><a href="logout.php">Logout</a><?php }else{?><a href="login.php">Login</a>/<a href="registar.php">Registar</a><?php }?></td>
    </tr>
    <tr>
    	<td width="31%" colspan="3">Conteudo da Página</td>

    </tr>
</table>

faz o que pretendes e inclui também o benvindo desconhecido...

a não ser que eu tenha percebido mal o que querias....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.