Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Logowanie - Rejestracja
omajgat
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.10.2009

Ostrzeżenie: (0%)
-----


Witam, to moja 1 styczność z mysql. Staralem sie zrobic cos prostego dla testu. Lecz na samym poczatku juz napotkalem na problem (IMG:style_emoticons/default/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..

Ten post edytował omajgat 30.10.2009, 08:41:47
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
sadistic_son
post
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sadistic_son 30.10.2009, 05:46:53
Go to the top of the page
+Quote Post
omajgat
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.10.2009

Ostrzeżenie: (0%)
-----


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();
?>
Go to the top of the page
+Quote Post
bobo168
post
Post #4





Grupa: Zarejestrowani
Postów: 201
Pomógł: 9
Dołączył: 23.08.2006

Ostrzeżenie: (0%)
-----


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.

Ten post edytował bobo168 30.10.2009, 08:18:43
Go to the top of the page
+Quote Post
sadistic_son
post
Post #5





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  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

Ten post edytował sadistic_son 30.10.2009, 08:23:21
Go to the top of the page
+Quote Post
omajgat
post
Post #6





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 7.10.2009

Ostrzeżenie: (0%)
-----


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?

Ten post edytował omajgat 30.10.2009, 08:34:54
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 03:54