PHP включает и POST - PullRequest
       18

PHP включает и POST

0 голосов
/ 07 октября 2009

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

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

Тогда, если вы перейдете в / signup, есть только 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 ()

Есть идеи?

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

Ответы [ 3 ]

0 голосов
/ 07 октября 2009

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

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

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

0 голосов
/ 07 октября 2009

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

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

0 голосов
/ 07 октября 2009

Попробуй это. Это позволит вам иметь одну страницу в качестве шаблона. Настройте все остальные страницы, включая ваш шаблон. Затем разрешите вам делать 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;
?>

Файл: pg / index.php

<code><?php
if(isset($_POST)){
echo '<pre>';
print_r($_POST);
echo '
'; } ?> Имя:
...