|
автор: FaStY (25.12.2004 в 14:41) |
|
| Подскажите как сделать, чтобы я на странице(например index.php) мог нажать на ссылку и у меня открылась такая страница index.php?bio или что-то в этом роде. Что мне прописать в моеем index.php? | |
|
|
|
|
|
|
|
для: FaStY
(25.12.2004 в 14:41)
| | Для этого нужно просто указать ссылку:
<a href=index.php?bio=value>Эта же страница, но с параметром</a>
|
Тогда к параметру bio, в теле index.php можно обратится через суперглобальный массив $_GET:
<?php
echo $_GET['bio']; // Выведет "value"
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.12.2004 в 14:47)
| | А как тогда в одной странице уместить много? | |
|
|
|
|
|
|
|
для: cheops
(25.12.2004 в 14:47)
| | я так сделал, но у меня ничего не переходит на страницу, только когда я нажимаю на ссылку, у меня на странице просто пишет "value" | |
|
|
|
|
|
|
|
для: FaStY
(25.12.2004 в 15:06)
| | Да так и должно быть... может вы более подробно раскажите что вам требуется (лучше на конкретном примере), а то не очень понятно на что следует обращать внимание... | |
|
|
|
|
|
|
|
для: cheops
(25.12.2004 в 15:12)
| | Извините, что так тяну время :)
У мнея есть 3 страницы: index.php, bio.php , media.php мне надо,чтобы когда я нажимал на ссылку у меня в адресной строке было написано index.php?bio.php или как-нибудь по-другому, и сайт переходил на страницу bio.php. Но лучше бы если бы все эти страницы bio.php и media.php находились бы в странице index.php.
Как Обьединить эти страницы?
А пример того,что я хочу - это людой форум вот как ваш например http://www.softtime.ru/forum/answer.php?id_forum=1&id_theme=1249&id_post=8546 | |
|
|
|
|
|
|
|
для: FaStY
(25.12.2004 в 15:25)
| | Ага, понятно. Тогда следует создать три ссылки:
<a href=index.php>index</a>
<a href=index.php?page=media>media</a>
<a href=index.php?page=bio>bio</a>
|
а на содержимое страницы выдавать в зависимости от значения параметра page:
<?php
if(empty($_GET['page']))
{
// основное содержимое страницы index.php
}
if($_GET['page'] == 'media')
{
include "media.php";
// ну или просто перенести в этот блок
// содержимое страницы media.php
}
if($_GET['page'] == 'bio')
{
include "bio.php";
// ну или просто перенести в этот блок
// содержимое страницы bio.php
}
?>
|
| |
|
|
|
|
|
|
|
|
для: FaStY
(25.12.2004 в 14:50)
| | Здесь на самом деле передаётся один параметр x, у которого одно значение media/index.php, т.е. обращение к $_GET['x'] в index.php вернёт строку "media/index.php". Для передачи двух или более значений параметры следует разделять знаком &, т.е. URL вида index.php?bio=value&bio1=value1, передаёт два параметра: bio и bio1, значения которых принимают value и value1, соответственно. Об этом можно почитать по ссылке: http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=495.
Знак тильды ~ относится к сетевому пути: это означает, что на хосте http://www.allstarz.org имеется пользователь drewbarrymore и хост настроен таким образом, чтобы домашний каталог пользователя воспринимался как виртуальный хост, т.е. по сути сайт. Это устаревшая форма характерная в основном для университетов и некоторых провайдеров, предоставляющих помимо доступа в интернет несколько мегабайт под домашнюю страницу. | |
|
|
|
|
|
|
|
для: cheops
(25.12.2004 в 15:09)
| | вы меня не так поняли. Про тильду я знаю, меня интерисует когда я нажимаю на этом сайт на ссылку "media", то в адресной строке пишет ...index.php?media.php или вроде того, так вот я хочу узнать как это сделать, чтобы переходило на эту страницу | |
|
|
|
|
|
|
|
для: FaStY
(25.12.2004 в 15:35)
| | Если вы считает, что параметры это не то, что вам нужно, то можете обратится к элементу суперглобального массива $_ENV["QUERY_STRING"], который возвращает всё что следует за знаком вопроса (?), т.е. для index.php?page=menu он вернёт page=menu, а для index.php?menu.php он вернёт menu.php, тогда реализовать содержимое index.php можно по следующей схеме:
<?php
include $_ENV["QUERY_STRING"];
?>
|
PS Но это не самое удачное решение с точки зрения безопасности. | |
|
|
|
|
|
|
|
для: cheops
(25.12.2004 в 15:09)
| | я все сделал, но у меня пишет "Notice: Undefined index: page in d:\server\index3.php on line 137", но на ссылки переходит | |
|
|
|
|
|
|
|
для: FaStY
(26.12.2004 в 14:36)
| | Это просто замечание, следует просто понизить уровень обработки ошибок в конфигурационном файле php.ini назначив директиве error_reporting следующее значение:
error_reporting = E_ALL & ~E_NOTICE
|
PS На большинстве реальных хостингов стоит именно это значение.
http://www.softtime.ru/info/articlephp.php?id_article=23 | |
|
|
|