Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: index.php и параметры в строке запроса
 
 автор: FaStY   (25.12.2004 в 14:41)
 
 

Подскажите как сделать, чтобы я на странице(например index.php) мог нажать на ссылку и у меня открылась такая страница index.php?bio или что-то в этом роде. Что мне прописать в моеем index.php?

   
 
 автор: cheops   (25.12.2004 в 14:47)   письмо автору
 
   для: FaStY   (25.12.2004 в 14:41)
 

Для этого нужно просто указать ссылку:
<a href=index.php?bio=value>Эта же страница, но с параметром</a>

Тогда к параметру bio, в теле index.php можно обратится через суперглобальный массив $_GET:
<?php
  
echo $_GET['bio']; // Выведет "value"
?>

   
 
 автор: FaStY   (25.12.2004 в 14:51)   письмо автору
 
   для: cheops   (25.12.2004 в 14:47)
 

А как тогда в одной странице уместить много?

   
 
 автор: FaStY   (25.12.2004 в 15:06)   письмо автору
 
   для: cheops   (25.12.2004 в 14:47)
 

я так сделал, но у меня ничего не переходит на страницу, только когда я нажимаю на ссылку, у меня на странице просто пишет "value"

   
 
 автор: cheops   (25.12.2004 в 15:12)   письмо автору
 
   для: FaStY   (25.12.2004 в 15:06)
 

Да так и должно быть... может вы более подробно раскажите что вам требуется (лучше на конкретном примере), а то не очень понятно на что следует обращать внимание...

   
 
 автор: FaStY   (25.12.2004 в 15:25)   письмо автору
 
   для: 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

   
 
 автор: cheops   (25.12.2004 в 16:00)   письмо автору
 
   для: 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)   письмо автору
 
   для: FaStY   (25.12.2004 в 14:41)
 

Вот например так http://www.allstarz.org/~drewbarrymore/index.php?x=media/index.php

   
 
 автор: cheops   (25.12.2004 в 15:09)   письмо автору
 
   для: 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 и хост настроен таким образом, чтобы домашний каталог пользователя воспринимался как виртуальный хост, т.е. по сути сайт. Это устаревшая форма характерная в основном для университетов и некоторых провайдеров, предоставляющих помимо доступа в интернет несколько мегабайт под домашнюю страницу.

   
 
 автор: FaStY   (25.12.2004 в 15:35)   письмо автору
 
   для: cheops   (25.12.2004 в 15:09)
 

вы меня не так поняли. Про тильду я знаю, меня интерисует когда я нажимаю на этом сайт на ссылку "media", то в адресной строке пишет ...index.php?media.php или вроде того, так вот я хочу узнать как это сделать, чтобы переходило на эту страницу

   
 
 автор: cheops   (25.12.2004 в 16:07)   письмо автору
 
   для: 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 Но это не самое удачное решение с точки зрения безопасности.

   
 
 автор: FaStY   (26.12.2004 в 14:36)   письмо автору
 
   для: cheops   (25.12.2004 в 15:09)
 

я все сделал, но у меня пишет "Notice: Undefined index: page in d:\server\index3.php on line 137", но на ссылки переходит

   
 
 автор: cheops   (26.12.2004 в 14:43)   письмо автору
 
   для: 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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования