Това не ми е ясно
9 отговора
4 прегледа
Това не ми е ясно
Мога ли да напиша следното:
$query = "SELECT 1, 2, 3, 4 FROM Clubs WHERE '$in' LIKE '%$search_string%' ";?
Имам зададено от таг на друга страница <SELECT name="in"> с няколко обции, които имат съответното VALUE, което ще приеме променливата $in. Няма логика да не става, но не се получава на практика. Възможно е ако се определи нещо, което не се променя. Например WHERE 1= '$search_string'.
Напълно е възможно аз да не знам как става. Затова, моля помогнете да разреша този проблем.
Животът е такъв, какъвто си го направиш
$query = "SELECT 1, 2, 3, 4 FROM Clubs WHERE '$in' LIKE '%$search_string%' ";?
Имам зададено от таг на друга страница <SELECT name="in"> с няколко обции, които имат съответното VALUE, което ще приеме променливата $in. Няма логика да не става, но не се получава на практика. Възможно е ако се определи нещо, което не се променя. Например WHERE 1= '$search_string'.
Напълно е възможно аз да не знам как става. Затова, моля помогнете да разреша този проблем.
Re: Това не ми е ясно
parvo da iziasnim ideata -
tarsish niakakav string vaveden ot potrebitelia $search_string koito da se sadarja v niakoe pole $in sashto opredeleno ot potrebitelia i triabva da mu izvedesh niakakvi poleta 1, 2, 3, 4
SELECT 1, 2, 3, 4 FROM Clubs WHERE '$in' LIKE '%$search_string%'
1. ne triabva da pishesh SELECT 1, 2, 3, 4, a imenata na poletata ot tablicata koito te interesuvat, zashtoto taka prosto shte vadi redove 1,2,3,4
2. '$in' triabva da e samo $in - imeto na poleto ne se ograjda v takiva kavichki (ne e dobra idea obache da davash na usera vazmojnost directno da pishe v SQL-a, t.e. tova pole $in triabva da go preobrazuvash chres switch() ili masiv do niakakvo vatreshna stoinost - e ne moga da se izraziavam ama tolko
)

tarsish niakakav string vaveden ot potrebitelia $search_string koito da se sadarja v niakoe pole $in sashto opredeleno ot potrebitelia i triabva da mu izvedesh niakakvi poleta 1, 2, 3, 4
SELECT 1, 2, 3, 4 FROM Clubs WHERE '$in' LIKE '%$search_string%'
1. ne triabva da pishesh SELECT 1, 2, 3, 4, a imenata na poletata ot tablicata koito te interesuvat, zashtoto taka prosto shte vadi redove 1,2,3,4
2. '$in' triabva da e samo $in - imeto na poleto ne se ograjda v takiva kavichki (ne e dobra idea obache da davash na usera vazmojnost directno da pishe v SQL-a, t.e. tova pole $in triabva da go preobrazuvash chres switch() ili masiv do niakakvo vatreshna stoinost - e ne moga da se izraziavam ama tolko
може би
Само предположение, защото съм още новак в тези неща, но мисля, че кавичките около $in в WHERE '$in' карат базата данни да разглежда това $in като стринг, а не като променлива. Затов тя търси не в полета, означени в променливата а вполе $in, което не съществува. Пробвай да махнеш кавичките или по някакъв начин да ги заобиколиш, не съм много сигурен как....
:-))
Така е то...
заблееш се пет минути и те изпреварят...
Обаче имам един ламерски въпрос - какво толкова може да ми направи юзъра, ако ми бърка в базата по този начин?
заблееш се пет минути и те изпреварят...
Обаче имам един ламерски въпрос - какво толкова може да ми направи юзъра, ако ми бърка в базата по този начин?
Пояснявам
Пояснявам. Значи имам си таг <SELECT> на търсачка, който да ми търси по име, по друга стойност, по големина и т.н. 1,2,3,4 ги зададох като примерни, но даречем, че 1 отговаря на "име" от тага. Т.е. той сам избира по какъв показател да търси. Така $in става една променлива в зависимост от желанията на потребителя. Все пак не може да ми пипа нищо по базата данни, освен ако някой по-разбиращ се сети сам да зададе други стойности , но какво от това???!?!??!?! Има шанс само да види други данни, изнесени от базата при това само от ТАЗИ таблица.
Току-що пробвах без кавичките - стана!!!!!!! Благодаря много!!!!! Най се дразня ето от такива тъпи малки грешчици, причинени от една , ' " . и т.н. УЖАСНО Е! Особено ако не знаеш какво ще се получи :)))))
Ако имам друг проблем ще ви питам.
Благодаря ви за помощта
Току-що пробвах без кавичките - стана!!!!!!! Благодаря много!!!!! Най се дразня ето от такива тъпи малки грешчици, причинени от една , ' " . и т.н. УЖАСНО Е! Особено ако не знаеш какво ще се получи :)))))
Ако имам друг проблем ще ви питам.
Благодаря ви за помощта
Re: :-))
Ми нещо безобидно... примерно да да въведе
; DROP DATABASE db
или някво такова... ако е в кавички няма опасност, щото даже да въведе
'; DROP DATABASE db
ще се набъркат magic_quotes и ще добавят една черта \ пред апострофчето... то май даже имаше възможност за по-гадни неща от DROP нещо си
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
; DROP DATABASE db
или някво такова... ако е в кавички няма опасност, щото даже да въведе
'; DROP DATABASE db
ще се набъркат magic_quotes и ще добавят една черта \ пред апострофчето... то май даже имаше възможност за по-гадни неща от DROP нещо си
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
Re: може би
заради кавичките е, ама не е от това дето казваш... като напишеш "bla '$foo' bla bla", самото PHP го замяня със стойност... виж ако смениш местата на каввиччките и апостровите, тогава ще си остава текст непроменено.
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
Re: Това не ми е ясно
mnogo se pisa
ne se razbra samo pisatelia razbra li...
nai dobre idi i procheti na php.net
otnosno kavizhkite i apostrofite....
inache kazano v ednoto izraza se "oceniawa", a w drugoto ti se pokazva napravo.... a kogato stringa e SQL query ima i dopulnitelni uslownosti
ne se razbra samo pisatelia razbra li...
nai dobre idi i procheti na php.net
otnosno kavizhkite i apostrofite....
inache kazano v ednoto izraza se "oceniawa", a w drugoto ti se pokazva napravo.... a kogato stringa e SQL query ima i dopulnitelni uslownosti
Re: Това не ми е ясно
Вижте сега какво съм разбрал. Първо ми стана ясно каква е функцията на кавичките в различните ситуации. Но не можах да разбера онова с DROP TABLE и DROP DATABASE. Опитах го, но не става нищо. Поразмислих и видях, че се получава следното:
значи аз си имам стринг $search_string в някаква FORM за HTML, който ще съдържа определна информация, която ще излезе от базата данни. Имам си и друга променлива, която е зададена чрез <select...> с две <option>, да речем $bla и $bla1. Като посетителя си избере едно от тях, то $search_string ще се насочи към таблицата $bla или $bla1 и ще търси само там.
Наистина има и друг начин. Да му се зададе от url-то. Например:
[линк]
Резултата, вярвам, е същия.
Вие казвате да заменя стойността на $in с DROP DATABASE или DROP TABLE. Ами тогава просто $search_string ще се търси в таблицата "DROP......"
Той ще си мисли, че това е таблица. А не че това е някакво $query
$query-то ми е: SELECT еди какво си FROM $in WHERE нещо си LIKE %search_string% или подобен израз.
Аз не виждам заплаха. Не казвам, че няма, защото имаме достатъчно грамотни програмисти, които винаги могат да измислят нещо, ако имат желание. Все пак не го разбирам с каква цел ще се прави, но това е тема на друг разговор.
Кажете ми, моля, прав ли съм за тези неща по-горе, или пак греша.
Животът е такъв, какъвто си го направиш
значи аз си имам стринг $search_string в някаква FORM за HTML, който ще съдържа определна информация, която ще излезе от базата данни. Имам си и друга променлива, която е зададена чрез <select...> с две <option>, да речем $bla и $bla1. Като посетителя си избере едно от тях, то $search_string ще се насочи към таблицата $bla или $bla1 и ще търси само там.
Наистина има и друг начин. Да му се зададе от url-то. Например:
[линк]
Резултата, вярвам, е същия.
Вие казвате да заменя стойността на $in с DROP DATABASE или DROP TABLE. Ами тогава просто $search_string ще се търси в таблицата "DROP......"
Той ще си мисли, че това е таблица. А не че това е някакво $query
$query-то ми е: SELECT еди какво си FROM $in WHERE нещо си LIKE %search_string% или подобен израз.
Аз не виждам заплаха. Не казвам, че няма, защото имаме достатъчно грамотни програмисти, които винаги могат да измислят нещо, ако имат желание. Все пак не го разбирам с каква цел ще се прави, но това е тема на друг разговор.
Кажете ми, моля, прав ли съм за тези неща по-горе, или пак греша.
Re: Това не ми е ясно
Ако е "bla bla $in bla bla" има заплаха... това $in ще го замени PHP-то и тогава ще замине към MySQL-а... измисли такава стойност на $in, че да се получат 3 валидни заявки, разделени с ;... и гледай да нямя кавички в $in, че най вероятно ще получат по една наклонена пред себе си.
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real