Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Formularz+mysql, problem
mtr
post 1.10.2004, 11:00:22
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 21.07.2004

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


Witam, moj problem dotyczy zapisu i odczytu z bazy i wrzucenie tekstu do <textarea> niby wszystko działa dobrze u mnie na krasnalu, ale na serwerze juz nie dodaje addslashes przy zapisie do bazy :/ przez co po wrzuceniu w <textarea> wywala mi kod, zamiast tekstu. Mozliwe ze cos namieszalem dlatego prosze o pomoc. dodam ze pod opera wszystko dziala ok, a pod ie sie kzraczy.

kod:
  1. <?php
  2.  
  3. function add_form() {        /*dodawanie newsa - formularz*/
  4. require(&#092;"db_config.php\");
  5. echo &#092;"<table width=\"730\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\">\"; 
  6. echo &#092;"<tr>\"; 
  7. echo &#092;"<td class=\"pod_banerem\" colspan=\"2\">\"; 
  8. echo &#092;"Dodawanie newsów:\"; 
  9. echo &#092;"</td></tr><tr><td class=\"red\" height=\"120\"><img name=\"pokaz\" class=\"zdjecie\" src=\"img/brakfoto.jpg\"></td><td class=\"red\"><form action=\"news_admin.php?op=add\" method=\"post\" name=\"formul\">\"; 
  10.  
  11. echo &#092;"Zdjęcie: <select name=\"nazwa_gal\" id=\"zmien\" onchange=\"Foto();\" class=\"textarea\">\";
  12.  
  13.  
  14. $wynik = mysql_query (&#092;"SELECT * FROM zdjecia_news\") or die (\" bł&plusmn;d w pytaniu\");
  15. echo &#092;"<option value=\"img/brakfoto.jpg\">(brak)</option>\";
  16. while ($rekord = mysql_fetch_array ($wynik)) {
  17. $galeria = $rekord[3];
  18. $min = $rekord[1];
  19. echo &#092;"<option value=\"\".$min.\"\">$galeria\";
  20.  
  21. }
  22. echo &#092;"</select></td></tr><tr><td class=\"red\">\";
  23. echo &#092;"Tytuł: </td><td class=\"red\"><input type=\"text\" class=\"textarea\" name=\"tytul\" size=\"55\"></td></tr>\"; 
  24.  
  25. echo &#092;"<tr><td class=\"red\">Tre&para;ć krótka: </td><td class=\"red\"><textarea name=\"tresc_short\" cols=\"100\" class=\"textarea\" rows=\"10\"></textarea></td></tr>\"; 
  26. echo &#092;"<tr><td class=\"red\">Tre&para;ć długa: </td><td class=\"red\"><textarea name=\"tresc_long\" cols=\"100\" class=\"textarea\" rows=\"20\"></textarea></td></tr>\";
  27. echo &#092;"<tr><td colspan=\"2\" class=\"red_center\" align=\"center\"><input type=\"hidden\" name=\"ip\" value=\"\".$_SERVER [ \"REMOTE_ADDR\" ].\"\">\";  
  28. echo &#092;"<input type=\"submit\" class=\"button\" value=\"Dodaj newsa\" name=\"dod\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\"; 
  29. echo &#092;"<input type=\"reset\" class=\"button\" value=\"Wyczy&para;ć\">&nbsp;&nbsp;\"; 
  30. echo &#092;"<input type=\"submit\" class=\"button\" value=\"Anuluj\" name=\"dod\">\";
  31. echo &#092;"</form>\"; 
  32. echo &#092;"</td>\"; 
  33. echo &#092;"</tr>\"; 
  34. echo &#092;"</table>\"; 
  35.  
  36. }
  37.  
  38. function add() {    /*dodawanie newsa do bazy*/
  39.  
  40. if($_POST['dod'] == &#092;"Dodaj newsa\") { 
  41. require(&#092;"db_config.php\");
  42. $tytul = $_POST['tytul']; 
  43. $image = $_POST['nazwa_gal'];
  44. $tresc_short = $_POST['tresc_short'];
  45.     $tresc_long = $_POST['tresc_long'];
  46. $ip = $_POST['ip'];
  47.  
  48. if ($tytul==&#092;"\" || $tresc_short==\"\" || $tresc_long==\"\") {
  49. die (&#092;"Musisz wypełnić wszystkie pola. <br><a href=\"javascript:history.back();\">Powrót</a> \");
  50. }
  51.  
  52. else {
  53. //sprawdzanie poprawnosci tytul
  54. $tytul = addslashes($tytul);
  55.  
  56.  
  57. //sprawdzanie poprawnosci tresc_short
  58. $tresc_short = addslashes($tresc_short);
  59.  
  60. //sprawdzanie poprawnosci tresc_long
  61. $tresc_long = addslashes($tresc_long);
  62.  
  63. $wynik = mysql_query(&#092;"SELECT * FROM zdjecia_news WHERE miniatura='$image'\") or die (\" bł&plusmn;d w pytaniu\");
  64. $rekord = mysql_fetch_array ($wynik);
  65. $image1= $rekord[1];
  66.  
  67. $pytka = &#092;"INSERT INTO news (idnews, tytul, image, tresc_short, tresc_long, ip, data) VALUES ('$idnews', '$tytul', '$image1', '$tresc_short', '$tresc_long', '$ip', now());\"; 
  68.  
  69. $wynik = mysql_query($pytka); 
  70. pokaz_wszystkie();
  71. }
  72. }
  73. else {
  74. pokaz_wszystkie();
  75. }
  76. }
  77.  
  78. ?>


w tym momencie powinno byc ze slashami, ale na serwerze tak sie nie dzieje. w bazie jest bez slashy. i po wywolaniu edycji:

  1. <?php
  2.  
  3. function edit_form() {        /*formularz edycji newsa o danym id*/
  4.     $id=$_GET['id'];
  5.     require(&#092;"db_config.php\");
  6.     echo &#092;"<table width=\"730\" cellspacing=\"1\" cellpadding=\"5\" border=\"0\">\"; 
  7. echo &#092;"<tr>\"; 
  8. echo &#092;"<td class=\"pod_banerem\" colspan=\"2\">\";
  9.     echo &#092;"Edycja newsa:\"; 
  10.     $wynik1 = mysql_query (&#092;"SELECT * FROM news WHERE idnews='$id'\") or die (\" bł&plusmn;d w pytaniu\");
  11.       $row = mysql_fetch_array($wynik1);
  12.     echo &#092;"</td></tr><tr><td class=\"red\" height=\"120\">\";
  13.     if ($row[2]==&#092;"\"){
  14.     echo &#092;"<img  name=\"pokaz\" class=\"zdjecie\" src=\"img/brakfoto.jpg\">\";
  15.     }
  16.     
  17.     else {
  18.     echo &#092;"<img name=\"pokaz\" class=\"zdjecie\" src=\"\".$row[2].\"\">\";
  19.     }
  20.     echo &#092;"</td><td class=\"red\"><form action=\"news_admin.php?op=edit&id=\". $id .\"\" name=\"formul\" method=\"post\">\"; 
  21.  
  22.     echo &#092;"Zdjęcie: <select name=\"nazwa_gal\" id=\"zmien\" onchange=\"Foto();\" class=\"textarea\">\";
  23. $wynik1 = mysql_query (&#092;"SELECT * FROM news WHERE idnews='$id'\") or die (\" bł&plusmn;d w pytaniu\");
  24.       $row = mysql_fetch_array($wynik1);
  25. echo &#092;"<option value=\"\".$row[2].\"\">aktualne</option>\";
  26.  
  27. $wynik = mysql_query (&#092;"SELECT * FROM zdjecia_news\") or die (\" bł&plusmn;d w pytaniu\");
  28. while ($rekord = mysql_fetch_array ($wynik)) {
  29. $galeria = $rekord[3];
  30. $min = $rekord[1];
  31. echo &#092;"<option value=\"\".$min.\"\">$galeria\";
  32. }
  33. echo &#092;"</select></td></tr><tr><td class=\"red\">\";
  34.  
  35.  
  36.     $query = &#092;"SELECT * FROM news WHERE idnews='$id'\"; 
  37.     $wynik = mysql_query($query); 
  38.       while($row = mysql_fetch_array($wynik)) { 
  39. $row[1] = stripslashes($row[1]);
  40. $krotki = stripslashes($row[3]);
  41. $row[4] = stripslashes($row[4]);
  42.  
  43.     echo &#092;"Tytuł: </td><td class=\"red\"><input type=\"text\" class=\"textarea\" name=\"tytul\" size=\"55\" value=\"\". $row[1] .\"\"></td></tr>\"; 
  44.  
  45. echo &#092;"<tr><td class=\"red\">Tre&para;ć krótka: </td><td class=\"red\"><textarea name=\"tresc_short\" cols=\"100\" class=\"textarea\" rows=\"10\" value=\"$krotki\">$krotki</textarea></td></tr>\"; 
  46. echo &#092;"<tr><td class=\"red\">Tre&para;ć długa: </td><td class=\"red\"><textarea name=\"tresc_long\" cols=\"100\" class=\"textarea\" rows=\"20\" value=\"\". $row[4] .\"\">\".$row[4].\"</textarea></td></tr>\";
  47. echo &#092;"<tr><td colspan=\"2\" class=\"red_center\" align=\"center\"><input type=\"hidden\" name=\"ip\" value=\"\".$_SERVER [ \"REMOTE_ADDR\" ].\"\">\";  
  48.     
  49. echo &#092;"<input type=\"submit\" class=\"button\" value=\"Zapisz zmiany\" name=\"edit\">\"; 
  50. echo &#092;"<input type=\"reset\" class=\"button\" value=\"Wyczy&para;ć\">\"; 
  51. echo &#092;"<input type=\"submit\" class=\"button\" value=\"Anuluj\" name=\"edit\">\";
  52.     echo &#092;"</form>\"; 
  53.     echo &#092;"</td>\"; 
  54.     echo &#092;"</tr>\"; 
  55.     echo &#092;"</table>\"; 
  56.  
  57.  
  58.   }
  59. }
  60.  
  61. ?>


przy w wpisanym do bazy tekscie w stylu:
Kod
Oto co powiedział xx : "blah,blah. blah, blah blah."

w np. tresc_long, wysypuje mi sie tam kod. co zrobic z cudzyslowami?

oczywiscie szukalem juz na forum ale sie nie umialem doszukac podobnej rzeczy wiec postanowilem poprosic o pomoc.

z góry dzieki

Ten post edytował mtr 1.10.2004, 17:15:45
Go to the top of the page
+Quote Post
-guest'apo-
post 1.10.2004, 22:26:59
Post #2





Goście







To ja może zapytam inaczej. Jakich funkcji używacie lub przez co przezucacie stringa przed zapisaniem do bazy. Chodzi mi np. o system newsow. Gdy np. user wpisze jakies znaczki to zeby nie wywalało kodu? Szukam najbardziej optymalnego rozwiazania, wiec prosze o opinie. Nie prosze o gotowy kod (choc tak byloby najłatwiej winksmiley.jpg ) tylko o sugestie, co robic by bylo najlepiej.
Go to the top of the page
+Quote Post
fiszol
post 1.10.2004, 22:30:12
Post #3





Grupa: Zarejestrowani
Postów: 449
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Cytat(guest'apo @ 2004-10-01 23:26:59)
quest'apo

[ot] Bardzo nieprzyjemny nick...[/ot]


--------------------
\o/
Go to the top of the page
+Quote Post
mtr
post 1.10.2004, 23:07:55
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 21.07.2004

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


No tak, ale czy ktos odpowie na ktores z powyzszych pytan? worriedsmiley.gif


EDIT:
dobra, juz nie trzeba, tak to juz jest, ze po zadaniu pytania po jakims czasie odpowiedz sie sama nasuwa. Ale jestem ciekaw, jakie inni maja sposoby na unikanie wpadek z formularzy.

Ten post edytował mtr 2.10.2004, 00:10:11
Go to the top of the page
+Quote Post
MoD
post 2.10.2004, 08:06:37
Post #5





Grupa: Zarejestrowani
Postów: 193
Pomógł: 0
Dołączył: 14.09.2003
Skąd: Brodnica (koło Torunia)

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


Cytat(mtr @ 2004-10-02 00:07:55)
(...)Ale jestem ciekaw, jakie inni maja sposoby na unikanie wpadek z formularzy.

Ja używam takich funcjii do zabezpieczania formularzy:

strip_tags" target="_blank lub htmlentities" target="_blank

ereg się przydaje do filtracjii wiadomości jak mamy skrypt oparty na plikach tekstowych i żeby się skrypt nie spynął poprzez wpisanie do tekstu separatora.

EDITED: BBCode specjalnie nie poprawiam.
Powyżej powinno pisać:
Cytat
strip_tags, htmlspecialchars lub htmlentities i czasami ereg


Ten post edytował MoD 2.10.2004, 12:21:51


--------------------
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 09:50