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

diokhan

popup login

13 mensagens neste tópico

boas,

eu tentei pesquisar no fórum por popup login, mas dava-me sempre erro, internal error 500, por isso decidi iniciar o novo tópico.

no meu site ja tenho o login a funcionar, mas o meu chefe quer que o login seja um popup, para não estar sempre a mudar de pagina, e assim ficava um popup para o login, sei que vou precisar do javascript para criar o popup, mas não sei como fazer, estou a procura na net, mas não encontrei nada que me ajude a perceber como funciona esta ideia :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A ideia é não ser um popup, mas sim uma aproximação de popup.

Basicamente é uma div, ou outro elemento, que colocas acima de tudo, com a informação que pretendes, e depois validas o login por ajax e php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e como posso fazer isso? existe algum tutorial disponivel? ou mesmo aqui no forum?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Duvido que exista tutorial, porque isso envolve várias linguagens e depende da linguagem server-side assim como do aspecto do site.

Existem tutoriais na net, é só procurar : http://www.bitrepository.com/ajax-login-modal-box.html

Esse deve ter coisas a mais, o mais importante é perceberes primeiro o que precisas para conseguir o que queres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pelo que eu percebi da ideia do meu chefe é assim, eu tenho um menu em cima e tem um botão LOGIN, e sempre que clicar nesse botão aparece a caixa com os campos USER e PASSWORD para preencher, ao fazer submit vai validar o login, se o login estiver correcto mostra todas as informações disponíveis, se o login não estiver certo volta a pagina anterior. basicamente só preciso da caixa para não estar a fazer aparecer outra pagina só para o login.

mas isto é o que percebi do que é preciso

PS: e obrigado pela ajuda :)

PS2: o exemplo que tu referis-te, é possível implementar no php? ou o jquery não altera nada?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

eu to agora a tentar implementar este login no meu site, e por exemplo, eu tenho no menu um botão LOGIN que redirecciona para uma pagina de login, e esse menu este com <ul><li>, e tentei implementar este sistema mas a caixa de login aparece e desaparece rapidamente, como posso resolver isto? ou nao posso utilizar isto dentro de um <li>? :hmm:

PS: quanto ao implementar ta a correr bem, ja o coloquei a chamar o login, podes dar-me uma ajuda, umas luzes de onde preciso alterar para verificar na base de dados os dados de login? o user e a password

neste momento o meu codigo é este:

onde chamo o login:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="javascript/jquery.simplemodal.js"></script>
<script type="text/javascript" src="javascript/init.js"></script>

<link type='text/css' href='style/stylesheet.css' rel='stylesheet' media='screen' />
<link type='text/css' href='style/basic.css' rel='stylesheet' media='screen' />

</head>

<body>
<?php 

if (!isset($_SESSION['USER'])){
/* Menu do index, sem o login efectuado */
echo'
	<ul id="menu3">
		<li><a href="restrito.php?opcao=index" target="_self">Home</a></li>
		<li><a href="restrito.php?opcao=services" target="_self">Services</a></li>
		<li><a href="#" target="_self">Products</a></li>
		<li><a href="restrito.php?opcao=contact" target="_self">Contact Us</a></li>
		<li><a href="#" id="login_link" target="_self">Login</a></li>
		<li><a href="restrito.php?opcao=register" target="_self">Register</a></li>
	</ul>
	';

}else{
/* Menu do index, com o login efectuado */
echo'
	<ul id="menu3">
		<li><a href="restrito.php?opcao=index" target="_self">Home</a></li>
		<li><a href="restrito.php?opcao=services" target="_self">Services</a></li>
		<li><a href="#" target="_self">Products</a></li>
		<li><a href="restrito.php?opcao=contact" target="_self">Contact Us</a></li>
		<li><a href="restrito.php?opcao=admin" target="_self">Admin</a></li>
		<li><a href="restrito.php?opcao=logout" target="_self">Logout - ['.$_SESSION["NAME_USER"].']</a></li>
	</ul>
	';
}

?>

<div id="login_form" style='display:none'>

<div id="status" align="left">

<center><h1><img src="images/key.png" align="absmiddle"> LOGIN</h1> 

<div id="login_response"><!-- spanner --></div> </center>

<form id="login" action="javascript:alert('Success!');">
<input type="hidden" name="action" value="user_login">
<input type="hidden" name="module" value="login">
<label>User</label><input type="text" name="user"><br />  
<label>Password</label><input type="password" name="pass"><br />  
<label> </label><input value="Login" name="Login" id="submit" class="big" type="submit" />

<div id="ajax_loading">
<img align="absmiddle" src="images/spinner.gif"> Processing...
</div>

</form>

</div>

</div>
</body>
</html>

depois este login vai para os ficheiros dele e manda-me para este, o do-login.php, que eu fiz algumas alteraçoes:

<?php
$config = array();

$config['user'] = $_POST['user'];
$config['pass'] = $_POST['pass'];

// Show all errors except the notice ones
error_reporting(E_ALL ^ E_NOTICE);

// Initialize session
session_id();
session_start();
header('Cache-control: private'); // IE 6 FIX

if($_POST['action'] == 'user_login')
{
$post_email = $_POST['email'];
$post_password = $_POST['password'];

// check username and password

if($post_email == $config['user'] && $post_password == $config['pass'])
{ 
// No error? Register the session & redirect the user to his/her 'Control Panel'

$_SESSION['USER'] = $username;

		if($_POST['remember_me'])
		{
		// set the cookies for 1 month

		setcookie ("remember_me", true, (time() + TIME_DIFF) + (3600 * 24 * 30));
		setcookie ("info", $user_id.','.md5($pass), (time() + TIME_DIFF) + (3600 * 24 * 30));
		}
        echo 'OK'; // this response is checked in 'process-login.js'
}
else 
{
    $auth_error = '<div id="notification_error">The login info is not correct.</div>';

    echo $auth_error;
}
}
?>

e tenho este ficheiro que era o que eu usava para fazer a validação dos dados:

<?php

session_start();
require_once ('../../BioCantProject/functions.php');

$login = new login;

$login->SetUsername($user);
$login->SetPassword($pass);


if($login->CheckLogin())
{
header('Location: ../../BioCantProject/index.php');
}
else
{
header('Location: ../../BioCantProject/restrito.php?opcao=login');
}

?>

e a function que validava era esta:

function CheckLogin()
	{
		try {
		    $stmt = $this->dbh->prepare("SELECT NAME, ACCESS_LEVEL, ACTIVE FROM user 
		    		WHERE USER = :user AND PASSWORD = :password AND ACTIVE = 1");
			$stmt->bindParam(':user', $this->Username);
			$stmt->bindParam(':password', $this->Password);
			$stmt->execute();
		} catch (PDOException $e) {
		    echo 'Query error: ' . $e->getMessage();
		}

		if($stmt->rowCount() > 0 )
		{	
			$result = $stmt->fetch(PDO::FETCH_BOTH);
			$_SESSION['USER'] = $this->Username;
			$_SESSION['NAME_USER'] = $result[0];
			$_SESSION['ACCESS_LEVEL'] = $result[1];

			return true;
		}
		else
		{
			return false;
		}

	}

espero nao ter desviado demasiado o assunto do topico, se ja for uma duvida de php peço desculpa de ter colocado aqui tudo :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes explicar melhor a ideia pf? eu tive a ver o link que mandas-te mas não percebi bem a ideia do que devo fazer :)

PS: eu posso por exemplo, no ficheiro do-login.php acrescentar um require_once('validacao.php');?

eu fiz o require_once('validacao.php') no do-login e ficou a funcionar bem, li o link que o yoda.pt mandou, mas gostaria de perceber melhor o jquery e o ajax, se alguém tiver um tutorial agradecia e obrigado pela ajuda :)

PS2: desculpa novamente a duvida, o sistema funciona normalmente, mas há uma crise, se no login eu escrever qualquer coisa e na password tambem ele aceita e faz o login, ate se eu fizer o login com os campos vazios ele aceita e valida o login. eu deixo aqui o codigo referente ao login:

<?php

require_once('validacao.php');

$config = array();

$config['user'] = $_POST['user'];
$config['pass'] = $_POST['pass'];

// Show all errors except the notice ones
error_reporting(E_ALL ^ E_NOTICE);

// Initialize session
session_id();
session_start();
header('Cache-control: private'); // IE 6 FIX

if($_POST['action'] == 'user_login')
{
$post_user = $_POST['user'];
$post_pass = $_POST['pass'];

// check username and password

if($post_user == $config['user'] && $post_pass == $config['pass'])
{ 
// No error? Register the session & redirect the user to his/her 'Control Panel'

$_SESSION['USER'] = $user;

		if($_POST['remember_me'])
		{
		// set the cookies for 1 month

		setcookie ("remember_me", true, (time() + TIME_DIFF) + (3600 * 24 * 30));
		setcookie ("info", $user_id.','.sha1($pass), (time() + TIME_DIFF) + (3600 * 24 * 30));
		}
        echo 'OK'; // this response is checked in 'process-login.js'
}
else 
{
    $auth_error = '<div id="notification_error">The login info is not correct.</div>';

    echo $auth_error;
}
}
?>

sei que o meu problema esta nestas linhas:


$config = array();

$config['user'] = $_POST['user'];
$config['pass'] = $_POST['pass'];

......

if($_POST['action'] == 'user_login')
{
$post_user = $_POST['user'];
$post_pass = $_POST['pass'];

// check username and password

if($post_user == $config['user'] && $post_pass == $config['pass'])

....

mas como posso fazer esta validação? sei que o primeiro esta certo porque é o que apanha os valores introduzidos pelo utilizador, o segundo preciso que seja a comparação com os dados da tabela, ou tenho o raciocínio errado? :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

alguém sabe uma solução para a minha duvida? ja pensei em fazer um SELECT antes disto:


if($post_user == $config['user'] && $post_pass == $config['pass'])

mas não sei bem ao certo como fazer :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tenho algo desse género também no meu:

// 'this' refers to the current submitted form  
var str = $(this).serialize();  

// -- Start AJAX Call --

$.ajax({  
    type: "POST",
    url: "../BioCantProject/login/do-login.php",  // Send the login info to this page
    data: str,  
    success: function(msg){  

eu tenho uma ideia que o erro seja esta linha:

if($post_user == $config['user'] && $post_pass == $config['pass'])

porque tanto um valor como o outro estão assim:

$config['user'] = $_POST['user'];
$config['pass'] = $_POST['pass'];

....

$post_user = $_POST['user'];
$post_pass = $_POST['pass'];

mas é uma opinião minha, posso estar enganado :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

decidi reabrir este tópico porque tenho uma questão, eu tenho um modal login a funcionar só que uso o mesmo sistema para um outro modal que tenho, e sempre que faço o login há um conflito entre os dois sistemas e manda-me para outra pagina sem ser o index após o login, por isso, queria saber se sabem de outro sistema de login modal para eu implementar na minha página.

Eu encontrei este:

http://web-kreation.com/demos/login_form_mootools_1.2/

e este:

http://web-kreation.com/index.php/tutorials/nice-clean-sliding-login-panel-built-with-jquery/

e fala la em CMS, mas gostaria de saber se é possível implementar algum deste em php na minha pagina :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora