main.php: Код (Text): <a href="static.php?content=link1">link1</a><br> <a href="static.php?content=link2">link2</a><br> <a href="static.php?content=link3">link3</a><br> static.php: Код (Text): <?php include '$_GET["content"].html'; ?> Файлы link1.html и т.д. существуют, лежат в той же директории, что и php-файлы. При переходе по ссылке с main.php выдает ошибку: Warning: include($_GET["content"].html) [function.include]: failed to open stream: Invalid argument in C:\Program Files\Apache Group\Apache2\htdocs\dynamic\static.php on line 2 Warning: include() [function.include]: Failed opening '$_GET["content"].html' for inclusion (include_path='.;C:\php5\pear') in C:\Program Files\Apache Group\Apache2\htdocs\dynamic\static.php on line 2 Если подставить include 'link1.html', то все нормально отображается. Если вывести переменную $content, то она тоже нормально отображается.
gooffy Прочитайте про разницу одинарных и двойных кавычек А что вы скажете если я выполню такой запрос static.php?content=http://www.elkaz.ru/something/trojan-horse
[vs] как вариант, но если ссылок к примеру 1000 штук. Elkaz Одинарные кавычки не распознают переменные. Поменял на двойные. Теперь ошибка выглядит так: Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Program Files\Apache Group\Apache2\htdocs\dynamic\static.php on line 10 PHP: <?php /*switch ($_GET["content"]) { case "link1": { include 'link1.html'; break; } }*/ include ("$_GET["content"].html"); ?> По поводу того, что в ссылку можно подставить все, что угодно. Думаю, это легко исправляется проверкой данных (например, возможностью открытия страниц только с определенного сервера).
Да уж. Жесткий синтаксис получается PHP: include "".$_GET["content"].".html"; Luge,[vs],Elkaz спасибо!
gooffy А логика? PHP: <?php for($i=1;$i<=1000;$i++){ if($_GET['content']==$i){ include "$i.html"; } } Ясен пень будет ошибка, потому что слово content как видишь оказывается между закрывающей и открывающей кавычкой. Надо так - ...{$_GET["content"]}...