descriptar Password do MySQL

H

Hipop_Man

Guest
Boas.
Eu tou a fazer uma pagina de registro em php e ta me a dar um problema...
Eu consigo inserir os dados (username, password) na database a password e guardava com funçao (md5) para encryptar.
O meu problema agr e k kd faço login akilo n aceita a Password k escrevi no registro e so aceita a password encryptada no MySQL
por exemplo 123 no mysql fika ajsda13adas(e uma pass aleatoria) e ele so aceita no formulario da pagina de login a password aleatoria... como irei fazer para k o php n aceite a password encryptada mas sim a password k fiz no registro?
 
tens k aplicar tb a funcao md5 à password k vem do formulario.

ou seja como ja tens o hash (md5) da password na base de dados, e como o md5 é invertivel, so podes mm sacar a pass da BD e compara-la com o md5 da pass do formulario.
 
Ja deu mas...

Ja deu penso eu de k... pois akilo ja n dizia incorrect password mas desta vez apareceu uns erros...
E é são os mm erros k o user DarkWolfXP
http://www.techzonept.com/showthread.php?t=96476
:-D

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\dxp\1\login.php:9) in C:\Program Files\xampp\htdocs\dxp\1\login.php on line 69

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\dxp\1\login.php:9) in C:\Program Files\xampp\htdocs\dxp\1\login.php on line 70

Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\xampp\htdocs\dxp\1\login.php:9) in C:\Program Files\xampp\htdocs\dxp\1\login.php on line 73

Aki esta o script da pagina login (na parte XXXXX eu sei k tenho k mudar :P)
O k esta a vermelho e onde estao os erros indicados a seguir de fazer o login e com password n aleatoria

<?php
// Connects to your Database
mysql_connect("localhost", "XXXXX", "XXXXX") or die(mysql_error());
mysql_select_db("DXP") 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 users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: index.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']) {
die('You did not fill in a required field.');
}
// checks it against the database

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

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
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() + 3600;
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
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>
 
Última edição pelo moderador:
esses erros dao qd ja printaste alguma coisa e dps tentar por coisas no header (cookies ou redirects poem cenas no header

confirma se n há output nenhum antes dos erros e tenta saber de onde ele vem.
 
Eu n pintei nd :(

Eu n pintei nd :(
Eu segui este tutorial mas n sei pk da me estes erros :/
http://php.about.com/od/finishedphp1/ss/php_login_code_5.htm

N sei mm :'( ja tentei mudar td mas da me estes erros...

P.S - como podem ver o codigo da pagina login.php
a vermelho sera um output antes dakele erro?

<?php
// Connects to your Database
mysql_connect("localhost", "XXXXX", "XXXXX") or die(mysql_error());
mysql_select_db("DXP") 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 users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: index.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']) {
die('You did not fill in a required field.');
}
// checks it against the database

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

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
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() + 3600;
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
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>
 
Última edição pelo moderador:
n te esqueças q conta como output tudo o k tens antes do <?php. ele ta a dizer k o header ja foi mandado pela linha 9 do login.php, parece k corresponde a linha anterior ao inicio desse bloco php.

tenta estruturar o codigo de modo k o <?php fique logo no inicio do código.
 
Hm

Mas n tenho nd :(
Este e full script
na linha 9 esta o <body>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<?php
// Connects to your Database
mysql_connect("localhost", "DarkWolfXP", "branco") or die(mysql_error());
mysql_select_db("DXP") 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 users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.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']) {
die('You did not fill in a required field.');
}
// checks it against the database

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

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
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() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

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

// if they are not logged in
?>
<form method="POST">
<table border="0">
<tr>
<td colspan=2><h1>Login</h1></td>
</tr>
<tr>
<td>Username:</td>
<td><input type="text" name="username" maxlength="40" />
</td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass" maxlength="50" />
</td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" name="submit" value="Login" />
</td>
</tr>
</table>
</form>
<?php
}

?>

</body>
</html>
 
Hiphop, se na linha 9 está o body como mostraste isso já um output, experimenta por o código php TODO antes de qualquer coisa, só no fim depois do ?> é que metes o html!
 
N deu erro mas...

n deu nenhum erro... mas akilo fikou td mal :'(
Exemplo: ele agr aceita tds usernames e passwords (mete-se um ***** e vai se a mm pagina...)

o Script fikou assim
<?php
// Connects to your Database
mysql_connect("localhost", "DarkWolfXP", "branco") or die(mysql_error());
mysql_select_db("DXP") 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 users WHERE username = '$username'")or die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: members.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']) {
die('You did not fill in a required field.');
}
// checks it against the database

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

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
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() + 3600;
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

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

// if they are not logged in
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
<table border="0">
<tr><td colspan=2><h1>Login</h1></td></tr>
<tr><td>Username:</td><td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td>Password:</td><td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input type="submit" name="submit" value="Login">
</td></tr>
</table>
</form>
<?php
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>

Fiz alguma coisa de mal? :(
 
Resolvido!!

Bem ja consegui meter akilo a bombar! so tenhoa mais um questao para expor =/
Por exemplo a pagina login.php tem uma expressao para k se o formulario lançado pelo user comprar com base de dados e se estiver correcto vai para a pagina de membros.php
Mas uma pessoa k por exemplo faça http://XXXX/membros.php acede á pagina :S
Resumindo:
Eu keria restringir completamente os users so entram nakela pagina apos terem feito login.
Desde ja obrgiado a tds!
 
essa parte é facil
ves se tens definido o $_COOKIE[ID_my_site] com o isset(), fazendo qq coisa assim:

if(!isset($_COOKIE[ID_my_site])){
header("Location: index.php"); //manda-o pro index pois n ta logado
}
else{
//FAZER O KE DEVIDO!!
}
 
Bem isto ta.. ou n -.-

ApM hm.. keria te perguntar o teu script n será assim?
<?
if(!isset($_COOKIE['ID_my_site'])){
header("Location: index.php"); //manda-o pro index pois n ta logado ---> aki será k n e por o user tar loagado ira manda-lo para essa pagina?
}
else{
echo "Fazer o k é devido"; ---> aki como o user n fez o log in aparece essa msg.
}
?>


Era assim o script k tinha k meter?
E k é assim... tentei com o teu script indo pelo url http://localhost/onlymembers.php
redireccionava logo para o index ( como tinhas no comentario )
Mas mm indo pela pagina do login akilo redireciona-me para o index O_o?

Vou-te mostrar os scripts k estao no trabalho:
no config.php:
<?
$host = "localhost";
$database = "DXP";
$tabela = "users";
$login_db = "-----";
$senha_db = "-----";
?>

no checkIn.php: ( a vermelho sera a parte onde eu defini o $_COOKIE)
<?
include "config.php";
if(isset($_COOKIE['ID_my_site']))
{
$username = $_COOKIE['ID_my_site'];

$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

$db = mysql_connect ($host, $login_db, $senha_db);
$basedados = mysql_select_db($database);


$check2 = mysql_num_rows($check);
}
?>

no onlymembers.php:
(eu testei com o script do ApM e este aki deram td ao mm caminho [index.php])
<?
if(!isset($_COOKIE['ID_my_site'])){
header("Location: index.php"); //manda-o pro index pois n ta logado
}
else{
echo "Fazer o k é devido";
}
?>

Penso k tds os scripts tao bem =/
Ñ tou mm a ver porquê é k ele n funciona... como deve de ser ... (o script do onlymembers.php)

P.S Amanha começo a ler uns books de PHP :lol: :)
 
o k tas a dizer é k mesmo que ja tenhas o cookie definido ele salta pro index?
isso deve ser por a funcao isset n funcinar pra cookies, mas n acredito!

experimenta em vez do !isset qq coisa como $_COOKIE['ID_my_site'] == ""

n sei.... pode ser o cookie n estar a ser bem definido, usas alguma informaçao dos cookies noutro lado?
 
Obtenho um erro

Obtenho um erro se n utilizar o isset()
Script do only members
<?
$db = mysql_connect (localhost, XXXX, XXXX);
$basedados = mysql_select_db(DXP);

$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

$check2 = mysql_num_rows($check);
if($_COOKIE['ID_my_site'] == "")){
echo "LOGIN FISRT";
}
else{
header ("Location: 1.php");
}
?>

A vermelho no script do onlymembers é a linha onde o brownser diz k existe um parse Error -.-

Erro :
Parse error: parse error, unexpected ')' in C:\Program Files\xampp\htdocs\dxp\works\onlymembers.php on line 10
 
pah... o ke k te diz o erro? que tens um ')' a mais!

se olhares pra linha a vermelho ves k tens um ')' a mais...
if($_COOKIE['ID_my_site'] == "")){

o ')' a vermelho ta a mais pois n ta a fechar nenhum '('
 
Erro solucionado

Bem o erro ja ta -.-' n tinha mm visto esse parenteses xD
mas agr acontece me o mm k com o isset () -.-
tanto indo pela pagina login como pelo url dá a seguinte msg:
LOGIN FIRST

o script dessa pagina é:
<?
$db = mysql_connect (localhost, DarkWolfXP, branco);
$basedados = mysql_select_db(DXP);

$username = $_COOKIE['ID_my_site'];
$pass = $_COOKIE['Key_my_site'];
$check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

$check2 = mysql_num_rows($check);
if($_COOKIE['ID_my_site'] == "Aki n se devia meter alguma valor entre as reticencias?(tentei meter mm assim n da..."){
echo "LOGIN FISRT";
}
else{
header ("Location: index.php"); //manda-o pro index pois n ta logado
}
?>

No local a vermelho ja tentei meter valores... e 0 valor redirecciona as duas formas de entrar na pagina no mm tipo isto é: valor 1 = aparece msg "login first" tanto pelo url ou pela pagina login
valor 1 = redirecciona as duas formas para pagina index.php
Help :(


P.S isto dá um trabalhao xD (tou gostar :P)
 
Última edição pelo moderador:
axo k so pode ser mal da definição dos cookies...
muda isso pra o isset outra vez e verifica uma coisa:
setcookie(ID_my_site, $_POST['username'], $hour);
setcookie(Key_my_site, $_POST['pass'], $hour);

não faltaram umas aspas?
setcookie("ID_my_site", $_POST['username'], $hour);
setcookie("Key_my_site", $_POST['pass'], $hour);

tas a tentar ler alguma coisa dos cookies em mais algum lado? e consegues bem?
 
Pois...

Hm com isset redireciona-me para o index.php das duas formas...

O scritp da pagina de login utiliza os cookies :
<?php
// Connects to your Database
mysql_connect("localhost", "XXXXXXX", "XXXXX") or die(mysql_error());
mysql_select_db("DXP") 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 users WHERE username = '$username'")or
die(mysql_error());
while($info = mysql_fetch_array( $check ))
{
if ($pass != $info['password'])
{
}
else
{
header("Location: teste.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']) {
die('You did not fill in a required field.');
}
// checks it against the database

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

//Gives error if user dosen't exist
$check2 = mysql_num_rows($check);
if ($check2 == 0) {
die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>');
}
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
{

//then redirect them to the members area
header("Location: teste.php");
}
}
}
else
{

// if they are not logged in
?>
<form method="POST">
<table border="0" align="center">
<tr><td colspan=2><h1 class="style1">Login</h1></td>
</tr>
<tr><td><span class="style1">Username</span>:</td>
<td>
<input type="text" name="username" maxlength="40">
</td></tr>
<tr><td><span class="style1">Password:</span></td>
<td>
<input type="password" name="pass" maxlength="50">
</td></tr>
<tr><td colspan="2" align="right">
<input name="submit" type="submit" class="style1" value="Login">
</td></tr>
</table>
</form>
<style type="text/css">
<!--
body,td,th {
color: #0099FF;
}
body {
background-color: #000000;
}
-->
</style>
<style type="text/css">
<!--
.style1 {
font-family: Nasalization;
font-weight: bold;
}
-->
</style>
<?php
}

?>
<body>

</body>
<html>
</html>

Mas akilo diz nos comentarios se tiver cookies redirecciona me logo para a página... eu nunca vi isso acontecer...
 
mm coisa

com ou sem vai dar ao mm caminho :x ( testei e os dois redireccionaram as duas formas de entrar na pagina onlymembers.php com o mm caminho -.-)
 
Back
Topo