Jump to content

popup login


diokhan

Recommended Posts

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 ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other 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.

Link to comment
Share on other 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?

...Join the dark side...and get a free cookie...

Link to comment
Share on other 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>? ?

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 ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other 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? ?

...Join the dark side...and get a free cookie...

Link to comment
Share on other 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 🙂

...Join the dark side...and get a free cookie...

Link to comment
Share on other sites

  • 1 month later...

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 ?

...Join the dark side...and get a free cookie...

Link to comment
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
×
×
  • Create New...

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.