Мы всё ещё остаёмся в рамках обсуждения темы? вот в такой код То есть Вы утверждаете что это делается не так: Код (PHP): $peremennaja = '6'; //задаём значение для переменной. я просто поставил 6 так как не знаю на что Вы так упорно намекаете $sql = "SELECT p.* FROM `posts` p, posts_positions pp where `ID` != '$peremennaja' AND `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 "; ? Мне не ясно зачем читать про теорию струн, изучать физику твёрдого тела, когда задача стоит, блин почистить яблоко. блин может я действительно не понимаю задачу. Но если SQL запрос вызывается из файла с названием сайт.ру/file.php?id=$ljubaja_peremennaja, какие такие законы гравитации мешают отловить эту переменную по средствам ниже представленного кода? Код (PHP): $fragment = $_SERVER['REQUEST_URI']; $fr_fr = substr($fragment, 12); $sql = "SELECT p.* FROM `posts` p, posts_positions pp where `ID` != $fr_fr AND `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 ";
Ты даже не пытался искать. Даже понятия не имеешь о чем речь. Решил, что это что-то заоблачное и что это априори не стоит того, чтобы прочитать. Хотя это элементарнейшие вещи. Это не изучение теории струн для очистки яблока. Каждый ребенок знает, что зубы дергают через рот, а не через задницу. Он для этого не учился в меде и не изучал всю мировую литературу по анатомии. Тебе говорят, дергай зубы через рот. Это проще. Удобнее, практичнее. Почитай, как это делать. Ты же говоришь - нет, я дергал через задницу. И буду дергать через задницу. Ведь я привык к этому. А через рот - это надо же знать, где он находится. А у меня нет желания посмотреть в зеркало и смекнуть, что он на голове. http://lurkmore.to/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%81%D0% ... 0%BE%D0%B4
Я тебе так скажу спор с собеседником которого ты считаешь идиотом, превращает в идиота и тебя. Если же ты находишся в дебатах с человеком разумным, просто не владеющим какой то информацией так приводи разумные понятные доводы. А то блеять начинаешь давить своей начитанностью. Ну давай приведи своё решение этой проблемы, унизь меня перед всеми.
1) Закинь в адресную строку хоть руками пару-тройку параметров. 2) В скрипте, на который ведет ссылка, напиши var_dump($_GET); 3) Сравни содержимое массива $_GET с параметрами в строке. PHP сам парсит все параметры и предоставляет их в виде массива. Если просто воспользоваться автоматически создающейся переменной, вместо того, чтобы самому пытаться парсить URL это не элементарно, то я - суслик. То надо посоветовать этому человеку хотя бы попробовать эту информацию поискать или почитать основы языка, который он изучает. Потому что надо не рыбой делиться с голодающими, а учить рыбачить самостоятельно. В этом и трабла. Не считай принятие чужой точки зрения унижением или ударом по самолюбию. Ты не перед кем не упадешь на дно, если спросишь "а как правильно?" а не будешь выкабениваться. Потому что когда кому-то говорят, что он делает не правильно, а этот кто-то спрашивает "а как тогда правильно?", это совершенно естественно. Это называется обменом информацией и опытом.
Ты не отмазывайся . Если реально хочешь помочь приведи своё решение. А я уже пошёл с $_GET печатать буду смотреть что же там. Ну вот Array выводит. Какая ссылка на скрипт? В условиях ни о какой ссылке на скрипт не было.
Fell-x27, а как же "все должны страдать"? BaranPHP, может быть, тебе была бы понятней функция parse_url Код (PHP): var_dump(parse_url($_SERVER['REQUEST_URI'])); , потом узнать о parse_str, а потом уже можно переходить и к таким "сложным" вещам, как $_GET?
блин. Какое "свое решение"? Есть готовое решение в пыхе. Тебе про него говорили. И я его тебе указал. Добавлено спустя 5 минут 26 секунд: Да, я еще раз убедился, что помогать тем, кто хочет страдать, нет смысла. Хоть мне и доказывали обратное. Добавлено спустя 5 минут 27 секунд: Не, ребят, это бесполезно. Расходимся. Он не хочет понимать даже то, что написано в посте. Не не может, а не хочет. Куда уж там про доки говорить. Выносите. Ссылка на скрипт - это то, как ты браузер просишь показать работу своего пехепэ файла. Допиши к ней руками ?pewpew=1&tratata=GET&ololo=works
не ругайся, я пока не программист я всё ещё дизайнер. давай по порядку вот я разбираю такой URL http://phppdf.ru/?view=ppr по аналогии вытащить надо ppr завожу Код (PHP): <?php $nn = var_dump(parse_url($_SERVER['REQUEST_URI'])); echo $nn;?> на странице получаю array(2) { ["path"]=> string(1) "/" ["query"]=> string(8) "view=ppr" }пока ppr мы не достали значит нужно ещё код.
Теперь на той же странице вбей var_dump($_GET); И ты увидишь, что в массиве появилась ячейка за индексом с именем параметра и со значением, идентичным значению параметра из адресной строки. То есть никакого кода не нужно. Когда обращаешься к пхп, он сам из строки запроса вытягивает параметры и сладывает их в $_GET. И да, для работы var_dump не надо ничего присваивать переменной и ее эхать. Эта функция сама эхает результат на страницу.
Ты прав! Далее нужно применить parse_str: Код (PHP): $nn = parse_url($_SERVER['REQUEST_URI']); parse_str($nn['query'], $out); var_dump($out);
Чтобы варнингов не было при отсутствии параметров, лучше так: Код (PHP): $nn = parse_url($_SERVER['REQUEST_URI']); if(isset($nn['query'])){ parse_str($nn['query'], $out); var_dump($out); }
продолжаем эксперимент Код (PHP): <?php $nn = var_dump(parse_url($_SERVER['REQUEST_URI'])); echo $nn; $nm = var_dump($_GET); echo $nm;?> на странице получаю array(1) { ["view"]=> string(3) "ppr" }код YSandro выдаёт NULLвсё ещё нет pprДобавлено спустя 1 минуту 41 секунду: Parse error: syntax error, unexpected $end in Z:\home\phppdf.ru\www\ppr.php on line 43
А это что???? Ты ведь знаешь, как работает var_dump? И что именно он отображает? Он показал структуру массива. Там написано, что в массие $_GET содержится ячейка view, в которой лежит значение prr. Попробуй сделать Код (Text): echo $_GET['view'];
Прости. Работает и выводит pprarray(1) { ["view"]=> string(3) "ppr" } это строка? массив? нам же надо конкретный ppr вытащить что бы результат выводило ppr как вот в этой функции (но она плохая там индийский кодинг ( ) Код (PHP): <?php $nn = $_SERVER['REQUEST_URI']; $nm = substr($nn, 7); echo $nm;?> Добавлено спустя 1 минуту 35 секунд: Ну что команда сурикатов покажет сегодня достойный пример?
Да, боюсь, что даже если с гетом разберемся, пациент не пригоден к программированию как таковому. Слишком резво посылает логику в угоду "я так вижу". И слишком мало желания разобраться в происходящем. Думаю, если ему накидать скрипт, который выпиливает папку windows, или, если у него вдруг линупс, запилить ему rm -rf /, он и их не задумываясь выполнит. Закрывая глаза на реализацию, оценивая и обдумывая только конечный результат. Причем строго с точки зрения того, как его видит. Не в думываясь в то, что видит и почему.
Ну вот наконец я начинаю понимать глубину своего невежества ) Значит, в итоге человеку надо написать: Код (PHP): $fr_fr = $_GET['id']; $sql = "SELECT p.* FROM `posts` p, posts_positions pp where `ID` != $fr_fr AND `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 "; вместо, предложенного мною: Код (PHP): $fragment = $_SERVER['REQUEST_URI']; $fr_fr = substr($fragment, 12); $sql = "SELECT p.* FROM `posts` p, posts_positions pp where `ID` != $fr_fr AND `post_status` = 'publish' AND p.ID>pp.positions ORDER BY p.ID ASC LIMIT 1 "; или и тут я заблуждаюсь?
Да, если грубо, то да, суть ты уловил. А если не грубо, то: 1) Присваивать переменной значение из $_GET нет смысла только ради подстановки. Ставь сразу $_GET['id'], НО: 2) Если просто поставить $_GET['id'], ты в запрос воткнешь данные, которые пользователь может вбить руками в строку. И БД их обработает. Так можно тебе залить что угодно и базу грохнуть до кучи. Это назывется SQL-инъекция. Ее легко избежать. Вот теперь попробуй сам погуглить на тему "SQL-инъекция PHP". И разобраться. Там все тоже очень просто. Надо обработать $_GET['id'] функцией, которая экранирует опасные символы. О чем идет речь, поймешь в ходе гугления.