ďťż
Podstrony
|
telcocafeWitam. Mam taki problem: jeśli mam jakiś tekst, w tórym znajduje cię taki ciąg "<<", to przy zapisywaniu tego tekstu do bazy, tekst po tym ciągu znika. Jak mogę się zabezpieczyć przed takim czymś??np jest tekst: "lalallalal<<tattatat" to po zapisie do bazy, zawartosc pola jest "lalallalal" Dziwny problem. Ja nie mam takich kłopotów. Dodajesz z poziomu php czy przez np. phpMyAdmin? Podaj ten swój kod? Może masz jakąś funkcję php, która jest za to odpowiedzialna? hmm może spróbuj z nie z "tekst" tylko 'tekst' w php "$zmienna" to wyjdzie jej zawartość, a jak '$zmienna' to napis zmienna. <? if(isset($_POST["dodac"])==true && $_POST["dodac"]==1) { $dodac=0; include("poloncz.php"); $godzina = date(h); $godzina++; $czas= date(Y) .'-'.date(m).'-'.date(d).' (' .$godzina.':'.date(i); $czas.=':'; $czas.=date(s); $czas.=')'; if(isset($_POST["id_newsa"])==true) { $id_newsa = $_POST["id_newsa"]; $wynik =mysql_query("SELECT * FROM tab_news WHERE id = $id_newsa", $connection) or die(mysql_error()); $wynik = mysql_num_rows($wynik); if($wynik>0) { $autor = $_POST["autor"]; $autor = strip_tags($autor); $tresc = $_POST["tresc"]; $tresc = strip_tags($tresc); mysql_query("INSERT INTO tab_komentarze (id_newsa, autor, czas, tresc) VALUES ('$id_newsa', '$autor' , '$czas', '$tresc' );") or die(mysql_error()); } } } ?> kod dodawania do bazy, chodzi mi dokladnie o zawartosc zmiennej $tresc, to jej zawartosc jest ucinana od wystąpienia znaku "<<" $tresc = strip_tags($tresc); Funkcja strip_tags() usuwa tagi HTML-a, tj. zawartość pomiędzy "<" a ">" :) Zamiast tego zrób lepiej zamianę "<" na znak specjalny "<" a ">" na ">". BTW: pisze się "połącz", a nie "połoncz" :P //edit: jeszcze dam Ci taką wskazówkę: zamiast pisać: if(isset($_POST["dodac"])==true && $_POST["dodac"]==1) wystarczy: if($_POST['dodac']) ;) Użytkownik Coldpeer edytował ten post 25 marzec 2006, 12:14 $tresc = strip_tags($tresc); Funkcja strip_tags() usuwa tagi HTML-a, tj. zawartość pomiędzy "<" a ">" :) Zamiast tego zrób lepiej zamianę "<" na znak specjalny "<" a ">" na ">". BTW: pisze się "połącz", a nie "połoncz" :P hmm ale jak zrobie zamianę to strip_tags() nie wytnie mi znaczników html Ja robie to troche inaczej, natomiast do bazy dodaje taki tekst jaki wpisal uzytkownik bez strip_tags(), ale tylko z addslashes(). Dopiero gdy z bazy pobieram wyniki z bazy to je filtruje. Robie jedna funkcje ktora usuwa znaki html i stripslashes oraz znak nowej lini zamieniam na <br />. Cos mniej wiecej takiego: function outText($string) { // usun zbedne  $string=stripslashes($string); // zamien HTML  $string = str_replace("<", "<", $string);     $string = str_replace(">", ">", $string);    // kolejny wiersz  $string = nl2br($string); // zwroc rezultat return $string; } btw. mozliwe w kodzie literowki nie sprawdzalem go. Użytkownik adex edytował ten post 26 marzec 2006, 12:36 //edit: jeszcze dam Ci taką wskazówkę: zamiast pisać: if(isset($_POST["dodac"])==true && $_POST["dodac"]==1) wystarczy: if($_POST['dodac']) ;) |
|||
Sitedesign by AltusUmbrae. |