Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Register
Forum PHP.pl > Forum > Przedszkole
patrol114
Witam,
mam błąd w rejestracji wywala mi że hasło jest niepoprawne a podaje dobrze. Nie wiem czy mam dobrze zrobione if (!empty

  1. <?php
  2.  
  3.  
  4. require('config.php')
  5.  
  6.  
  7. if (isset($_POST['imie']) and isset($_POST['nazwisko']) and isset($_POST['miejscowosc']) and isset($_POST['data']) and isset ($_POST['tell']) and isset ($_POST['haslo']) and isset ($_POST['email']))
  8.  
  9.  
  10. {
  11.  
  12. if ($_POST['haslo']==$_POST['haslo2'])
  13.  
  14. {
  15.  
  16. if ( !empty ( $imie ) && !empty ( $nazwisko ) && !empty ( $miejscowosc ) && !empty ( $data ) && !empty ( $tell ) && !empty ( $email ) && !empty ( $haslo )) {
  17.  
  18. $konto = mysql_real_escape_string (trim($_POST['imie']));
  19.  
  20. $password = sha1(md5(mysql_real_escape_string (trim($_POST['haslo']))));
  21.  
  22. $ile =mysql_query("SELECT * FROM `user` WHERE imie = '$imie'");
  23.  
  24. $ile = mysql_num_rows($ile);
  25.  
  26. if ($ile==0) {
  27.  
  28. mysql_query("INSERT INTO `user` SET imie = ('$imie'), haslo = ('$haslo'), miejscowosc = ('$miejscowosc)', data = ('$data') , tell = ('$tell') , email = ('$email') ");
  29.  
  30. mysql_query or die("Wystąpił błąd" );
  31.  
  32.  
  33. echo('Dziękujemy za rejestracje '.$imie.''.$nazwisko.'');
  34.  
  35.  
  36.  
  37. }
  38.  
  39. else
  40.  
  41. {
  42.  
  43. echo("Taki uzytkownik juz istnieje. Kliknij wstecz aby zarejestrowac sie ponownie");
  44.  
  45. }
  46.  
  47. }
  48.  
  49. else echo ("Podane hasla nie zgadzaja sie");
  50.  
  51.  
  52. }
  53.  
  54. else{
  55. }
  56. ?>
Blame
W 4 linijce brakuje ci średnika na końcu. Pokaż jeszcze formularz, bo może nazwy pól się nie zgadzają.
patrol114
  1. <strong>Imię:</strong><input name="imie" type="text" /><br>
  2. <strong>Nazwisko:</strong><input name="nazwisko" type="text" /><br>
  3. <strong>Miejscowość:</strong><input name="miejscowosc" type="text" /><br>
  4. <strong>Data:</strong><input name="data" type="text" /><br>
  5. <strong>Telefon:</strong><input name="tell" type="text" /><br>
  6. <strong>E-mail:</strong><input name="email" type="text" /><br>
  7. <strong>Hasło:</strong><input name="haslo" type="password" /><br>
  8. <strong>Powtorz hasło:</strong><input name="haslo2" type="password" /><br>
  9.  
  10. <input type="submit" value="Zarejestruj" />
Blame
Hmm, więc tu jest dobrze. Widzę, że masz pogmatwane klamry. Wstaw zamykającą "}" w 48 linii i ew. zrób sobie gdzieś print_r($_POST); i zobacz co dostajesz.
patrol114
elegancko wyświetla mi to co wpisałem a może jebnąłem się tworząc tabele sprawdzisz ?

  1. CREATE TABLE `user` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `imie` varchar(50) NOT NULL,
  4. `haslo` varchar(40) NOT NULL,
  5. `nazwisko` varchar(50) NOT NULL,
  6. `miejscowosc` varchar(50) NOT NULL,
  7. `data` date NOT NULL,
  8. `tell` varchar(50) NOT NULL,
  9. `email` varchar(50) NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=22 ;
everth
Linia 20 i 28. $password!=$haslo
Poza tym co to za technika sha1(md5(costam))? Przelicz sumę sha1 i dodaj jakąś sól.
patrol114
No kodwanie haseł w mysql i kodowanie md5 winksmiley.jpg
glh
Na moje oko to błąd leży tu:
  1. if ( !empty ( $imie ) && !empty ( $nazwisko ) && !empty ( $miejscowosc ) && !empty ( $data ) && !empty ( $tell ) && !empty ( $email ) && !empty ( $haslo ))


Używasz zmiennych $imie, $nazwisko itd... a gdzie masz te zmienne zadeklarowane?

Daj na początku skryptu :
$imie=$_POST['imie'];
$nazwisko=$_POST['nazwisko'];
...

albo zamiast !empty($imie) ... stosuj !empty($_POST['imie']) itd...

Co do klamerek i reszty to nie wiem, bo nie przyglądałem się.
patrol114
okej zmieniłem na !empty($_POST teraz mówi mi że taki użytkownik już istnieje lecz mam pustą baze.
glh
To:

$ile =mysql_query("SELECT * FROM `user` WHERE imie = '$imie'");

Przed chwilą miałeś taki sam problem, a teraz znowu dajesz zmienną $imie...
Powinno być $_POST['imie'].

Poza tym nie masz pustej bazy jeżeli zapytanie, które wysyłałeś do mysql zwracało więcej niż jeden rekord.

Nie masz zmiennej $imie więc zapytanie wyglądało tak:

select * from user where imie='';

Wniosek jest jeden. Bawiłeś się skryptem dodającym użytkowników, przepuściło Ci to (bo sprawdzenie pól formularza w skrypcie nie działało) i masz teraz użytkowników bez imienia. Takich co na imię mają ''.
patrol114
nie mogę do zapytania wkleić $_POST['imie'] mam zrobione if empty post

  1. if ( !empty ( $_POST['imie'] ) && !empty ( $_POST['nazwisko'] ) && !empty ( $_POST['miejscowosc'] ) && !empty ( $_POST['data'] ) && !empty ( $_POST['tell'] ) && !empty ( $_POST['haslo'] ) && !empty ( $_POST['email'] ))
  2.  
  3. {




"MySQL zwrócił pusty wynik (zero rekordów). (Wykonanie zapytania trwało 0.0024 sekund(y))
"
everth
Dobra rada - jeśli zauważasz że zaczynasz pisać skrypty do dupy (tzn. za często pojawiają ci się błędy kompilacji w rodzaju brak średnika czy zła zmienna), to przerwij to i idź odpocząć/wytrzeźwieć. Najlepszą metodą jaką mogę ci teraz polecić to Ctrl+A + Del na całym tym skrypcie. Gubisz zmienne, mylisz warunki i dziwisz się że ci nie działa. Napisz go jeszcze raz z głową (oraz z lepszym tutorialem).

PS: Trochę bezsensownie stosujesz podwójna haszowanie. To powinno ci trochę rozjaśnić sprawę.
patrol114
Może masz racje musiał bym odpocząć wczoraj była zabawa a dziś muszę już brać się do pracy, dlatego tutaj dałem na forum może mi się coś pokombinowało nie pisałem tego z tutrioalu tylko z głowy, nie jestem programistą który zna wszystko na pamięć ja się jeszcze uczę. No dzięki za fatygę
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-2024 Invision Power Services, Inc.