Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Logowanie - Rejestracja
Forum PHP.pl > Forum > Przedszkole
omajgat
Witam, to moja 1 styczność z mysql. Staralem sie zrobic cos prostego dla testu. Lecz na samym poczatku juz napotkalem na problem smile.gif

1.Z poradnikow wykołowałem taki oto skrypt:
Kod
<?php
$sql_conn = mysql_connect('localhost', 'test', 'tratata');
if($sql_conn == true) {
echo "zalogowano";
}
else {
echo "kiszka";
}
mysql_select_db('test')
    or die('Nie udało się wybrać bazy danych...');
$zapytanie = 'CREATE TABLE nba (id int NOT NULL AUTO_INCREMENT, imie char(30), lata char(3), punkty char(3), mistrzostwa char(3), PRIMARY KEY(id))';
mysql_close($sql_conn);
?>

Niby łączy, wybiera baze, lecz nie tworzy tabeli z wpisami. Poprostu baza pozostaje pusta.

2.Celem moim jest zbudowanie skryptu aby uzytkownik/klient mial swoje konto, w nim kilka wpisow (nazwa uslugi, status, termin wygasniecia, ew jakies info).
Czy bedzie Ktos tak mily i nakieruje mnie w podpunktach jak to nalezy zrobic, oczywiscie nie chodzi mi o gotowca ;p Lecz o to jak nalezy to 'zaprojektowac', 'wykonac'.

ps. Oczywiscie moglbym poszukac jakis gotowcow, ale to nie rozwiaze problemu jakim jest brak wiedzy podczas wdrazania skryptu, modyfikacji itp..
sadistic_son
W php nie ma błędu w zapytaniu MySQL też nie. Mi utworzyło tabelę, po wpisaniu tego zapytania. Sprawdź czy użytkonik MySQLowy ma przydzielone prawa do tworzenia tabel.
omajgat
Doszedlem do tego punktu, mianowicie 'logowania', nie wiem czy ma to tak wygladac, ale chyba bedzie okej, jezeli znajdzie rekord=login, porownoje go i hasla, nie wiem jak dopisac aby wywalilo "Nie ma uzytkownika w bazie". Czyli jak user nie istnieje, prosze o pomoc...
Kod
<?php

$login = $_POST['login'];
$haslo = $_POST['haslo'];

   mysql_connect('localhost', 'test', 'asas12');
   mysql_select_db('test');

  $zapytanie = "SELECT `login`,`haslo`,`email`,`tekst` FROM `klienci` WHERE `login`='$login'";
  $idzapytania = mysql_query($zapytanie);

while ($wiersz = mysql_fetch_row($idzapytania))
{
  if(($login == $wiersz[0]) and ($haslo == $wiersz[1])) {
   echo "Witaj $wiersz[0] <br>";
   echo "Twoj mail: $wiersz[2] <br>";
   echo "Wiadomosc $wiersz[3]";
                                                        }
  else {
   echo "Zle haslo!";
       }
}
   mysql_close();
?>
bobo168
Sprawdzasz czy user o danym loginie i haśle istnieje za pomocą select
  1. $wykonaj = mysql_query ('select login, haslo, email, tresc from jaka_tabela where login= "'.$zmienna_z_loginem.'" and haslo = "'.$_zmienna_z_hasłem.'"');
  2. $num_rows = mysql_num_rows($wykonaj); // zlicza ilość rekordów pasujących do podanego loginy i hasła
  3.  
  4. if($num_rows>0) // jeżeli jest wiecej niż jeden rekord to loguje i pobiera dane usera do tablicy
  5. {
  6. $user = mysql_fetch_array($wykonaj);
  7. echo 'zalogowano';
  8. }
  9. else // jeśli nie to wyświetla stosowny komunikat
  10. {
  11. echo 'Podano błędny login lub/bądź hasło.';
  12. }
  13.  


Pamiętaj aby hasło kodować np. w formacie md5. I poczytaj o sessjach...

Pozdrawiam.
sadistic_son
  1. $login = $_POST['login'];
  2. $haslo = $_POST['haslo'];
  3.  
  4. mysql_connect('localhost', 'test', 'asas12');
  5. mysql_select_db('test');
  6.  
  7. $zapytanie = "SELECT `login`,`haslo`,`email`,`tekst` FROM `klienci` WHERE `login`='$login'";
  8. $idzapytania = mysql_query($zapytanie);
  9.  
  10. while ($wiersz = mysql_fetch_row($idzapytania))
  11. {
  12.  
  13. if($login == $wiersz[0]){ //sprawdza czy user istnieje
  14. if($haslo == $wiersz[1]) { //jesli user istniee to sprawdza podane haslo
  15. echo "Witaj $wiersz[0] <br>";
  16. echo "Twoj mail: $wiersz[2] <br>";
  17. echo "Wiadomosc $wiersz[3]";
  18. }
  19. else {
  20. echo "Zle haslo!"; //jesli user istnieje ale zle haslo
  21. }
  22. }
  23. else{ echo 'Uzytkownik nie istnieje';} //jesli user nie istnieje
  24. }

EDIT: podpowiedź bobo168 jest poprawniejsza jeśli chodzi o trendy w php/mysql
omajgat
Dziękuje obojgu.
Następne czego nie mogę 'ogarnac'. Mianowice aby podczas rejestracji nie dodalo takiego samego loginu.
Kod
<?php
$login = $_POST['login'];
$haslo = $_POST['haslo'];
$email = $_POST['email'];
$tresc = $_POST['tresc'];


$lacz = mysql_connect( "localhost", "test", "asas12" );
$wybierz = mysql_select_db ( 'test' );

$zapytanie = "INSERT INTO `klienci` (`id`, `login`, `haslo`, `email` , `tekst`) VALUES ('', '$login', '$haslo', '$email', '$tresc')";
$idzapytania = mysql_query($zapytanie);
mysql_close($lacz);
?>


Czy nalezy wstawic tutal funkce SELECT i sprawdzic login w rekordach, jezeli jest to die i wywalic info ze juz jest, a jezeli nie to wykona dopiero $zapytanie czy jest jakis bardziej zaawansowany a zarazem łatwiejszy sposob?
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.