Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc w poprawie kodu na php 7
Forum PHP.pl > Forum > PHP
kry008
Mam taki kod
  1. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  2. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  3.  
  4. if ($userExists[0] == 0) {
  5. // Użytkownik nie istnieje w bazie
  6. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';

I wyskakuje taki błąd
Warning: mysql_query(): Permission denied in /usr/home/kry008/domains/e-biblioteka.ct8.pl/public_html/logowanie.php on line 46 Warning: mysql_query():
A link to the server could not be established in /usr/home/kry008/domains/e-biblioteka.ct8.pl/public_html/logowanie.php on line 46 Warning: mysql_fetch_array()
expects parameter 1 to be resource, boolean given in /usr/home/kry008/domains/e-biblioteka.ct8.pl/public_html/logowanie.php on line 46

wiem tyle że ten kod trzeba przerobić na PDO:: (coś tam i właśnie nie wiem jak to zrobić)
pełny kod jak potrzeba:
  1. <?php
  2. /*
  3. MADE BY BLACK-PAROTS
  4. ALL RIGHTS RESERVED Ž 2017-2018
  5. WSZELKIE PRAW ZASTRZEŻONE Ž 2017-2018
  6. */
  7. include_once('connect.php');
  8. include_once('definicje.php');
  9. /**
  10.  * Formularz oraz skrypt logowania
  11.  */
  12. $lczytelnika = htmlspecialchars($_POST['lczytelnik']);
  13. $hczytelnika = htmlspecialchars($_POST['hczytelnik']);
  14. //$lczytelnika = $_POST['lczytelnik'];
  15. //$hczytelnika = $_POST['hczytelnik'];
  16. $aaa = $_POST['aaa'];
  17. if(!isset($aaa))
  18. { //jeszcze nie zalogowany pokaż formulaż logowania
  19. echo '
  20. <form method="post" action="">
  21. <label for="login">Login:</label>
  22. <input type="text" name="lczytelnik" maxlength="32" id="lczytelnik" />
  23.  
  24. <label for="pass">Hasło:</label>
  25. <input type="password" name="hczytelnik" maxlength="32" id="hczytelnik" /><br />
  26.  
  27. <input type="hidden" name="aaa" value="1" />
  28. <input type="submit" value="Zaloguj" />
  29. </form>
  30. ';
  31. }
  32. if(isset($aaa)) //formularz wypełniony czas na sprawdzenie
  33. {
  34.  
  35. if($lczytelnika == "")
  36. {
  37. echo '<big>NIE PODAŁEŚ LOGINU</big>';
  38. }
  39. elseif($hczytelnika == "")
  40. {
  41. echo '<big>NIE PODAŁEŚ HASŁA</big>';
  42. }
  43.  
  44. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  45. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login = '$login' AND pass = '$pass'"));
  46.  
  47. if ($userExists[0] == 0) {
  48. // Użytkownik nie istnieje w bazie
  49. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
  50. }
  51. else {
  52. // Użytkownik istnieje
  53. $user = user::getData($login, $pass); // Pobierz dane użytknika do tablicy i zapisz ją do zmiennej $user
  54.  
  55. // Przypisz pobrane dane do sesji
  56. $_SESSION['login'] = $login;
  57. $_SESSION['pass'] = $pass;
  58.  
  59. echo '<p class="success">Zostałeś zalogowany. Możesz przejść na <a href="index.php">stronę główną</a></p>';
  60. }
  61. unset($lczytelnika);
  62. unset($hczytelnika);
  63. }
  64. ?>
  65.  
  66.  
  67.  
  68. <?php
  69.  
  70.  
  71. ?>
  72.  
  73.  
  74. <?php
  75. include_once('stopka.php');
  76. ?>

Tylko z jednym zastrzeżeniem ja chcę tylko pomoc z kodem wymienionym na samym początku

Mała poprawka kodu
  1. // Sprawdź, czy użytkownik o podanym loginie i haśle isnieje w bazie danych
  2. $userExists = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM users WHERE login_czytelnika = '$lczytelnik' AND haslo_czytelnika = '$hczytelnik'"));
  3.  
  4. if ($userExists[0] == 0) {
  5. // Użytkownik nie istnieje w bazie
  6. echo '<p class="error">Użytkownik o podanym loginie i haśle nie istnieje.</p>';
sazian
Łatwiej będzie przejść na mysqli.
Wystarczy zamienić wszystkie mysql_ na mysqli_ oraz w query jako pierwszy parametr podajesz link do połączenia zwracany przez mysqli_connect.
kry008
Tylko mam blokadę na mysql_fetch_array() od dostawcy hostingu i muszę przejść na PDO
nospor
wg komunikatu nie masz zadnej blokady a jedynie masz zle skonfigurowane polaczenie do bazy. przejscie na PDO nie rozwiaze tego problemu.
Oczywiscie, przejscie na PDO to bardzo pomysl rzecz jasna, mowie tyko ze teraz problem masz z czyms innym.

No i wbrew temu co masz w tytule, kodu tego nie odpalasz na php7 bo jakbys odpalal na php7 to bys mial inny error
kry008
Cytat(sazian @ 11.12.2017, 21:29:38 ) *
Łatwiej będzie przejść na mysqli.
Wystarczy zamienić wszystkie mysql_ na mysqli_ oraz w query jako pierwszy parametr podajesz link do połączenia zwracany przez mysqli_connect.

A jak już to jak

na tym hostingu mam na próbę potem przechodzę na 7.1
viking
Jeśli przejdzisz na 7 to ten cały kod jest bezużyteczny bo od php7 mysql nie istnieje.
nospor
@kry008 jesli uwazasz, ze jakis user cie zle zrozumial, to wyjasnij to w temacie a nie raportujesz tego usera.... jak dziecko.
Jak napisales tak ludzie odpowiadaja.
StevDefs
Pastilla Cialis Uso Propecia Interacciones purchase antabuse Dapoxetine For Sale

Propecia Samples Acquistare Viagra Contrassegno Buy Doxycycline Online In Canada online pharmacy Liver Damage Propecia Cialis Prezzo In Italia Dove Comprare Il Cialis On Line

What Is Keflex Sulfa Viagra E Fecondazione viagra Cialis Y Tadalafil Acheter Cialis 5 Mg Comprime Pellicule Boite De 28

Canadian Global Pharmacy Valtrex Buy Online Canada Viagra Sources cialis from canada Amoxicillin And Clavulanic Acid Cialis Se Toma

Keflex And Side Effects Order 60 Mg Orlistat Online By Fedex Dove Comprare Il Cialis Generico viagra Myrx Olanzapine Achat De Kamagra Au Canada

Water Pill Online Purchase Amoxicillin 250 Mg cialis without prescription Healthyman Viagra (Brand) For Sale In Australia

Propecia Once A Week Estrace 1mg Tablets Cialis Spedizione 24 Ore buy cialis online Buy Propecia 1mg

Cialis 5 Mg Collaterali Online Clomid Cheap cialis price Viagra Online Kaufen Zollfrei Pak For Bladder Infection
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.