Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Filtrowanie danych
blaskognia
post
Post #1





Grupa: Zablokowani
Postów: 42
Pomógł: 0
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Co zrobić, by w podanym nizej kodzie dane rzeczywiście były filtrowane?
I jakich tagów użyć, by ENTERY (znaki powstałe po wciśnieciu ENTER), które w bazie sa widoczne normalnie na stronie przekształcane były w
Kod
<br />


Problem polega na tym, że dane do bazy danych są pobierane nie wiem dlaczego nie ze zdefiniowanych zmiennych tylko bezpośrednio z formularza. Próbowałem zmieniać nazwy tych zdefiniowanych zmiennych (jednocześnie odpowiednio zmieniając je w zapytaniu) ale wtedy okazywało się, że w ogóle ich nie widzi.

  1. <?php
  2. if($send=='Wyslij') {
  3. $zapytanie = "INSERT INTO komentarze SET idnotki='$idnotki', imie='$imie', email='$email', gadu='$gadu', tresc='$tresc', data='$data', ip='$adres', host='$host', przegladarka='$przegladarka'";
  4. $wykonaj = mysql_query ($zapytanie);
  5. $idnotki = $_post['idnotki'];
  6. $imie = strip_tags($_POST['imie']);
  7. $email = strip_tags($_POST['email']);
  8. $gadu = strip_tags($_POST['gadu']);
  9. $tresc = strip_tags(nl2br($_POST['tresc']));
  10. $adres = $_POST['adres'];
  11. $host = $_POST['host'];
  12. $przegladarka = $_POST['przegladarka'];
  13. Header ('Location: http://www.ogien.webd.pl/komentarze.php?nr='.$no.'');}
  14. else {
  15. echo "
  16. <form method=\"post\" action=\"komentarze.php?nr=$no\">
  17.  
  18. <center>
  19. <table border=\"0\" width=\"300\" bordercolorlight=\"#000000\" cellspacing=\"1\" cellpadding=\"1\">
  20. <tr><td valign=\"top\">
  21. Zwą mnie:
  22. </td><td>
  23. <input type=\"text\" name=\"imie\" size=\"20\">
  24. </td></tr><tr><td valign=\"top\">
  25. E-mail:
  26. </td><td>
  27. <input type=\"text\" name=\"email\" size=\"20\">
  28. </td></tr><tr><td valign=\"top\">
  29. Gadu:</td><td><in      put type=\"text\" name=\"gadu\" size=\"20\">
  30. </td></tr><tr><td valign=\"top\">
  31. Rzeknę:</td><td><textarea type=\"text\" name=\"tresc\" rows=\"10\" cols=\"20\"></textarea></td></tr>
  32.  
  33. <tr><td><input type=\"hidden\" value=\"$no\" name=\"idnotki\">
  34. <input type=\"hidden\" value=\"".$_SERVER['REMOTE_ADDR']."\" name=\"adres\">
  35. <input type=\"hidden\" value=\"".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\" name=\"host\">
  36. <input type=\"hidden\" value=\"".$_SERVER['HTTP_USER_AGENT']."\" name=\"przegladarka\">
  37. </td></tr></table>
  38.  
  39. <table border=\"0\" width=\"300\" bordercolorlight=\"#000000\" cellspacing=\"1\" cellpadding=\"1\">
  40. <tr><td><center><input type=\"submit\" value=\"Wyslij\" name=\"send\"></cenetr></td></tr></table>
  41. </center>
  42.  
  43. </form>";}
  44. ?>


poprawiam
---
nospor
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




Cytat
I jakich tagów użyć, by ENTERY (znaki powstałe po wciśnieciu ENTER), które w bazie sa widoczne normalnie na stronie przekształcane były w br
nl2br

  1. <?php
  2. $tresc = strip_tags(nl2br($_POST['tresc']));
  3. ?>
najpierw zamieniasz entery na <br /> a potem usuwasz te znaczniki. gdzie sens i logika?


Cytat
Problem polega na tym, że dane do bazy danych są pobierane nie wiem dlaczego nie ze zdefiniowanych zmiennych tylko bezpośrednio z formularza. Próbowałem zmieniać nazwy tych zdefiniowanych zmiennych (jednocześnie odpowiednio zmieniając je w zapytaniu) ale wtedy okazywało się, że w ogóle ich nie widzi.
a tego to nie kumam o co ci biega

ps: uzywaj wlasciwego bbcode


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

"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
blaskognia
post
Post #3





Grupa: Zablokowani
Postów: 42
Pomógł: 0
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Jak się nie czyta to się nie rozumie. Jako ktoś kto chciał pomóc powinieeś zauważyć, że ten kod to podawanie danych DO bazy danych. Wtedy nastęouje filtrowanie, a wciskane entery nie są pomijane. Podczas odczytu z bazy danych można użyc skryptu zamieniającego je na <br>

A jeśli chodzi o resztę to na samej górze są zdefiniowane zmienne, które czerpią a raczej powinny czerpac dane z formularza. W zapytaniu obecne są nazwy zmiennych, które to powinny odnosić się do tych zdefiniowanych wyżej zmiennych, ale tak nie jest. Zapytanie czerpie dane nie ze zdefiniowanych zmiennych tylko z formularza bezpośrednio. A mi chodzi o to, by czerpały je włąsnie ze zmiennych, przy których jest filtrowanie.

By to sprawdzić zrobiłem tak. Do każdej zmiennej zdefiniowanej dodałem literę a i to samo zrobiłem w zapytaniu. o tym zapytanie nie widziało żadnych zmiennych, a więc zadam pytanie inaczej.

Gdzie umieścić zmienne zdefiniowane, by czerpały dane z formularza a zapytanie z tych zdefiniowanych zmiennych.
Go to the top of the page
+Quote Post
nospor
post
Post #4





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




Cytat
Jako ktoś kto chciał pomóc powinieeś zauważyć, że ten kod to podawanie danych DO bazy danych. Wtedy nastęouje filtrowanie, a wciskane entery nie są pomijane. Podczas odczytu z bazy danych można użyc skryptu zamieniającego je na <br>
a czy ja ci sie czepialem do bazy?Jak się nie czyta to się nie rozumie winksmiley.jpg Ja sie czepialem tej linijki:
  1. <?php
  2. $tresc = strip_tags(nl2br($_POST['tresc']));
  3. ?>
zamienisz nowe linie na br a potem te br usuwasz przy pomocy strip_tags. ponawiam wiec pytanie: gdzie sens i logika?

Cytat
W zapytaniu obecne są nazwy zmiennych, które to powinny odnosić się do tych zdefiniowanych wyżej zmiennych, ale tak nie jest. Zapytanie czerpie dane nie ze zdefiniowanych zmiennych tylko z formularza bezpośrednio. A mi chodzi o to, by czerpały je włąsnie ze zmiennych, przy których jest filtrowanie.
No chlopie, a czemu sie dziwisz?Przeciez najpierw generujesz zapytanie a dopiero potem zmienne, ktore w tym zapytaniu wykorzystujesz smile.gif Nie ta kolejność

pozatym nie:
  1. <?php
  2. $idnotki = $_post['idnotki'];
  3. ?>

a:
  1. <?php
  2. $idnotki = $_POST['idnotki'];
  3. ?>


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

"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
blaskognia
post
Post #5





Grupa: Zablokowani
Postów: 42
Pomógł: 0
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


A jaka powinna być właściwa w nich kolejność?

  1. <?php
  2. if($send=='Wyslij') {
  3. $zapytanie = "INSERT INTO komentarze SET idnotki='$aidnotki', imie='$aimie', email='$aemail', gadu='$agadu', tresc='$atresc', data='$adata', ip='$aadres', host='$ahost', przegladarka='$aprzegladarka'";
  4. $wykonaj = mysql_query ($zapytanie);
  5. $aidnotki = $_POST['idnotki'];
  6. $aimie = strip_tags($_POST['imie']);
  7. $aemail = strip_tags($_POST['email']);
  8. $agadu = strip_tags($_POST['gadu']);
  9. $atresc = nl2br(strip_tags($_POST['tresc']));
  10. $aadres = $_POST['adres'];
  11. $ahost = $_POST['host'];
  12. $aprzegladarka = $_POST['przegladarka'];
  13. Header ('Location: http://www.ogien.webd.pl/komentarze.php?nr='.$no.'');}
  14. else {
  15. echo "
  16. <form method=\"post\" action=\"komentarze.php?nr=$no\">
  17.  
  18. <center>
  19. <table border=\"0\" width=\"300\" bordercolorlight=\"#000000\" cellspacing=\"1\" cellpadding=\"1\">
  20. <tr><td valign=\"top\">
  21. Zwą mnie:
  22. </td><td>
  23. <input type=\"text\" name=\"imie\" size=\"20\">
  24. </td></tr><tr><td valign=\"top\">
  25. E-mail:
  26. </td><td>
  27. <input type=\"text\" name=\"email\" size=\"20\">
  28. </td></tr><tr><td valign=\"top\">
  29. Gadu:</td><td><input type=\"text\" name=\"gadu\" size=\"20\">
  30. </td></tr><tr><td valign=\"top\">
  31. Rzeknę:</td><td><textarea type=\"text\" name=\"tresc\" rows=\"10\" cols=\"20\"></textarea></td></tr>
  32.  
  33. <tr><td><input type=\"hidden\" value=\"$no\" name=\"idnotki\">
  34. <input type=\"hidden\" value=\"".$_SERVER['REMOTE_ADDR']."\" name=\"adres\">
  35. <input type=\"hidden\" value=\"".gethostbyaddr($_SERVER['REMOTE_ADDR'])."\" name=\"host\">
  36. <input type=\"hidden\" value=\"".$_SERVER['HTTP_USER_AGENT']."\" name=\"przegladarka\">
  37. </td></tr></table>
  38.  
  39. <table border=\"0\" width=\"300\" bordercolorlight=\"#000000\" cellspacing=\"1\" cellpadding=\"1\">
  40. <tr><td><center><input type=\"submit\" value=\"Wyslij\" name=\"send\"></cenetr></td></tr></table>
  41. </center>
  42.  
  43. </form>";
  44. }
  45. ?>



Spójrz prosze też na ten kod od zamiany ENTERÓW na BRy... zmieniłem kolejnośc, tzn, że najpierw filtruje potem je zamienia, czy tak można?

Ten post edytował blaskognia 25.01.2006, 10:11:19
Go to the top of the page
+Quote Post
nospor
post
Post #6





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




no a zastanow sie. skoro do wygenerowania zapytania uzywasz pewnuch zmiennych, musi wiec je najpierw utworzyc a dopiero potem zapytanie

  1. <?php
  2.  
  3. $aidnotki = $_POST['idnotki'];
  4. $aimie = strip_tags($_POST['imie']);
  5. $aemail = strip_tags($_POST['email']);
  6. $agadu = strip_tags($_POST['gadu']);
  7. $atresc = nl2br(strip_tags($_POST['tresc']));
  8. $aadres = $_POST['adres'];
  9. $ahost = $_POST['host'];
  10. $aprzegladarka = $_POST['przegladarka'];
  11.  
  12. $zapytanie = "INSERT INTO komentarze SET idnotki='$aidnotki', imie='$aimie', email='$aemail', gadu='$agadu', tresc='$atresc', data='$adata', ip='$aadres', host='$ahost', przegladarka='$aprzegladarka'";
  13. $wykonaj = mysql_query ($zapytanie);
  14.  
  15. ?>


ps: widze ze poprawiles "sens i logikę" smile.gif Aczkolwiek do bazy powienies wkladac tekst nie zaminiony na br. dopiero przy wyswietlaniu danych z bazy powienienes zamieniac entery na br.

edit:
o jaka mila odmiana z:
Cytat
Jak się nie czyta to się nie rozumie.

na:
Cytat
Spójrz prosze
smile.gif
na przyszlosc nie krzycz ze ktos ci czegos nie czyta, dopoki sam nie przeczytasz winksmiley.jpg


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

"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
blaskognia
post
Post #7





Grupa: Zablokowani
Postów: 42
Pomógł: 0
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Eh... przeprszam za tamto :- )

Jeszcze jedno... czy ma jakieś znaczenie to, że w bazie są <br>? Strona jest teraz wyświetlana poprawnie.

Na razie raczkuję i trochę zbyt wiele rzeczy wydaje mi się pozornie oczywistych... dzięki za pomoc :- )

Ten post edytował blaskognia 25.01.2006, 10:18:39
Go to the top of the page
+Quote Post
nospor
post
Post #8





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




Cytat
Jeszcze jedno... czy ma jakieś znaczenie to, że w bazie są <br>?
Zawsze to pare znakow wiecej w bazie niz by mialy byc entery smile.gif

pozatym uwazam ze w tabeli lepiej trzymac oryginal, a przy wyswietlaniu dopiero formatowac. ale jesli to nie przeszkadza to trzymaj se jak chcesz


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

"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
blaskognia
post
Post #9





Grupa: Zablokowani
Postów: 42
Pomógł: 0
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Ok... jeszcze raz wielkie dzięki :- )
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: 20.08.2025 - 04:20