Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie nicku do osobnej tabeli (PDO)
Forum PHP.pl > Forum > PHP
Piffek
Witam. Mam problem, mianowicie, logowanie działa bez zarzutu, lecz nie widzi funkcji dodającej nick do tabeli 'Kiedy'. Co jest tego przyczyną?

  1. function form(){
  2. echo '
  3. <form action="" method="post">
  4. <label for="nick">Login</label>
  5. <input type="text" name="nick" required>
  6. <br>
  7. <label for="haslo">Hasło</label>
  8. <input type="password" name="haslo" required>
  9. <br>
  10. <input type="submit" name="wyslano" value="Zaloguj się"/>
  11. </form>
  12. ';
  13. }
  14. //Połączenie z bazą danych MySQL PDO
  15. $db = new PDO(' array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
  16.  
  17. if(isset($_POST['wyslano'])){ //Sprawdzamy, czy submit został wciśnięty
  18. //Usuwamy białe znaki z przesłanych danych
  19. $nick = trim($_POST['nick']);
  20. $haslo = trim($_POST['haslo']);
  21. $data = date('Y-m-d');
  22.  
  23. $stmt = $db->prepare("SELECT * FROM uzytkownicy WHERE nick=:nick AND haslo=:haslo");
  24. $stmt->bindValue(":nick", $nick, PDO::PARAM_STR);
  25. $stmt->bindValue(":haslo", $haslo, PDO::PARAM_STR);
  26. $stmt->execute();
  27. echo $stmt->fullQuery;
  28. $row = $stmt->fetch(PDO::FETCH_ASSOC);
  29. if($stmt->rowCount()!=0){
  30. echo "Zalogowałeś się!";
  31. session_start();
  32. $_SESSION['zalogowany'] = true;
  33. $_SESSION['nick'] = $row['nick'];
  34. header('Location:pologowaniu.php');
  35. dodajlogin($nick);
  36. }
  37. else{
  38. echo '<div style="color:red">Login i/lub hasło są nieprawidłowe</div>';
  39. form();
  40. }
  41. }
  42. else form();
  43.  
  44. function dodajlogin($nick)
  45. {
  46. $db = new PDO('', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")) or die();
  47. $stmt=$db->prepare('INSERT INTO Kiedy (nick) VALUES (:nick)');
  48. $stmt=bindParam(':nick',$_SESSION['nick'],PDO::PARAM_STR);
  49. $stmt->execute();
  50. }
viking
Rozumiem że DSN wyciąłeś z tego kodu? Kiedy jest z dużej litery i masz to poprawnie zapisać `Kiedy`. I wywal to or die().
Piffek
Dalej to samo. Nawet jak dodam wywołanie funkcji z 'Kiedy' po header, to nie wyświetla się formularz logowania.
viking
Cytat
For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement.
Piffek
Rozumiem, czyli co zamiast rowCount() warto zastosować?
viking
Masz w dokumentacji dalej wszystko napisane. Dodatkowo fetch zwraca wynik albo false co możesz sprawdzić.
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.