Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Warning: mysql_real_escape_string()
Forum PHP.pl > Forum > PHP
Riggs
Witam!
Problem pojawił się gdy przerzucałem aplikację z jednego serwera na drugi. Na pierwszym działała bez problemu, po przeniesieniu na 2 nic nie mogę zdziałać z bazą.

Oto kod błedu:
  1. <?php
  2. Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO)
  3. ?>


Plik login.php w którym wyrzuca warninga
  1. <?php
  2. if (isset($_POST['submitted'])) {
  3. $errors = array();
  4. require_once ('db_config.php');
  5. $password = md5(strip_tags(mysql_real_escape_string($_POST['pass'])));
  6. $user = strip_tags(mysql_real_escape_string($_POST['nick']));
  7. $query = "SELECT * FROM users WHERE nick='".$user."'";
  8.  
  9. $result = $db->prepare($query);
  10. $result->execute();
  11. ?>


chodzi o wywołanie funkcji w $password, $user.
Wcześniej działało bez problemu, teraz nie mogę nic zrobić (w każdym pliku w którym używam tej funkcji jest problem).
Proszę o pomoc bo sprawa dość pilna
nospor
po pierwsze: skoro uzywasz PDO (wyglada to na PDO) to czemu sam escapujesz zmienne? PDO zrobi to za Ciebie poprzez bindowanie.
po drugie: skoro zmieniles serwer to moze zmienily ci sie dane dostepu do bazy danych. sprawdz to.
bełdzio
po 3cie "Dodaje znaki unikowe dla potrzeb poleceń SQL, biorąc po uwagę zestaw znaków używany w połączeniu." tak wiec musisz się połączyć smile.gif
Riggs
No tak, ale na localhoscie działało bez problemu (WAMP). Teraz chciałem to przenieść na inny localhost (XAMMP), który działa mi z pendrive i lipa (a projekt muszę/chcę jutro pokazać). Wrzucę jeszcze plik konfiguracyjny bazy (który jest wrzucony przez require_once). Może ktoś poradzi jakąś szybką zmianę bez usuwania wszystkich mysql_real_escape_string bo nie chciałbym aby na testowaniu projektu na uczelni wysypał się na prostym ataku.

  1. <?php
  2. $DB_USER = 'user';
  3. $DB_PASSWORD = 'password';
  4. $DB_HOST = 'localhost';
  5. $DB_NAME = 'press_archive_test';
  6.  
  7. try
  8.  {
  9. $db = new PDO('mysql:host='.$DB_HOST.';dbname='.$DB_NAME.'', ''.$DB_USER.'', ''.$DB_PASSWORD.'');
  10. $db->exec('SET CHARACTER SET utf8');
  11. //echo 'Połączenie nawiązane!';
  12.  }
  13.  catch(PDOException $e)
  14.  {
  15. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  16.  }
  17. ?>
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.