Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Warning: mysql_real_escape_string()
Riggs
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bełdzio
post
Post #3





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


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


--------------------
Go to the top of the page
+Quote Post
Riggs
post
Post #4





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


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. ?>
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:55