[ Miroslav Dostanić @ 12.01.2008. 21:06 ] @
Kad unesem tekst preko TEXTAREA, PHP sve to lepo smesti u MySQL bazu...

Ali kad u tu istu TEXTAREA unesem neki tekst putem copy/paste "metode", jednostavno nece nista da unese u bazu...

Ima li neko slicno iskustvo...
[ Nemanja Avramović @ 12.01.2008. 21:12 ] @
Šta tačno kopiraš preko copy/paste? Da li je to jedna reč, jedna rečenica, ogroman tekst, neki kod...?
[ Miroslav Dostanić @ 12.01.2008. 21:25 ] @
Kopirao sam neki drugi tekst iz Worda... recimo dva pasusa...
[ 1r0nM4n @ 12.01.2008. 21:49 ] @
Prvi put čujem za tako nešto... Daj HTML i PHP kôd pa da pogledamo..

p0z
[ Miroslav Ćurčić @ 12.01.2008. 21:57 ] @
Pazi, kad copy/paste-uješ iz Worda u browser preneće se i wordovi tagovi za formatiranje koji uopšte nisu prijateljski prema html-u, moguće da ti upravo oni smetaju.

Radi li kopiranje iz notepada-a?
[ Miroslav Dostanić @ 14.01.2008. 20:54 ] @
$upit4 = "insert into tekstovi(naslov,tekst) values('$naslov','$tekst')";

Dakle sporna je $tekst = $_POST['tekst'];

Kad npr kopiram sa ove strane
http://www.pcmag.com/article2/0,2704,1868388,00.asp
onda nece da mi unese to u bazu

A kad prekopiram bilo sta sa ovog foruma hoce...

I tako... znaci sa neke hoce a sa neke nece... zavisi... i iz Worda nece takodje...

$upit4 = mysql_query("insert into tekstovi(naslov,tekst) values('$naslov','$tekst'",mysql_real_escape_strin g($tekst));
Ovo neradi...

Evo sad vidim u cemu je problem... nece u bazu da mi unese znak ' jednostruki navodnik...

[Ovu poruku je menjao Miroslav Dostanić dana 14.01.2008. u 22:29 GMT+1]


[Ovu poruku je menjao Miroslav Dostanić dana 14.01.2008. u 22:48 GMT+1]
[ Nemanja Avramović @ 14.01.2008. 22:37 ] @
Code:
$upit4 = mysql_query("insert into tekstovi(naslov,tekst) values('$naslov','".mysql_real_escape_string($tekst). "');";
[ Miroslav Dostanić @ 15.01.2008. 09:31 ] @
Ni to nece da radi. Mnogo sam toga pokusao ali neradi. Prosto neverovatno.

Samo si napravio sintaksnu gresku. Treba ovako
Code:
$upit4 = mysql_query("insert into tekstovi(naslov,tekst) values('$naslov','".mysql_real_escape_string($tekst)."')");

Zagrada na kraju...
[ Nemanja Avramović @ 15.01.2008. 21:38 ] @
Hvala na ispravci
[ Miroslav Ćurčić @ 15.01.2008. 22:17 ] @
Obradi i $naslov sa funkcijom mysql_real_escape_string, za svaki slučaj.
Bilo bi dobro da dodaš ovo posle poziva mysql_query:
Code:
if ($upit4==false) echo 'Greška: '.mysql_error();

da bi video na kakvu se grešku i gde žali mysql server.
[ Miroslav Dostanić @ 19.01.2008. 21:00 ] @
Evo sta se desava u medjuvremenu...

Pokusam da unesem ovo

neki ' tekst

kad evo sta mi vrati

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tekst')' at line 1

Moram reci da mi na mom kompu radi sve ok... samo eto na hosting provajderu nece...

Na mom kompu cak nemoram ni da uradim escape...
[ Miroslav Ćurčić @ 19.01.2008. 21:31 ] @
Aj sad ovo:
Code:

$upit4= "insert into tekstovi(naslov,tekst) values('$naslov','$tekst')";
echo $upit4;
$upit4= mysql_query($upit4);

Pogledaj šta ti ispisuje !!!
Videćeš da ti je taj apostrof (iliti jednostruki navodnik) pre vremena zatvorio string i zato si pazario grešku.

Što se tiče "eskejpovanja", obrati pažnju da neki serveri sami eskejpuju vrednosti iz GET i POST ako je to uključeno u podešavanjima ("magoc_quotes"), a na nekim nije, znači skript mora prvo proveriti dali je takav slučaj pa primeniti dodatni eskejp ili ne.
Najbolje rešenje ti je da napraviš svoju funkciju za "hvatanje" promenljivih u koju ćeš ugraditi tu proveru i skinuti eskejp ako je magic_quotes uključen, a pri zapisivanju u bazu sve ih ponovo (ovaj put obavezno) eskejpuj.

Kod tebe u lokalu je verovatno uključen magic_quotes pa će gornji primer prikazati dodatnu kosu crtu pre unutrašnjeg apostrofa, i zato primer kod tebe radi.
[ Miroslav Dostanić @ 23.01.2008. 23:02 ] @
Tacno tako... evo vidim da na hosting provajderu je sve iskljuceno...

magic_quotes_gpc Off Off
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off

To je dakle problem... hvala svima na trudu.