GrzesiekP
24-11-2010, 16:29
Witam!
Pierwsze pytanie - zaplecze.
Posługuję się klasą JTable zapisu/aktualizacji rekordów.
Wprowadzam jakiś tekst, np: "Cos tam 's ASD>@#$ <ads" - niestety, ale po "<" ucina resztę. Jak temu zaradzić?
Kod w kontrolerze:
function save() {
$option = JRequest::getCmd('option');
$this->setRedirect('index.php?option=' . $option . '&view=songs');
$post = JRequest::get('post');
JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_tophits' . DS . 'tables');
$row = & JTable::getInstance('songs', 'Table');
if (!$row->bind($post)) {
return JError::raiseWarning(500, $row->getError());
}
if (!$row->store()) {
return JError::raiseWarning(500, $row->getError());
}
$this->setMessage(JText::_('ALERT_SAVED_SUCCESS'));
}
I to samo pytanie od strony frontendu - użytkownik ma formularz, przesyłam formularz i w kontrolerze mam:
$row->song = JRequest::getVar('title','0','post','string',JREQU EST_ALLORAW);
Jak tutaj mam sobie poradzić ze znakami specjalnymi? Tak, by nie być zagrożonym ataki sql injection?
I jeszcze jedno pytanie - czy funkcja getescaped wystarczy, abym się czuł bezpiecznie, podczas wykonywań zapytań z "WHERE"? Chodzi oczywiście o SQL injection i umożliwienie użytkownikowi kilku funkcji do filtrowania, etc.
Dziękuję za pomoc :)
Pierwsze pytanie - zaplecze.
Posługuję się klasą JTable zapisu/aktualizacji rekordów.
Wprowadzam jakiś tekst, np: "Cos tam 's ASD>@#$ <ads" - niestety, ale po "<" ucina resztę. Jak temu zaradzić?
Kod w kontrolerze:
function save() {
$option = JRequest::getCmd('option');
$this->setRedirect('index.php?option=' . $option . '&view=songs');
$post = JRequest::get('post');
JTable::addIncludePath(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_tophits' . DS . 'tables');
$row = & JTable::getInstance('songs', 'Table');
if (!$row->bind($post)) {
return JError::raiseWarning(500, $row->getError());
}
if (!$row->store()) {
return JError::raiseWarning(500, $row->getError());
}
$this->setMessage(JText::_('ALERT_SAVED_SUCCESS'));
}
I to samo pytanie od strony frontendu - użytkownik ma formularz, przesyłam formularz i w kontrolerze mam:
$row->song = JRequest::getVar('title','0','post','string',JREQU EST_ALLORAW);
Jak tutaj mam sobie poradzić ze znakami specjalnymi? Tak, by nie być zagrożonym ataki sql injection?
I jeszcze jedno pytanie - czy funkcja getescaped wystarczy, abym się czuł bezpiecznie, podczas wykonywań zapytań z "WHERE"? Chodzi oczywiście o SQL injection i umożliwienie użytkownikowi kilku funkcji do filtrowania, etc.
Dziękuję za pomoc :)