PHP Помош

Член од
15 мај 2010
Мислења
540
Поени од реакции
72
Ај некој да ми помогне со PHP малце, ми излага ова предупредување:

Warning: mysql_result() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/lr/core/functions/users.php on line 17
Еве ја линијата со грешката:
PHP:
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `usename` = '$username'"), 0, 'user_id');
 
L

Luki Junior

Гостин
Ај некој да ми помогне со PHP малце, ми излага ова предупредување

PHP:
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `usename` = '$username'"), 0, 'user_id');
$username е стринг, така ли?
Ако е стринг, у шо требе да стое? :):)


пс....
PHP:
 '"$username"'
 

Dzish

unlike any other...
Член од
15 февруари 2007
Мислења
13.994
Поени од реакции
2.681
$username е стринг, така ли?
Ако е стринг, у шо требе да стое? :):)


пс....
PHP:
 '"$username"'
[/quote]

Не ги заборавај точките... WHERE `usename` = '.$username.'"
 
Член од
15 мај 2010
Мислења
540
Поени од реакции
72
Грешката сеа ја најдов: WHERE `useRname`

Сум испуштил r кај username, 3 саати незнам како не го приметив..
 

Dzish

unlike any other...
Член од
15 февруари 2007
Мислења
13.994
Поени од реакции
2.681
Ох, јас сам ги забравил.... :facepalm::facepalm:
Ништо страшно :)

Грешката сеа ја најдов: WHERE `useRRRRRRname`

Сум испуштил r кај username, 3 саати незнам како не го приметив..
Зато имаш опција да го тестираш кверито во PHP MyAdmin, во делот SQL... И ќе провериш дали ти е точно напишано.
 
L

Luki Junior

Гостин
Грешката сеа ја најдов: WHERE `useRname`

Сум испуштил r кај username, 3 саати незнам како не го приметив..
Само да си знаеш оти така може да ти напраат ЕсКјуЕл инџекшн..... :)
Ако можеш користи ПДО или делимитирај го аргументо, за да не ти ја снема базата од некој хакерванаби... :)
 
Член од
15 мај 2010
Мислења
540
Поени од реакции
72
Само да си знаеш оти така може да ти напраат ЕсКјуЕл инџекшн..... :)
Ако можеш користи ПДО или делимитирај го аргументо, за да не ти ја снема базата од некој хакерванаби... :)
Не правам ништо сериозно, само учам... Се влага у шема малце по малце.. :)
Така да за сеа, немам потреба да мислам на sql injection... :)
 
Член од
15 мај 2010
Мислења
540
Поени од реакции
72
Ај да не отварам нова тема, зошто кога ќе го ограничам бројот на карактери го добивам оној прашалник во ромб на крајот од текстот?
Вака изгледа: �

Еве ја линијата кај што се крати:
PHP:
$row['Text'] = substr($row['Text'],0,$chars);
Се утепав од гуглање, како што разбрав е заради кирилицата.. Ама никако да го решам.
 
L

Luki Junior

Гостин
Ај да не отварам нова тема, зошто кога ќе го ограничам бројот на карактери го добивам оној прашалник во ромб на крајот од текстот?
Вака изгледа: �

Еве ја линијата кај што се крати:
PHP:
$row['Text'] = substr($row['Text'],0,$chars);
Се утепав од гуглање, како што разбрав е заради кирилицата.. Ама никако да го решам.
Прво провери си со каков енкодинг ти се рендерира страницата. Требе да ти Unicode (UTF-8) will do the trick.

Второ, не е само кирилицата... Секој стринг, (низа од карактери) си има Null character на крајо...
Е сега, требе оваа нешто да го отсечеш, да го снема..
trim($variable_name) функцијата брише секакви нулл карактери на крајо... Може и да зима аргументи, и како аргумент ќе го ставеш ““

Или со array_pop() и array_shift() да вадеш елементи од низата карактери :)
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Ај да не отварам нова тема, зошто кога ќе го ограничам бројот на карактери го добивам оној прашалник во ромб на крајот од текстот?
Вака изгледа: �

Еве ја линијата кај што се крати:
PHP:
$row['Text'] = substr($row['Text'],0,$chars);
Се утепав од гуглање, како што разбрав е заради кирилицата.. Ама никако да го решам.

За ова ќе користиш mb_substr.
Исто така разгледај ја документацијата подетално за MB_String модулот (http://php.net/manual/en/book.mbstring.php).

Е сега овој модул кај некои сервери по дифолт е Disabled, за да можеш да го користиш ќе треба првин да му направиш Enable (во php.ini можеш да му направиш Enable или со ini_set функцијата). :)
 
Член од
15 мај 2010
Мислења
540
Поени од реакции
72
За ова ќе користиш mb_substr.
Исто така разгледај ја документацијата подетално за MB_String модулот (http://php.net/manual/en/book.mbstring.php).

Е сега овој модул кај некои сервери по дифолт е Disabled, за да можеш да го користиш ќе треба првин да му направиш Enable (во php.ini можеш да му направиш Enable или со ini_set функцијата). :)
Еве го кодот, ама цело време добивам ерор:
PHP:
$row['Text'] = mb_substr($row['Text'], 0, $chars , UTF-8);
Notice: Use of undefined constant UTF - assumed 'UTF' in /opt/lampp/htdocs/portal/admincp/index.php on line 21

Warning: mb_substr() [function.mb-substr]: Unknown encoding "-8" in /opt/lampp/htdocs/portal/admincp/index.php on line 21
Како да наведам правилен енкодинг? И дали правилно ми е искористено mb_substract? :)

Едит: Го средив, еве ако на некој му се најде некогаш:
PHP:
$row['Text'] = mb_substr($row['Text'], 0, $chars , 'UTF-8');

Фала.. :)
Ако заглаам пак некаде ептен, ќе ја користам темава.. :D
 
Член од
15 мај 2010
Мислења
540
Поени од реакции
72
Ај сеа уште малце помош... Повеќе информативна..

Направив логин форма, функционира одлично, со сесија со се тоа.. Направив и цел администратоски панел за портал, е сеа имам огромен проблем со сигурност... Т.е. на почеток ми беше невидено тешко и не очекивав дека ќе стигнам до тука, али ете се снајдов.. И сеа нели најраспространет метод е sql injection.. Кај што ги вадам постовите имам GET метод и како што успеав да откријам со моево истражување, таму ми се пика sql injection - от. Прво направив sanitize data и се тоа, али пак поминува.

Еве ја линијата кај што го вадам id-то на статијата на пример:
PHP:
echo "<td><a href=\"edit_post.php?id=$row[id]\">Измени</a></td>";
и сеа во линкот коа се инјектира тоа експлоитот, иде домен/admincp/edit_post.phpid=SQL INJECTION

Ако може некој да ми објасни општо како идат методиве и кај да пазам, сега од почеток ќе седнам да го правам, ама уште на старт да имам во предвид кај може да биде ранлив сајтот, кај да пазам и слично.. :)
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Ај сеа уште малце помош... Повеќе информативна..

Направив логин форма, функционира одлично, со сесија со се тоа.. Направив и цел администратоски панел за портал, е сеа имам огромен проблем со сигурност... Т.е. на почеток ми беше невидено тешко и не очекивав дека ќе стигнам до тука, али ете се снајдов.. И сеа нели најраспространет метод е sql injection.. Кај што ги вадам постовите имам GET метод и како што успеав да откријам со моево истражување, таму ми се пика sql injection - от. Прво направив sanitize data и се тоа, али пак поминува.

Еве ја линијата кај што го вадам id-то на статијата на пример:
PHP:
echo "<td><a href=\"edit_post.php?id=$row[id]\">Измени</a></td>";
и сеа во линкот коа се инјектира тоа експлоитот, иде домен/admincp/edit_post.phpid=SQL INJECTION

Ако може некој да ми објасни општо како идат методиве и кај да пазам, сега од почеток ќе седнам да го правам, ама уште на старт да имам во предвид кај може да биде ранлив сајтот, кај да пазам и слично.. :)
Друже одговорот на прашањево е премногу опширен и што и да ти кажам само ќе те збунам уште толку. Најубаво ќе биде да почнеш сам пополека да се запознаваш веб ранливости и превенција од истите.

Грубо објаснување на твојот проблем би било вака нешто:
PHP:
<?php
$item_id = $_GET['id'];
 
// Пред било каква операција со базата мораш да ја ескејпираш вредноста
// за да не дојде до конфликт со SQL кверито
 
// Потоа мораш да правиш соодветна валидација
// Во твојот случај имаш ID, што значи дека ID мора да биде бројка
// И тогаш правиш валидација
if( is_int($item_id) && $item_id > 0 )
{
// Доколку ID-то е број и е поголем од 0
// Тоа значи дека параметарот е во ред
// изврши го остатокот од кодот
}
else
{
// доколку ID-то не е цел број значи дека станува грешка за некаков напад или некаков конфликт
// прекини го извршувањето на кодот
}
?>
Основни метод за заштита од повеќето напади (SQL Injection, RFI, XSS и слично) ти е валидацијата и ескејпирањето на вредностите кои се внесуваат преку било каков input од страна на корисникот/напаѓачот.

Тука имаш опфатено поголем дел од ранливостите, за нивна превенција можеш да прочиташ повеќе на нет (претпоставувам немаш проблем со англискиот).

Незнам точно како да те упатам, незнам до каде си стигнал со програмирањето и самиот PHP и неговата имплементација, вака на форум од прва рака можам само да ти кажам дека све имаш на нет, на тебе останува само интелигентно да го искористиш гугл и да имаш желба нормално, за другото ако заглавиш некаде можеби ќе може да се проба да се објасниме на форум. :)
 

Jax Rebel

Navajo Rider
Член од
6 јули 2008
Мислења
5.214
Поени од реакции
2.162
Да воскреснам една тема. Не знам како се имплементира ViewState во php. На прост пример, имам форма за најава, ако се внесени грешно или не се внесени полињата да печати до нив нешто(до тука е ок), но ако не, да ми го зачувува текстот во полето за корисничко име, а да го брише пасвордот. Е сега ко јас што правам, ако е ок поминува се, ако не е ок, печати до нив, задолжително ова поле, нешто такво, ама ја брише содржината на полето, не ја задржува. Како да направам да не се случува ова?
 

Kajgana Shop

На врв Bottom