Nejde vlozit dlouhy text

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
siM.s
Člen | 7
+
0
-

Ahoj,
mam problem a nevim si uz vazne rady. Mam klasicky formular s textareou. Vse funguje…ovsem pokud vlozim nejaky delsi text (rekneme dva normalni odstavce) na localu mi spadne APACHE (pouzivam EasyPHP 5.2.10) a na livu to proste vyhodi STRANKU NELZE ZOBRAZIT.

Nema nekdo tucha co to muze delat?

Mam posledni verzi Nette.

dotaz v Modelu je klasicky:

<?php
dibi::query("INSERT INTO [data] SET [text]='$text'");
?>

Editoval siM.s (18. 2. 2010 22:07)

maarlin
Člen | 207
+
0
-

Nepatří to spíš do fóra dibi?

V první řadě se tam imho dostává neescapovaná proměnná, osobně bych to přepsal takto:

dibi::query('INSERT INTO [data]', array('text' => $text));

Opravdu si ale nemyslím, že by tohle způsobovalo pád Apache…

Editoval maarlin (18. 2. 2010 22:20)

siM.s
Člen | 7
+
0
-

Ja nevim jestli je to problem ciste DIBI, nebo se to nejak vaze i k Nette. Nicmene opravdu mi diky tomu pada Apache. Ovsem…dulezite je, ze se mi proste ulozi jen urcity pocet znaku a dal ani ranu. Samozrejme sloupec je TEXT, nikoliv VARCHAR.

Co je na vkladani dlouheho textu tak sloziteho? Jak mam vlozit napr clanek?

Editoval siM.s (18. 2. 2010 22:43)

Mikulas Dite
Člen | 756
+
0
-

Především bych použil

<?php
dibi::query('INSERT INTO [data] SET [text]=%s',$text);
?>

viz. https://dibiphp.com/cs/quick-start modifikátory.
Není problém např. v omezené paměti, něčem jako je buffer? Nebo v příliš krátkém sloupci v db?

EDIT: EasyPHP mi také s Nette padá, ale pouze pokud mám neukončené uvozovky, použití dibi zápisu (výše) by to mělo opravit.

Editoval Mikulas Dite (18. 2. 2010 22:54)

siM.s
Člen | 7
+
0
-

to Mikulas: HURAAA :). Pomohlo presne to co jsi napsal. Clovek se stale uci. Diky.

redhead
Člen | 1313
+
0
-

Mikulas Dite napsal(a):

EDIT: EasyPHP mi také s Nette padá, ale pouze pokud mám neukončené uvozovky, použití dibi zápisu (výše) by to mělo opravit.

OT: divné, mám EasyPHP a nikdy mi nespadlo s Nette samotným, padá mi pouze s XDebugem a to je možná problém více ‚distribucí‘ než jen EasyPHP.

iguana007
Člen | 970
+
0
-

xdebug neni imho problem nejake distrubuce balicku Apache+PHP+MySQL, ale spise kombinace Win+XDebug … uz se to tady nekolikrat resilo a v podstate nevyresilo … budem muset pockat na nvejsi verzi XDebugu.