Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z AdoDB i qstr()
marcz
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.07.2003
Skąd: Białystok

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


Witam!

Przesiadłem się ostanio na AdoDB i niestety napotkałem mocno denerwujący problem.

Mój problem wygląda w ten sposób:
Korzystam z ActiveRecord w AdoDB, gdy przesyłam z formularza POSTem zmienną zawierającą znak ', po przesłaniu dostaję już \' (POST chyba to robi automatycznie, prawda?), zapisuję to do bazy, potem odczytuję to za pomocą powiedzmy Find(), przekazuję bezpośrednio do Smarty i na ekranie mam \' zamiast '.

Jak najlepiej sobie z tym poradzić żeby nie mieć niepotrzebnych slashy?

Druga sprawa to czy dodatkowo powinienem używać qstr() w przypadku ActiveRecord w AdoDB i jaka jest funkcja odwrotna do qstr() w AdoDB (inaczej - qstr() to odpowiednik addslashes(), a jaki jest odpowiednik stripslashes()?)?

Ten post edytował marcz 19.07.2006, 12:23:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marcz
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.07.2003
Skąd: Białystok

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


Niestety nie, przykład poniżek:

1) sposób:
  1. <?php
  2. rec = new ADOdb_Active_Record("TLanguages");
  3. $rec->Load("id_tlanguages=".$_POST['id_TLanguages']);
  4. $rec->name = $_POST['name'];
  5. $rec->replace();
  6. ?>


2) sposób
  1. <?php
  2. $db->Execute("UPDATE TLanguages SET name='".$_POST['name']."' WHERE id_TLanguages=".$_POST['id_TLanguages']);
  3. ?>


Nie zwracajmy narazie uwagi na poprawność takiego kodu pod względem bezpieczeństwa.
Chodzi o to, że jeżeli w polu o nazwie name w formularzu wpisaliśmy powiedzmy abc', to gdy zastosujemy 1 sposób mamy w bazie zapisane abc\', a jeżeli drugi sposób to mamy abc'.

Drugi sposób nie wstawia niepotrzebnego backslasha, ale mimo wszystko chcę stosować Active Record, bo to naprawdę fajna sprawa (w AdoDB niestety wiele mu do doskonałości jeszcze brakuje).

Moje drugie pytanie to jaką funkcję zastosować przy odczytywaniu danych z bazy, jeżeli zapisujemy stosując qstr().
Go to the top of the page
+Quote Post

Posty w temacie


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: 28.12.2025 - 13:06