2009-10-06 5 views
0

Я занимаюсь разработкой веб-сайта и в моей попытке сделать дружественные URL, не прибегая к mod_rewrite (потому что возможности сервер моего клиента doesent позволяет это), я придумал эту систему:PHP включает в себя и POST

индекса. php ожидает переменную с именем $ seccion, которая должна содержать относительный путь ко второму файлу с определенным разделом. Таким образом, я сохраняю статические вещи (заголовок, нижний колонтитул, боковые панели) в index.php, и единственное, что меняется, это то, что находится посередине.

Затем, если вы идете в/регистрация есть только index.php, который имеет:

<? $seccion = 'signup.php'; @include '../index.php'; ?> 

URL-адрес будет www.root.com/signup, но это будет на самом деле в том числе www.root. com/index.php и загрузить www.root.com/signup.php в центральной области.

Это соглашение также означает, что каждый раз, когда мне нужно ссылаться на файл, я должен использовать абсолютный URL.

Проблема в том, что теперь почему-то POST не работает. Предположим, у меня есть форма на www.root.com/signup, и действие - www.root.com/welcome, и предполагается, что он отправит ввод через POST. Ну, информация никогда не проходит. PHP возвращает $ _POST = Array()

Любые идеи?

Редактировать: Я забыл упомянуть, что я уже сталкивался с той же проблемой ранее в разработке, и тогда мое решение использовало ajax и отправило запрос POST через jQuery. Это изящное решение, но не то, что я всегда хочу.

+0

Ваша настройка не похожа на проблему. Что произойдет, если вы разместите свои данные непосредственно в /welcome.php? – timdev

+0

Я отдам его, но мне все еще нужно приветствовать.php, чтобы он был встроен в index.php. Как я уже сказал, index.php имеет все статические вещи. – Nacho

ответ

0

Звучит так, как будто что-то происходит как перенаправление где-то - есть ли у вас какие-либо правила mod_rewrite в игре, которые могут перенаправлять «путь /» на «путь» или что-то в этом роде? Firebug для Firefox покажет любые переадресации на вкладке NET.

В любом случае, я рекомендую вам отказаться от этого метода и вместо этого использовать маршрутизатор для обработки ваших запросов. Если вы посмотрите на MicroMVC, CodeIgniter или большинство других фреймворков MVC, вы обнаружите, что они используют один индекс.php-файл, которому передан URL-адрес (/ blog/read/45), и оттуда использует файл маршрутизации, чтобы узнать, как загрузить файл «blog.php» и вызвать «читать (45)» или (blog-> read (45)).

+0

Нет правил mod_rewrite. И да, я думаю, мне придется отказаться от этого метода для чего-то еще, хотя идея не переписывалась моя вся структура. Я посмотрю на эти рамки. – Nacho

0

Попробуйте это. Это позволит вам иметь одну страницу в качестве шаблона. Настройте все ваши другие страницы, включая ваш шаблон. Затем вы можете делать POST на страницах.

Файл: _design.php

<html> 
<head> 
<title>Site</title> 
</head> 
<body> 
<?php include $file; ?> 
</body> 
</html> 

файла: index.php

<?php 
$file = 'pg/index.php'; // this gets content 
include $file; 
?> 

Файл: пг/index.php

<?php 
if(isset($_POST)){ 
echo '<pre>'; 
print_r($_POST); 
echo '</pre>'; 
} 
?> 
<form action="?" method="post"> 
Name: <input type="text" name="name" /> 
<input type="submit" value="Send" /> 
</form> 
+0

Не уверен, что я понял, но, что я могу сказать, это то, что у меня есть прямо сейчас: \ – Nacho

+0

Я тестировал выше в centos с apache и windows iis, и это работает для меня. Я согласен с приведенным ниже человеком; у вас есть какая-то установка mod_rewrite? Это может убить почту. – David

+0

У меня нет и не будет сервера моего клиента :( – Nacho

0

я столкнулся с подобной проблемой другого ночь с другом, который установил PHP на своем компьютере с Windows.

По какой-то причине его простая форма не проходила мимо сообщения или получала данные через его скрипт PHP. В его коде не было ничего плохого, это было связано с установкой PHP или Apache. После того, как он установил Aptana и использовал его внутренний сервер, форма работала правильно.

Сначала попробуйте сначала простую форму и убедитесь, что данные _POST фактически подхвачены PHP.

+0

Я нахожусь в XAMPP. К сожалению, я не знаю, как и как переключиться на серверное программное обеспечение или сконфигурируйте его. _POST, однако, подбирается, но только когда отправитель и получатель - одна и та же страница. – Nacho

 Смежные вопросы

  • Нет связанных вопросов^_^