Вопрос № 48163: Здравствуйте. Я хотел бы узнать как делаются такие ссылки:
Например, index.php?search, или
http://rusfaq.ru/?Step=ask&ID0=5&ID1=3&ID2=22
ну & мне понятно, он связывает ссылку, а где находится это? и вабще, как это делать? прошу подскожит...Вопрос № 48166: В прошлом вопросе (48163) я немного не коректно задал вопрос. Я имел ввиду не то, как это написать. А где эти страницы находятся. С обычной ссылком мне все понятно (rusfaq.ru/index.html) а вот как сделать у себя на сайте такую фишку:
mysite.ru/?d...Вопрос № 48218: Есть сайт с некой структурой: www.site.ru/papka1, www.site.ru/papka2, и т.д.
Для каждой папки через .htaccess определён индексный файл: index.html.
Если набрать www.site.ru/papka1.index.html - будет выведено содержимое файла, формирующееся ди...Вопрос № 48240: Здраствуйте, вопрос такой:
Существует шаблон страници, у которого имеются вставки <<content>> и <<title>> , в них из РНР страници (страница в которую подключён шаблон) передаются html-страници, в результате получается ста...Вопрос № 48247: Доброго времени суток All.
Народ подскажите что за фигня... вобщем есть два скрипта
первый файл form.html
<html>
<head>
<title></title>
</head>
<body>
<form actio...Вопрос № 48268: Здраствуйте эксперты. Появилось несколько маленьких вопросиков, которые не застявят труда мне ответить:
1) - объясните простым языком, как применять и как вообще действует функция isset()
2) - я часто видел что в коде используют сим...Вопрос № 48273: Как определить CY и PR средствами PHP.
Где об этом можно почитать?...
Вопрос № 48.163
Здравствуйте. Я хотел бы узнать как делаются такие ссылки:
Например, index.php?search, или
http://rusfaq.ru/?Step=ask&ID0=5&ID1=3&ID2=22
ну & мне понятно, он связывает ссылку, а где находится это? и вабще, как это делать? прошу подскожите, не учить же из-за ссылок весь php. :)
Отправлен: 04.07.2006, 22:51
Вопрос задал: Bios (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Цепковский Антон Сергеевич
Здравствуйте, Bios!
Если Вы запустите это в браузере вы увидите 4 поля для ввода данных и кнопку. Если Вы введёте в поля значения: ask, 5, 3, 22 и нажмёте на кнопку, тогда ссылка будет именно такая какую Вы указали.
Отвечает: Alexey Vilchinsky
Здравствуйте, Bios!
делается очень просто - ты можешь сам создать подообного рода ссылку
Например, <a href='www.mail.ru?a=1&b=2'>привет</a>
Есть другой способ:
надо создать на странице форму. При оправке формы будет сформирован такой же адрес,
где первые параметры - имена полей формы, а вторые - значения этих полей. (но такое работает) только для метода передачи GET. При отправке методом POST ты в строке адреса не увидишь никаких параметров.
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 10-ый класс)
Ответ отправлен: 04.07.2006, 23:22
Отвечает: Mark_by
Здравствуйте, Bios!
Разберём подроюно ссылку http://rusfaq.ru/?Step=ask&ID0=5&ID1=3&ID2=22
Этот способ передачи данных называется get. Здесь ?(знак вопроса) говорит о существовании переменной со значением ask, далее символ & добавляет ещё одну переменную (ID1) со значением 38, опять же сново символ & добавляет ещё одну переменную (ID2) со значением 22. Запрос вида index.php?ID=2&type=ask пошлёт странице index.php пременную ID равную 2 и переменную type равную ask.
Надеюсь объяснил всё понятно.
--------- Тысячи путей ведут к заблуждению, к истине только один. (Ж. Руссо)
Ответ отправил: Mark_by (статус: 1-ый класс)
Ответ отправлен: 05.07.2006, 09:33
Вопрос № 48.166
В прошлом вопросе (48163) я немного не коректно задал вопрос. Я имел ввиду не то, как это написать. А где эти страницы находятся. С обычной ссылком мне все понятно (rusfaq.ru/index.html) а вот как сделать у себя на сайте такую фишку:
mysite.ru/?download=id12713
и эта ссылка должна идти на страницу или программу. И при этом работать. То есть куда надо поместить эту программу или страницу, и как это все сделать,. Может для этого нужна база данных? А может я непонятно опять объясняю?
Отправлен: 04.07.2006, 23:34
Вопрос задал: Bios (статус: 1-ый класс)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, Bios!
На самом деле, mysite.ru/?download=id12713 это почти тоже самое, что mysite.ru/index.php?download=id12713
На сервер приходит запрос mysite.ru/?download=id12713, а он открывает файл по умолчанию из mysite.ru/ , а ему передает параметры ?download=id12713, а сам файл (будем считать index.php) проверяет значение переменных, и в зависимости от результатов проверки выводит разные страницы, или пишет разный текст.
По простому что-то типа такого:
switch ($_GET["download"]) {
case ("123456"):
echo('Файл не доступен');
break;
case ("111"):
include('file.html');
break;
default:
echo 'Вы ошиблись';
}
Удачи!
--------- Ответы на все вопросы - на сайте www.ya.ru ☺
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 05.07.2006, 00:30 Оценка за ответ: 5
Отвечает: Mark_by
Здравствуйте, Bios!
Вот пример страницы index.php, которая является главной страницой, если послать запрос например так http://mysite.ru/?articles.php, то откроется страница articles.php, если же запрос оставить пустым (просто http://mystite.ru), то загрузится страница main.php, на основе примера можно ведь настроить, чтобы открывалась страница, допустим, downloads.php с параметром id12713, я думаю теперь вы сами сможете разобраться дальше.
Приложение:
--------- Тысячи путей ведут к заблуждению, к истине только один. (Ж. Руссо)
Ответ отправил: Mark_by (статус: 1-ый класс)
Ответ отправлен: 05.07.2006, 09:33
Отвечает: PVS
Здравствуйте, Bios!
По умолчанию такая ссылка передаст параметр "download" со значением "id12713" скрипту, который находится по адресу http://mysite.ru/ . Там может быть PHP-скрипт, а может быть что-то другое (CGI например) и оно должно знать как себя вести при получении такого параметра (выбирать что-то из базы данных или искать какой-то файл на диске - варианты зависят от фантазии разработчика). Еще можно поэкспериментировать с настройками в файле .htaccess и добится того, что сервер будет преобразовывать
такие ссылки в имена файлов самомтоятельно (без PHP, CGI, ASP или чего-то еще)
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 05.07.2006, 10:15
Вопрос № 48.218
Есть сайт с некой структурой: www.site.ru/papka1, www.site.ru/papka2, и т.д.
Для каждой папки через .htaccess определён индексный файл: index.html.
Если набрать www.site.ru/papka1.index.html - будет выведено содержимое файла, формирующееся динамически.
На самом деле, в этих папках есть только файлы с описанием содержимого (шаблоны), и стоит обработчик ошибок, который в зависимости от запрошенного имени файла выдаёт тот или иной файл, который формируется исходя из содержимого файлов описания (положенный в каждой папке).
Проблема:
Если пользователь набирет "www.site.ru/papka1/index.html" (или всё равно, какой файл) - выдаётся файл формирующийся динамически, а если набрать "www.site.ru/papka1" (без файла) - выводится содержимое директории (ведь файла "index.html" физически нет).
Вопрос: как сделать так, что бы при запросе папки (без указания файла) выводилось то же, что и при запросе папки с файлом?
(Т.е. как обмануть систему, и заставить принудительно обращаться к файлу index.html (котрого физически нет)?)
Отправлен: 05.07.2006, 12:09
Вопрос задал: Php23 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Андрей_26rus
Здравствуйте, Php23!
можно создать файл index.php
P.S. главное чтобы он был прописан в Apache в строке с дефолтными индексами
--------- - = Tertium non datur = -
Ответ отправил: Андрей_26rus (статус: 4-ый класс)
Ответ отправлен: 05.07.2006, 12:21
Отвечает: Cimus
Здравствуйте, Php23!
Для этого Вам нужно в файле .htaccess прописать имя файла по-умолчанию,
тоесть в стандартных настройках веб-сервера по-умолчанию стоит index.php, а Вы можете поменять на любой файл каторый Вам нужен, если веб сервер не находит в папке дефлтного файла (index.php) то он просто показывает содержимое папки т.к. незнает какой файл нужно показать.
Директива DirectoryIndex фала .htaccess - изменения страницы по умолчанию (стартовой)
Описание: Позволяет изменить страницу, которая будет показываться при обращении к директории
Синтаксис: DirectoryIndex page [page]
page - название стартовой страницы. Может быть указано несколько страниц.
Пример:
DirectoryIndex main.html index.php test.shtml
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 4-ый класс)
Ответ отправлен: 05.07.2006, 22:26
Вопрос № 48.240
Здраствуйте, вопрос такой:
Существует шаблон страници, у которого имеются вставки <<content>> и <<title>> , в них из РНР страници (страница в которую подключён шаблон) передаются html-страници, в результате получается стандартная страница с контентом и тайтолом, который у каждой страници свой. Как описывается присвоение определенных документов этим тайтлам и контентам... это очень удобно, но я ещё не понял, как это реализовать. Надеюсь вы поняли мой вопрос, хотя я невнятно его выразил.(Я его понял(ворос))
Отправлен: 05.07.2006, 15:58
Вопрос задал: PetrKi. (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: PVS
Здравствуйте, PetrKi.!
Например так:
$template=array()
function AddPage($Title,$ContentFile){
$item=array();
$item['title']=$Title;
$item['cfile']=$ContentFile;
}
echo $template[1]['title']; //Выведет "О компании"
можно также базу данных задействовать
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 05.07.2006, 16:12
Отвечает: Physicist
Здравствуйте, PetrKi.!
Надеюсь, что я правильно понял Ваш вопрос.
Сначала нужно получить текст шаблона и html-страниц:
| $page = file_get_contents('template.htm');
| $title = file_get_contents('title.txt');
| $content = file_get_contents('content.txt');
а затем сделать замены
| $page = str_replace('<<title>>', $title, $page);
| $page = str_replace('<<content>>', $content, $page);
и вывести $page
| echo $page
Ответ отправил: Physicist (статус: 3-ий класс)
Ответ отправлен: 05.07.2006, 16:17
include "top.php";
include "base.php";
include "bottom.php";
?>
В top.php пишут, что-то типа:
//2
<html>
<head>
<title>
<?php
echo get_title_by_id($id, $subid);
?>
</title>
</head>
Ну, и точно так же с контентом, меню и чем угодно короче. Смысл такой на главной страницы объявить переменные, по которым будут производится запросы. В подключаемых файлах по этим переменным задавать запрос и выводить результат.
Приложение:
--------- Есть 10 типов людей: те, кто знаком с двоичной системой, и те, кто нет.
Ответ отправил: Red Devil (статус: Студент)
Ответ отправлен: 05.07.2006, 19:20 Оценка за ответ: 4 Комментарий оценки: ответ средний... я ежедневно имею дело с <> и <>, они расположены в шаблоне. А в РНР-файле, в котором осуществлено подключение этого шаблона, написано что-то вроде этого: $tdf=peremennayax['content']=(./contents/content6.html);
Вопрос № 48.247
Доброго времени суток All.
Народ подскажите что за фигня... вобщем есть два скрипта
первый файл form.html
<html>
<head>
<title></title>
</head>
<body>
<form action = index.php>
<input type = text name = "name" value="Неизвестно"><br>
<input type = text name = "age" value ="Неизвестно"><br>
<input type = submit name = "b1" value = "Старт">
</body>
</html>
и второй index.php
<html>
<head>
<title></title>
</head>
<body>
<?php
echo "Ваше имя $name <br> И вам лет $age";
?>
</body>
</html>
Дак вот почемуто в index.php при запуске неподставляется значения переменных которые передаються формой ... почему такое может быть .... оба докумсента лежат в DocumentRoot. Заранее спасибо.
Отправлен: 05.07.2006, 16:27
Вопрос задал: Александер (статус: Посетитель)
Всего ответов: 6 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Physicist
Здравствуйте, Александер!
Скорее всего, у тебя отключено register_globals в php.ini.
Попробуй добавить в начало php-кода
| $name=$_POST['name'];
| $age=$_POST['age'];
Ответ отправил: Physicist (статус: 3-ий класс)
Ответ отправлен: 05.07.2006, 16:35 Оценка за ответ: 5
Отвечает: Madproger
Здравствуйте, Александер!
День добрый.
Скорее всего потому что у тебя отключен register_global, а твой скрипт расчитан на то что он включен.
ЧТобы заработало попробуй вместо
echo "Ваше имя $name <br> И вам лет $age";
набрать следующее
printf("Ваше имя %s <br /> И вам %s лет", $_POST['name'], $_POST['age']);
--------- И будет вам счАстиЕ!
Ответ отправил: Madproger (статус: 8-ой класс)
Ответ отправлен: 05.07.2006, 16:37 Оценка за ответ: 5
Отвечает: PVS
Здравствуйте, Александер!
Очевидно скрипт расчитан на присутствие настройки register_globals=On в php.ini или на php3. В php4 и старше эта настройка по умолчанию Off. Если учетесь на локальном компьютере - поменяйте на On, для реальных серверов такое изменение не рекомендуется по соображениям безопасности. Для использования второго скрипта при существующих настройках просто поменяйте
$name на $_REQUEST['name']
$age на $_REQUEST['age']
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 05.07.2006, 16:41 Оценка за ответ: 5
Отвечает: Alexey Vilchinsky
Здравствуйте, Александер!
скорее всего у вас в настройках сервера отключены глобальные переменные.
попробуйте сделать так:
$name=$_GET['name'];
$age=$_GET['age'];
в начале index.php
либо включите global_variables в настройках apache
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 10-ый класс)
Ответ отправлен: 05.07.2006, 17:21 Оценка за ответ: 5
Отвечает: Cimus
Здравствуйте, Александер!
А можно сделать вот так
<?php
print "Ваше имя $_POST['name'] <br> И вам лет $_POST['age']";
?>
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 4-ый класс)
Ответ отправлен: 05.07.2006, 22:31
Отвечает: Ballon
Здравствуйте, Александер!
Попробуйте так:
<?php
echo "Ваше имя $_GET['name'] <br> И вам лет $_GET['age']";
?>
--------- Хочу все знать...
Ответ отправил: Ballon (статус: 7-ой класс)
Ответ отправлен: 06.07.2006, 07:52
Вопрос № 48.268
Здраствуйте эксперты. Появилось несколько маленьких вопросиков, которые не застявят труда мне ответить:
1) - объясните простым языком, как применять и как вообще действует функция isset()
2) - я часто видел что в коде используют символ "@", но я не знаю для чего, объясните пожалуста (если можно с маленькими примерами)
3) - я видел (вот даже на этом сайте) есть кнопочки но они выглядят не как в интерфейсе Windows а вообще другие (у них есть фон, цвет текста другой, рамка другая и прочее), если нетрудно расскажите как это сделано
Отправлен: 05.07.2006, 19:12
Вопрос задал: _SanS_ (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, _SanS_!
1) Функция isset позволяет проверить, существует ли определённая переменная, т.е. занята ли соответствующая области памяти под определённое значение. Используется просто: isset($varname) - выдаст true, если переменная $varname определена. С помощью этой функции удобно делать разбор адресной строки (метод GET).
2) @command используется для того, чтобы отключить вывод сообщений (ошибок/предупреждений) для конкретной команды. Обычно ошибки включаются/отключаются командой error_reporting(), а это - просто для удобства, работает только для конкретной команды.
3) Наверное с помощью CSS: background-color, border-color, border и т.д. Во всяком случае, откройте html-код страницы с такой кнопкой и посмотрите, как это сделано.
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Alexey Vilchinsky
Здравствуйте, _SanS_!
1) isset($var) проверяет, существует ли вообще переменная $var
2) @ запрещает интерпретатору выводить в браузер сообщение об ошибке в случае неправильного выполнения функции
3) вид кнопочек задается с помошью стилей(фон, обрамление, стиль текста и его расположение). Чтобы было более понятно предлагаю вам почитать про css (каскадные таблицы стилей)
--------- Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 10-ый класс)
Ответ отправлен: 05.07.2006, 19:46
Отвечает: Ballon
Здравствуйте, _SanS_!
1)Функция isset() проверяет существует ли переменная, например:
if isset($a){
echo "Существует";
}else{
echo "Несуществует";
}
2)PHP поддерживает одну операцию управления ошибками: знак (@). Если он вставлен как префикс выражения PHP, любые ошибки, которые могут генерироваться этим выражением, подавляются.
-операция работает только в выражениях. Основное правило: если вы можете получить значение чего-нибудь, вы можете поставить в качестве префикса операцию @. Например, вы можете поставить её к переменным, функциям и вызовам include(), константам и т.д. Вы не можете подставить её к определению функции или класса или структурам управления.
Ответ отправил: Ballon (статус: 7-ой класс)
Ответ отправлен: 06.07.2006, 08:06
Отвечает: PVS
Здравствуйте, _SanS_!
1)функция isset проверяет присваивалось ли какой-то переменной ЛЮБОЕ значение, даже 0, например следующий код
<?
$error=0;
if(!$error){echo "No error
";}else{echo "Error!
";};
if(!$error2){echo "No error2";}else{echo "Error2!
";};
if(!isset($error)){echo "Error unset
";}else{echo "Error set!
";};
if(!isset($error2)){echo "Error2 unset
";}else{echo "Error2 set!
";};
?>
выдаст
No error
No error2
Error set!
Error2 unset
Чаще всего isset применяется для проверки передавался какой-то параметр или нет isset($_REQUEST['param1']) но возможно ОГРОМНОЕ множество других случаев ее использования.
2) @ используется для подавления вывода сообщений об ошибке. Допустим есть ситуция в которой заранее известна возможная ощибка, например открываемый файл недоступен:
$flines=@file('/my/data/file');
if(!$flines)echo "Файл недоступен";
а если написать без @ то в придачу получите еще и сообщение от PHP что в таком-то файле в такой-то строке случилась ошибка (если это не отключено в php.ini)
Ответ отправил: PVS (статус: 7-ой класс)
Ответ отправлен: 06.07.2006, 10:25
Вопрос № 48.273
Как определить CY и PR средствами PHP.
Где об этом можно почитать?
Отправлен: 05.07.2006, 20:16
Вопрос задал: Alexorg (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Cimus
Здравствуйте, Alexorg!
Для этого нужно отправить GET запросс в яндекс и гугл и выдернуть нужные данные из странички ответа.
Если Вам нужен этот скрипт, то напишите мне в почту s_ageev@ mail.ru.
--------- Достичь можно любых высот !
Ответ отправил: Cimus (статус: 4-ый класс)
Ответ отправлен: 05.07.2006, 22:37
Отвечает: Jeka911
Здравствуйте, Alexorg!
Для PR: http://www.phpclasses.org/browse/package/2682.html
http://www.pagerank-without-toolbar.com/
--------- Шахтер - чемпион!!!
Ответ отправил: Jeka911 (статус: 6-ой класс)
Ответ отправлен: 06.07.2006, 03:19