|
Тема
|
Това не ми е ясно
|
|
Автор |
hrisunko (непознат
) |
Публикувано | 27.02.01 20:41 |
|
Мога ли да напиша следното:
$query = "SELECT 1, 2, 3, 4 FROM Clubs WHERE '$in' LIKE '%$search_string%' ";?
Имам зададено от таг на друга страница <SELECT name="in"> с няколко обции, които имат съответното VALUE, което ще приеме променливата $in. Няма логика да не става, но не се получава на практика. Възможно е ако се определи нещо, което не се променя. Например WHERE 1= '$search_string'.
Напълно е възможно аз да не знам как става. Затова, моля помогнете да разреша този проблем.
Животът е такъв, какъвто си го направиш
| |
|
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 )
| |
|
Само предположение, защото съм още новак в тези неща, но мисля, че кавичките около $in в WHERE '$in' карат базата данни да разглежда това $in като стринг, а не като променлива. Затов тя търси не в полета, означени в променливата а вполе $in, което не съществува. Пробвай да махнеш кавичките или по някакъв начин да ги заобиколиш, не съм много сигурен как....
| |
|
Така е то...
заблееш се пет минути и те изпреварят...
Обаче имам един ламерски въпрос - какво толкова може да ми направи юзъра, ако ми бърка в базата по този начин?
| |
|
Пояснявам. Значи имам си таг <SELECT> на търсачка, който да ми търси по име, по друга стойност, по големина и т.н. 1,2,3,4 ги зададох като примерни, но даречем, че 1 отговаря на "име" от тага. Т.е. той сам избира по какъв показател да търси. Така $in става една променлива в зависимост от желанията на потребителя. Все пак не може да ми пипа нищо по базата данни, освен ако някой по-разбиращ се сети сам да зададе други стойности , но какво от това???!?!??!?! Има шанс само да види други данни, изнесени от базата при това само от ТАЗИ таблица.
Току-що пробвах без кавичките - стана!!!!!!! Благодаря много!!!!! Най се дразня ето от такива тъпи малки грешчици, причинени от една , ' " . и т.н. УЖАСНО Е! Особено ако не знаеш какво ще се получи :)))))
Ако имам друг проблем ще ви питам.
Благодаря ви за помощта
| |
|
Ми нещо безобидно... примерно да да въведе
; DROP DATABASE db
или някво такова... ако е в кавички няма опасност, щото даже да въведе
'; DROP DATABASE db
ще се набъркат magic_quotes и ще добавят една черта \ пред апострофчето... то май даже имаше възможност за по-гадни неща от DROP нещо си
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
| |
|
заради кавичките е, ама не е от това дето казваш... като напишеш "bla '$foo' bla bla", самото PHP го замяня със стойност... виж ако смениш местата на каввиччките и апостровите, тогава ще си остава текст непроменено.
We Are Fighting With Power And Steel
Fighting For Metal Metal That's Real
| |
Тема
|
Re: Това не ми е ясно
[re: hrisunko]
|
|
Автор | edmon (Нерегистриран) |
Публикувано | 04.03.01 22:37 |
|
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
| |
Тема
|
Re: Това не ми е ясно
[re: edmon]
|
|
Автор |
hrisunko (непознат
) |
Публикувано | 06.03.01 19:41 |
|
Вижте сега какво съм разбрал. Първо ми стана ясно каква е функцията на кавичките в различните ситуации. Но не можах да разбера онова с DROP TABLE и DROP DATABASE. Опитах го, но не става нищо. Поразмислих и видях, че се получава следното:
значи аз си имам стринг $search_string в някаква FORM за HTML, който ще съдържа определна информация, която ще излезе от базата данни. Имам си и друга променлива, която е зададена чрез <select...> с две <option>, да речем $bla и $bla1. Като посетителя си избере едно от тях, то $search_string ще се насочи към таблицата $bla или $bla1 и ще търси само там.
Наистина има и друг начин. Да му се зададе от url-то. Например:
http://www.az_sym_tuk.com/bla_bla/file.php?search_string=нещо&in=bla
Резултата, вярвам, е същия.
Вие казвате да заменя стойността на $in с DROP DATABASE или DROP TABLE. Ами тогава просто $search_string ще се търси в таблицата "DROP......"
Той ще си мисли, че това е таблица. А не че това е някакво $query
$query-то ми е: SELECT еди какво си FROM $in WHERE нещо си LIKE %search_string% или подобен израз.
Аз не виждам заплаха. Не казвам, че няма, защото имаме достатъчно грамотни програмисти, които винаги могат да измислят нещо, ако имат желание. Все пак не го разбирам с каква цел ще се прави, но това е тема на друг разговор.
Кажете ми, моля, прав ли съм за тези неща по-горе, или пак греша.
Животът е такъв, какъвто си го направиш
| |
|
Ако е "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
| |
|
|
|
|