Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][Pomocy]kodowanie hasła ...
Forum PHP.pl > Forum > Przedszkole
ExtazyPro
Witam
otóż mam problem z hasowaniem hasła w php chodzi mi aby hasło wpisywane na stronie zapisywało się w bazie w kodowaniu "ShHA256" oto cały kod rejestracji :


<?php
include ("ustaw/database_cfg.php");
?>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=SHA256" />
<link href="CSS/Style.css" rel="stylesheet" type="text/css">
</head>
<body>
<center>
<form action="?action=register" method="post">
<font color="#black" size="2,3px">Login:<br><br> <input type="text" name='username' class='pole'><br>
<br>Hasło:<br><br> <input type="password" name="passwd" class='pole'><br>
<br>Powtórz hasło:<br><br> <input type="password" name="rpt_passwd" class='pole'><br>
<br>Imię:<br><br> <input type="text" name="real_name" class='pole'><br>
<br>E-mail<br><br> <input type="text" name="email" class='pole'><br>
<br><br> </font>
<input type="reset" value="Wyczysc pola!" class='button'> <input type="submit" value="Zarejestruj!" class='button'>
</form></center>
<?php
$message['success'] = "Konto zostało pomyślnie założone!";
$message['err_acc'] = "Wystąpił błąd podczas zakładania konta!";
$message['err_pass'] = "Poadne hasła nie pasują do siebie!";
$message['exist'] = "Takie konto już istnieje!";
if($_REQUEST['action']=="register") //tutaj się pojawia błąd, bo ten indeks istnieje tylko, gdy formularz zostnie wysłany, dlatego trzeba dodać sprawdzsanie istnienia klucza
if(isset($_REQUEST['action']) && $_REQUEST['action']=="register");
{
$error = FALSE;
$username = $_REQUEST['username'];
if (empty($username)) { //reszta analogicznie i nie łącz wszystkich, dla każdego daj osobne
$error = TRUE; //kluczowym jest tutaj ustawienie true dla error, inaczej konto będzie się zakładać zawsze
echo "Login nie może być puste";
}
$passwd = $_REQUEST['passwd']; //pamięŧaj, żeby sprawdzać czy hasło nie jest puste, a nie tylko czy zgadza się z powtórzonym
$rpt_passwd = $_REQUEST['rpt_passwd'];
$real_name = $_REQUEST['real_name'];
$email = $_REQUEST['email'];
$db = mysql_select_db("authme");
if($passwd == $rpt_passwd && !$error) //dodane sprawdzanie czy error jest FALSE
{
if(mysql_num_rows(mysql_query("SELECT * FROM authme WHERE username='$username'")) > 0)
{
echo '<script type="text/javascript">alert("'.$message['exist'].'");</script>';
}
else
{
$passwd = hash('sha256',$passwd);
$mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email` VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());
if($mq = true)
{
echo '<script type="text/javascript">alert("'.$message['success'].'");</script>';
}
else
{
echo '<script type="text/javascript">alert("'.$message['err_acc'].'");</script>';
}
}
}
else
{
echo '<script type="text/javascript">alert("'.$message['err_pass'].'");</script>';
}
}
?>
Proszę o pomoc tylko z tym sobie nie radze a to mi jest potrzebne to ukończenia strony smile.gif
z góry dziękuje.
robert-0627
  1. $mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email` VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());

Chyba masz pomieszana kolejnosc w zapytaniu password i real name a pozniej jak dodajesz wartosci to masz real name i password. To tak na pierwszy rzut oka ale nie wiem czy to rozwiaze Twoj problem.
ExtazyPro
poprawiłem ale nic sad.gif znów ten błąd

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES('lollol','lollol','4088d0d5b8ec83c218dd523468f266a159e6418074bf4a17e5ee0e' at line 1
robert-0627
  1. $mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email`) VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());


Nawias przed VALUES.
ExtazyPro
Dzięki Działa jesteś moim mistrzem biggrin.gif
mam jeszcze 3 sprawy smile.gif
1.Gdy wchodzę na rejestracje wyskakuje mi od razu okienko z napisem :"Poadne hasła nie pasują do siebie!" odpowiada za to skrypt
{
echo '<script type="text/javascript">alert("'.$message['err_pass'].'");</script>';
}
i chce to zlikwidować jak ?:|
2.Kiedyś coś tam przestawiłem i nie mam polskich znów takich jak ą,ę itp mam ustawione na utf-8 i nic
3 .to samo co 2 tylko tu mam już połączone z baza,w bazie mam ustawione utf8_polish_ci a na stronie nie mam polskich znaków :|
robert-0627
Nie rozumiem za bardzo. Chcesz w ogole sie pozbyc tego alerta ? Jeżeli tka po prostu zakomentuj go.
//{
// echo '<script type="text/javascript">alert("'.$message['err_pass'].'");</script>';
//}.

Co do polskich znakow to w sekcji head musisz ustawic charset utf 8 czy jakos tak poczytaj trochę o tym smile.gif.
ExtazyPro
nie chodzi mi o usnięcie tego biggrin.gif
Poprostu jak wchodze w zakładke rejestracja to mi to odrazu wyskakuje .

No dobra zmieniłem na
$mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email`) VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());
i zapisuje się do bazy ale hasło zapisuje się w polu real_name a nie password ,a chce aby zapisywało się w password
Jeśli zmienię
$mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email`) VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());
na
$mq = mysql_query("INSERT INTO authme (`username`, `password`, `real_name`, `email`) VALUES('".$username."','".$real_name."','".$passwd."','".$email."');") or die(mysql_error());
to mi wyskakuje błąd "Duplicate entry '0' for key 'PRIMARY'"

Jeszcze mam błędy typu
Notice: Undefined index: action in
ale to chyba taka informacja ;p lecz ja chce to usunąć biggrin.gif Jak?
Pomóżcie Mi smile.gif
Z Góry Dziękuje smile.gif

pomoże ktoś questionmark.gifsad.gif

Help :|exclamation.gif!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.