PHP POST içerir ve

3 Cevap php

Ben bir web sitesi geliştiriyorum ve (şansını müvekkilimin sunucu izin doesent çünkü) mod_rewrite için yinelenen olmadan dostu URL'ler yapmak için benim girişimi, ben bu sistem ile geldi:

index.php beklediğini belirli bir bölümde ikinci bir dosyaya göreli yolunu içermelidir $ seccion adında bir değişken. Ben tüm index.php statik malzeme (başlık, altbilgi, kenar çubuğunu) tutmak yolu ve değişen tek şey ortada ne olduğunu.

Eğer / Üye olmak için giderseniz, sonra sahip tek bir index.php var:

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

URL www.root.com / kayıt olacak ama aslında merkezi alanında signup.php www.root.com / index.php ve yükleme www.root.com / dahil olacak.

Bu düzenleme de ben bir dosyaya bağlanmak için gerek her, ben mutlak bir URL kullanmak zorunda olduğu anlamına gelir.

Sorun şimdi nedense POST doesen't çalışıyor gibi görünüyor olmasıdır. Ben www.root.com / kaydolma bir form var ve eylem www.root.com / açığız, ve POST aracılığıyla girdi göndermek gerekiyor herhalde. Eh, bilgi yoluyla geçmez. PHP = Array $ _POST döndürür ()

Herhangi bir fikir?

edit: I forgot to mention that I had already come across the same problem previously in the development, and my solution back then was using ajax, and sending a POST request via jQuery. It's an elegant solution, but not what I always want.

3 Cevap

"Yol /" için "yol" ya da böyle bir şey yönlendirme olabilir oyunda herhangi mod_rewrite kurallar var - başka bir şey bir yere yönlendirme gibi oluyor gibi geliyor? Firefox için Firebug NET sekmesinde herhangi bir yönlendirmeleri gösterecektir.

Her neyse, ben bu yöntemi bırakın ve yerine istekleri işlemek için bir yönlendirici kullanmanızı öneriyoruz. Eğer MicroMVC, CodeIgniter, ya da diğer birçok MVC çerçeveler bakarsanız onlar bir URL'yi (/ blog/read/45) geçirilen tek bir index.php dosyası kullanmak olduğunu göreceksiniz ve oradan "blog.php" dosyasını yüklemek ve "(45) okuma" ya (blog->) (45 okuma) aramak için bilmek bir yönlendirme dosyası kullanır.

Bu deneyin. Bu, şablon olarak bir sayfa var sağlayacaktır. Onlara şablonu dahil Kur, tüm diğer sayfaları. Sonra sayfalarında POST yapmak için izin verir.

Dosya: _design.php

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

Dosya: index.php

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

Dosya: pg / 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>

Ben onun pencere makinede kurulum PHP vardı bir arkadaşı ile diğer gece benzer bir sorun koştu.

Nedense onun basit bir form yazı ya geçen değil ya da PHP komut dosyası aracılığıyla veri almak. Bu PHP ve Apache kurulumu ile ilgili bir şey olduğunu kendi kodu ile yanlış bir şey oldu. O Aptana yüklenmiş ve kullanılan sonra formu doğru çalıştı iç sunucu bulunuyor.

Önce basit bir formu test deneyin ve _POST veri aslında PHP tarafından yakalandı ediliyor emin olun.