Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem ze skryptem logowania, stworzyłem skrypt logowania, który nie pobiera danych z bazy danych
--charli_22--
post
Post #1





Goście







Witam

Stworzyłem skrypcik logowania, który po wnikliwych testach okazało się że nie pobiera z bazy danych informacji przesłanych w tablicy POST. Poniżej przedstawiam kod:

  1. <?php
  2. if(isset($_POST['g_email']) and isset($_POST['g_passwd'])){
  3.  
  4. $sql = "SELECT g_id, g_email, g_passwd FROM gusers WHERE g_email='" . $_POST['g_email'] . "' AND g_passwd='" . $_POST['g_passwd'] . "'";
  5.  
  6. $result = mysql_query($sql, $conn)
  7. or die ('Nie potrafię odnależć informacji o użytkowniku: ' . mysql_error());
  8.  
  9. if ($row = mysql_fetch_assoc($result)) {
  10. while ($row=mysql_fetch_assoc($result)) {
  11. $_SESSION['g_id'] = $row['g_id'];
  12. $_SESSION['g_email'] = $row['g_email'];
  13. $_SESSION['g_passwd'] = $row['g_passwd'];
  14. echo 'Zostałeś zalogowany. <a href="../index.php">Kliknij</a> aby przejsc do indeksu<br /><br />';
  15. }
  16. }
  17. }
  18. ?>


Zapytanie
  1. <?php
  2. $sql = "SELECT g_id, g_email, g_passwd FROM gusers WHERE g_email='" . $_POST['g_email'] . "' AND g_passwd='" . $_POST['g_passwd'] . "'";
  3. ?>


nie zwraca żadnych wartości. Zamiast $_POST['g_email'] $_POST['g_passwd'] wpisywałem na sztywno wartości z bazy danych, ale to nie pomagało. Gdy zmieniłem AND na OR wówczas informacje zostały pobrane z bazki, ale OR w przyszłości może doprowadzić do problemów.

Kodowanie w bazie mam UTF8.

Pozdrawiam
charli_22
Go to the top of the page
+Quote Post
roofy_1
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 12.02.2008

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


Witaj!!!
...a łączysz się z bazą? moze sprawdź to najpierw

poza tym ja na początek utworzyłbym nazwy krótkie zmiennych; po co klepać te wszystkie $_POST[...]
ale to taka moja uwaga
Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Ja bym zrezygnował z tego skryptu, nie podoba mi się on - z tego co pamiętam, na webhelpie był prosty i ładny skrypcik logowania.


Moim zdaniem metodologia powinna być taka:
  1. <?php
  2. $zapyt = mysql_query("select pass from users WHERE login='".$login."'");
  3. ?>

Pobierasz hasło dla danego loginu (czy tam maila) i sprawdzasz z hasłem, które masz w $_POST.
Go to the top of the page
+Quote Post
escobar1983
post
Post #4





Grupa: Zarejestrowani
Postów: 198
Pomógł: 0
Dołączył: 31.01.2008

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


  1. <?php
  2. $polaczenie = @mysql_connect($host, $user, $pass)
  3. or die('Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
  4.  
  5.  
  6. $db = @mysql_select_db($baza, $polaczenie)
  7. or die('Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error());  
  8.  
  9. if(!empty($_POST["g_email"]) && !empty($_POST["g_passwd"])){
  10. $guer=mysql_query("SELECT g_id, g_email, g_passwd FROM gusers WHERE g_email='" . $_POST['g_email'] . "' AND g_passwd='" . $_POST['g_passwd'] . "'";);
  11. $odp=mysql_num_rows($guer);
  12.  
  13. if( $odp == '1') {
  14. echo 'jestes '; 
  15. }
  16. ?>
Nie wiem czy ci o to chodzilo . Tutaj jest sprawdzenie czy osoba jest w bazie jak tak wyswietli ci napisz jestes
Go to the top of the page
+Quote Post
charli_22
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.03.2008

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


Witam!
Połączenie do bazy było ustalone, nie załączyłem całego pliku tylko wkleiłem samą funkcję odpowiedzialną za logowanie, moja wina:(
Napisałem zapytanie według metodologii, którą podesłał mi Pilsener i zaczęło działać:) :
  1. <?php
  2. $zapyt = mysql_query("select pass from users WHERE login='".$login."'");
  3. ?>


Dzięki

Ten post edytował charli_22 17.03.2008, 17:00:22
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: 23.08.2025 - 08:40