Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Rejestracja dlugosc hasla
Forum PHP.pl > Forum > Przedszkole
mrk9109
Witam to mój kolejny temat i etap nauki smile.gif a więc zacząłem od rejestracji użytkowników i mam pytanie jak zrobić by minimu hasło miało 5 liter zrobiłem warunek który nie działa i nie wiem jak to ugryźć . I czy muszę mieć 2x else echo ? do loginu i email
  1. <?php
  2.  
  3. if (isset($_POST['rejestruj']))
  4. {
  5. $login = $_POST['login'];
  6. $haslo1 = $_POST['haslo1'];
  7. $haslo2 = $_POST['haslo2'];
  8. $email = $_POST['email'];
  9. $imie = $_POST['imie'];
  10. $nazwisko = $_POST['nazwisko'];
  11. $ulica = $_POST['ulica'];
  12. $miejscowosc = $_POST['miejscowosc'];
  13. $kod = $_POST['kod'];
  14. $telefon = $_POST['telefon'];
  15. $firma = $_POST['firma'];
  16. $nip = $_POST['nip'];
  17. $ip = $_SERVER['REMOTE_ADDR'];
  18.  
  19.  
  20. $loginy = mysqli_query($polaczenie,"SELECT login FROM uzytkownicy WHERE login = '".$login."';");
  21. $nazwa_login = mysqli_num_rows($loginy);
  22. $maile = mysqli_query($polaczenie,"SELECT login FROM uzytkownicy WHERE email = '".$email."';");
  23. $nazwa_email = mysqli_num_rows($maile);
  24.  
  25. if ($nazwa_email == 0 ) // Sprawdzanie czy e-mail jest w bazie
  26. if ($nazwa_login == 0 ) // Sprawdzanie czy login jest w bazie
  27. {
  28. if ($haslo1 == $haslo2 || $haslo1 > 4) // Sprawdzanie czy hasla sa takie same
  29. {
  30. $zapytanie = $polaczenie->query("INSERT INTO `uzytkownicy` (`login`, `haslo`, `email`, `rejestracja`, `logowanie`, `ip`)
  31. VALUES ('".$login."', '".md5($haslo1)."', '".$email."', '".time()."', '".time()."', '".$ip."');");
  32.  
  33. echo "Konto zostało utworzone! <br /><br /><br /><br />";
  34. }
  35. else echo "Hasła nie są takie same // Lub hasło nie ma minimu 5 znaków";
  36. }
  37. else echo "Podany login / e-mail jest już zajęty.";
  38. else echo "Podany login / e-mail jest już zajęty.";
  39.  
  40. }
  41.  
  42. // Formularz Rejestracji
  43. include ("templatki/rejestracja.html");
  44.  
  45. ?>


I chciałem zrobić jeszcze coś takiego do include i tez mam error

  1. if($zapytanie)
  2. 3 {
  3. 4 echo "Konto zostało utworzone! <br /> Zapraszamy do <a href='index.php?strona=logowanie'>Logowanie</a>";
  4. 5 }
  5. 6 else
  6. 7 {
  7. 8 include ("templatki/rejestracja.html");
  8. 9 }
SmokAnalog
Twój warunek rejestracji jest zły z dwóch powodów:

  1. if ($haslo1 == $haslo2 || $haslo1 > 4) {
  2. // Zarejestruj użytkownika
  3. }


Po pierwsze, jednocześnie muszą zajść oba warunki, a nie tylko jeden z nich. Zamiast operatora || powinieneś użyć &&. Po drugie, do sprawdzania długości stringa służy funkcja mb_strlen. Taka jeszcze mała rada, że jeśli wymagana długość to 5, zapisz to jako >= 5, a nie > 4. Bardziej naturalnie dla osoby czytającej kod będzie widzieć minimalną wymaganą liczbę znaków, a nie maksymalną niepoprawną.
mrk9109
dziękuje smile.gif ale to sprawdza ilość liczb ? a by sprawdzał łącznie znaki itp , mam jeszcze jedno pytanie a jak zrobić by sprawdzał czy w email jest @ warunek
nospor
Cytat
ale to sprawdza ilość liczb ? a by sprawdzał łącznie znaki itp
przeciez SmokAnalog podal ci w swojej odpowiedzi jakiej funkcji masz uzyc by sprawdzic ilosc znakow. Napisal to po polsku, funkcje pogrubil, jego post jest naprawde krotki a mimo to i tak zgignorowales polowe informacji ktorych ci udzielil :/
mrk9109
dziękuję smile.gif użyłem preg_matc i właśnie tego co kolega napisał smile.gif i mam efekt który chciałem
viking
Do sprawdzania maila php ma wbudowaną funkcję http://php.net/manual/en/function.filter-var.php
mrk9109
Dzieki smile.gif Teraz mam inny problem z logowaniem :< co robię źle ?

  1. <?php
  2.  
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5.  
  6. $zapytanie = "SELECT * FROM uzytkownicy WHERE login='$login' AND haslo='$haslo'"
  7. if ($sprawdzamy = $polaczenie->query($zapytanie))
  8. {
  9. $ile_uzytkownikow = $wynik->num_rows;
  10. if($ilu_uzytkownikow>0)
  11. {
  12. echo "zalogowany";
  13.  
  14. } else {
  15. echo "bledne dane logowania";
  16. }
  17. }
  18.  
  19.  
  20. ?>

Parse error: syntax error, unexpected 'if' (T_IF) in C:\Users\PC_ACER\xampp\htdocs\Mrk/zaloguj.php line 7
nospor
Masz napisane ze masz NIEOCZEKIWANY IF w linii 7. Patrzysz wiec linie wczesniej i czego na koncu brakuje?
viking
Źle masz też ewidentnie fakt, że sprawdzasz użytkownika i hasło. Oznacza to ze hasło jest gołym tekstem. Do tego i tak zbędne bo aż się prosi o włamanie. Stosuj prepared statements.
mrk9109
Zrobiłem to trochę inaczej jak rejestracje i przepraszam z góry bo się uczę mam jeszcze jeden błąd w lini 16

Undefined variable: ip in

  1. <?php
  2.  
  3. session_start(); //rozpoczęcie sesji
  4.  
  5. if (isset($_POST['loguj']))
  6. {
  7.  
  8. $login = $_POST['login'];
  9. $haslo = $_POST['haslo'];
  10.  
  11. // sprawdzamy czy login i hasło są dobre
  12.  
  13. $zapytanie = mysqli_query($polaczenie,"SELECT login, haslo FROM uzytkownicy WHERE login = '".$login."' AND haslo = '".md5($haslo)."';");
  14. $sprawdzamy = mysqli_num_rows($zapytanie);
  15.  
  16. if ($sprawdzamy > 0 )
  17. {
  18. $zapytanie = $polaczenie->query("UPDATE `uzytkownicy` SET (`logowanie` = '".time().", `ip` = '".$ip."'') WHERE login = '".$login."';");
  19.  
  20. $_SESSION['zalogowany'] = true;
  21. $_SESSION['login'] = $login;
  22.  
  23. echo "zalogowany <br />
  24. Zapraszamy do <a href='index.php?strona='>link</a>
  25. <br /><br /><br />";
  26. }
  27. else echo "Wpisano zle dane";
  28. }
  29.  
  30. ?>
nospor
Zacznij w koncu czytac komunikaty bledow. Przeciez wyraznie masz napisane ze zmienna $ip nie istnieje!
Czego nie rozumiesz w tym komunikacie bledu?
mrk9109
Oki spokojnie uczę się już gotowe i po prostu nie zauważyłem smile.gif to już moje chyba ostatnie pytanie i mam gotowe rejestracje logowanie testowe . A więc jak to zrobić chciałem na sesji gdy jest zalogowany wyświetla text a gdy nie formularz przez include no ale lipa jakaś mi wychodzi już bez błędów

  1. <?
  2. session_start(); //rozpoczęcie sesji
  3.  
  4. if (isset($_SESSION['zalogowany']) && ($_SESSION['zalogowany']==true)))
  5. {
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. }
  13. }
  14.  
  15. ?>
nospor
Cytat
ę już gotowe i po prostu nie zauważyłem
Jak mogles nie zauwazyc komunikatu bledu, ktory sam nam pokazales i wstawiles w poscie?

No i co ci teraz nie dziala z ta sesja? Nie wyswietla sie text czy formularz logowania?
mrk9109
Przepraszam

nic się nie wyświetla ani text ani formularz
nospor
obok
include("templatki/logowanie.html");

daj
  1. if (!file_exists("templatki/logowanie.html")) echo 'NIE ISTNIEJE';
  2. else echo 'A JEDNAK ISTNIEJE';
  3.  
  4. die('Teraz cos widzisz?');
  5. include("templatki/logowanie.html");


edit: dobra, masz w ogole PARSE ERROR.... wlacz wyswietlanie wszystkich bledow tudziez sprawdzaj logi bo teraz skrypt php ci sie w ogole wykrzacza bo masz blad nawiasow {} w IF
mrk9109
poprawiłem nawiasy
i wkleiłem i nie mam nic czyste tło
  1. <?
  2. session_start(); //rozpoczęcie sesji
  3.  
  4. if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
  5. {
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. if (!file_exists("templatki/logowanie.html")) echo 'NIE ISTNIEJE';
  13. else echo 'A JEDNAK ISTNIEJE';
  14.  
  15. die('Teraz cos widzisz?');
  16. include("templatki/logowanie.html");
  17. }
  18. }
  19.  
  20. ?>

nospor
Nie wiem co poprawiles, ale na pewno nie nawiasy {}. Nadal masz za duzo jak miales
mrk9109
dalej źle ? sad.gif

  1. <?
  2. session_start(); //rozpoczęcie sesji
  3. session_register("zalogowany");
  4.  
  5. if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
  6. {
  7. echo "Witaj ".$Slogin." ";
  8. }
  9. else
  10. {
  11. include("templatki/logowanie.html");
  12. }
  13.  
  14.  
  15. ?>
nospor
Nadal biala strona? TO wstaw teraz moj kod co podalem ci pare postow wczesniej
mrk9109
ale błąd tongue.gif brak u gory "<?php" ale mam błąd że nie mam nie zdefiniowaną zmienną $login why sesja mi ją nie przekazuje ?

a w zaloguj mam

  1. $_SESSION['zalogowany'] = true;
  2. $_SESSION['login'] = $login;
nospor
login jest w tablicy $_SESSION a nie w zmiennej $login. Odrozniaj sesje od niesesji
mrk9109
rozumie a nie można przypisać sesji zmiennej bo probuje i nic chodzi o efekt
np
  1. $login = $_SESSION['login'] ;
nospor
print_r($_SESSION);
Masz tam w ogoole cos? Bo z pustego to i nawet Salomon nie naleje
mrk9109
tak pod $_SESSION['login'] ladnie mi sie wyswietla login tylko chcialem teraz zrobic include html`a i dla tego chcialem sobie ladnie zmienic by czytalo to z zmiennej
nospor
zaczynam glupiec... PRzeciez w include nie masz nic do login.
mrk9109
wiem chodzilo mi o estetykę po prostu smile.gif że zamiast session bedzie tam zmienna sama smile.gif
nospor
Jesli
echo $_SESSION['login'];
wyswietla ci login

to zrobione linie nizej
$login = $_SESSION['login'];
echo $login;

tez ten login wyswietli. Skoro ci nie wyswietla, znaczy ze mi sciemniasz ze echo $_SESSION['login']; ten login ci wyswietla. Nic dodac nic ujac
mrk9109
błąd miałem w zapisaniu echo znacznikach smile.gif Mam nadzieję że to już ostatnie pytanie moje mam coś takiego

  1. if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true))
  2. {
  3.  
  4. $login = $_SESSION['login'];
  5.  
  6. include("templatki/zalogowany.html");
  7. }


i co zrobić by plik html czytał mi wartosci $login itp ? jest to mozliwe
nospor
PLik musi byc parsowany przez php to po pierwsze.
Po drugie, skoro ma byc parsowany przez php to nadaj mu wlasciwe rozszerzenie. Moze byc .phtml
Po trzecie: a jak teraz w tym pliku probujesz wyswietlic to login?
mrk9109
Widziałem w webspell cms taka funkcje dla tego pytam czy jest możliwość już zmieniłem na php
nospor
Cytat
dla tego pytam czy jest możliwość
Jest
mrk9109
zmienilem na php i jak mam teraz wyswietlac zawartosc ? da sie bez uzywania echo itp
nospor
wyswietlasz zawartosc normalnie jak w kazdym innym skrypcie php

mozesz uzywac echo
mozesz uzywac tez takich konstrukcji jak
<?= $login ?>
Ja rozumiem, ze sie uczysz, ale z lekka juz chyba przesadzasz w tym temacie, nie sadzisz?
mrk9109
lekko może ale juz oki i szukalem tego rozwiazania <?= $login ?> smile.gif skrypcik gotowy edit profilu tez zrobilem teraz moge sie bawic dziekuje bardzo i przepraszam smile.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.