DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   Problem textarea, post method, php, mysql (http://www.devprotalk.com/showthread.php?t=4491)

Miroslav 12. 01. 2008. 22:47

Problem textarea, post method, php, mysql
 
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...

benjamin 13. 01. 2008. 00:00

Citat:

Originalno napisao Miroslav (Napišite 49650)
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...


pada mi na pamet:

1. taj copy-paste ima previše karaktera i to baza ne može da spakuje u predvidjeno polje (rešenje promeni tip u bazi na nešto veće)

2. da se slučajno nije promakao neki od zabranjenih karaktera ... ala apostrof, navodnik etc.

Miroslav 13. 01. 2008. 10:03

Tip kolone u bazi je TEXT...

Gargoyle 13. 01. 2008. 13:29

Citat:

2. da se slučajno nije promakao neki od zabranjenih karaktera ... ala apostrof, navodnik etc.
ovo je 100% ;) eskejpuj apostrofe ...

benjamin 13. 01. 2008. 16:55

nemam više ideja :)

dosta bi ti pomoglo da hvataš mysql grešku ... ako ti to na kaže šta je teško ćeš ovako naslepo da ubodeš :1014:

dootzky 14. 01. 2008. 12:07

def, probaj da uradis nesto ovako:

mysql_query($query) or die(mysql_error());

ako pukne negde - lako ces videti, i onda nam daj da vidimo to tvoje polje.

ali verovatno je ovaj drugi problem, nesto sto ubacujes ti nije zasticeno, ako ti se ta promenljiva zove tipa

$komentar

kada je hvatas, nemoj da napises samo

$komentar = $_POST['komentar'];

nego je zastiti sa dodatnim slashevima, if needed, to ce sve sam PHP da ti odradi, samo pozovi to ovako:

$komentar = addslashes($_POST['komentar']);

ziv bio pa da ti proradi ;)

Ilija Studen 14. 01. 2008. 14:39

1. Nikad ne koristiš add / stripslashes(). Postaraj se da skript UVEK radi sa ulaznim parametrima bez slasheva. Ja ih uvek stripujem pri inicijalizaciji skripte sa:

PHP kôd:

/**
  * This function will strip slashes if magic quotes is enabled so 
  * all input data ($_GET, $_POST, $_COOKIE) is free of slashes
  *
  * @param void
  * @return null
  */
  
function fix_input_quotes() {
    if(
get_magic_quotes_gpc()) {
      
array_stripslashes($_GET);
      
array_stripslashes($_POST);
      
array_stripslashes($_COOKIE);
    } 
// if
  
// fix_input_quotes
  
/**
  * This function will walk recursivly thorugh array and strip slashes from scalar values
  *
  * @param array $array
  * @return array
  */
  
function array_stripslashes(&$array) {
    if(!
is_array($array)) return;
    foreach(
$array as $k => $v) {
      if(
is_array($array[$k])) {
        
array_stripslashes($array[$k]);
      } else {
        
$array[$k] = stripslashes($array[$k]);
      } 
// if
    
// foreach
    
return $array;
  } 
// array_stripslashes 

Samo pozoveš fix_input_quotes() pri incijalizaciji i pustiše je da odradi svoje.

Ove funkcije su relativno davno napisane, ali do sada nisam imao nikakvih prijavljenih problema sa njima.

2. Kada escapeuješ stringove u upitima koristim mysql_real_escape_string(). Ova funkcija koristi direktno MySQL funkcije tako da ti ne moraš previše da se cimaš. Takođe možeš da pogledaš prepared statements, ali to je meni previše cimanja. Evo jedan kratak tekst.

Btw, ovaj i slični problemi su razlog zašto mislim da početnici treba da koriste postojeće framework-e.

Miroslav 14. 01. 2008. 21:07

OK... provericu sve to...
Evo jos par detalja koje sam video...

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 ovo sto ste mi vi gore pisali to hoce... sa ove strane DevProTalk foruma.

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

Jos cu sad malo ispitati ovo sto ste mi gore rekli...

Ilija Studen 14. 01. 2008. 21:15

Prekini da razmišljaš o tome šta 'oće, a šta neće i pogledaj tekstove i savete što su predloženi i RAZUMI to o čemu se priča. Problem je trivijalan i ako ne shvatiš da stringove koje unosiš u bazu treba da escapeuješ pre unosa od tvog programiranja neće biti ništa.

Simple as that ;)

benjamin 14. 01. 2008. 22:15

Citat:

Originalno napisao Ilija Studen (Napišite 49747)
Prekini da razmišljaš o tome šta 'oće, a šta neće i pogledaj tekstove i savete što su predloženi i RAZUMI to o čemu se priča. Problem je trivijalan i ako ne shvatiš da stringove koje unosiš u bazu treba da escapeuješ pre unosa od tvog programiranja neće biti ništa.

Simple as that ;)

okrutno ali realno :)


Vreme je GMT +2. Trenutno vreme je 01:47.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.