Formdaki web sayfasını submit oluşturma?

6 Cevap

Nasıl bir biçimde kendi girişlere dayalı, bir kullanıcı bazı html içeren bir web sayfası oluşturmak için izin vermek mümkün mü? yani. Ben onlara bir isim ve ad yaratılmış olacağını denilen düğme tıklandığında, bir web sayfasının girişine edebilmek isterim. Ben bu php mümkün olması gerektiğini hayal, ama ne işlevler / kodunu kullanarak olurdu?

Teşekkür ederiz!

6 Cevap

Bu neyse, varsayalım formu html ile teslim edilir, ilk etapta büyük güvenlik riskleri oluşturabilir, böyle bir şey hakkında gidebilirsiniz:

$handle = fopen('file_name.html', 'r+');
// write to file
fwrite($handle, $_POST['fieldname']);
close($handle);

Note: Sen, kullanıcıların sayfaları oluşturmak için izin çünkü XSS and other security issues dikkate aldım. Kötü adamlar kolayca yararlanabilir.

Resoures:

PHP File Handling Functions

XSS

Son olarak, bir PHP güvenlik kılavuzunu okuyun gerekir:

http://phpsec.org/projects/guide/

Idea: Just allow them minimal of customization and use a pre-made page where you could insert this user data. Ofcourse as said, you need to sanitize the user-submitted data and consider security issues.

Bu gerçekten ne gerek, her şeyden önce, kendime sorardım.

Neden sadece temel bir şablon sayfa oluşturmak ve bir parametre olarak veri geçemiyor?

Gibi bir şey:

user.php?name=joachim

Hala bunu istiyorsanız, dosyaları yazma ve açma, PHP fonksiyonları kullanabilirsiniz:

İşte php bir dosya oluşturmak için nasıl bir öğretici bulunuyor:

http://www.tizag.com/phpT/filecreate.php

Aslında fiziksel bir dosya gerekmedikçe Ben sadece, söz alanlara dayalı doldurur bir şablon gibi davranır bir sayfa olurdu.

Şablon değişiklikler ve güvenliği çok daha kolay hale getirir.

GÜNCELLEME: Temelde form veritabanına uygun noktalar veya yazılan bu POSTed alanları yazdırır ve ardından sayfanın çekin bir sayfaya göndermek zorunda ya.

Sen $ _GET veya $ _POST diziler gelen formun girdilerini ayıklamak ve ardından bir dosya oluşturmak için bu tür fwrite gibi dosya yazma işlevleri kullanmak gerekiyordu. Basit bir yazma yapmak için nasıl bir örnek gidecekseniz here.

Excluding the fact that it is a security risk to allow users to create any files on the host...

Sen fopen () fwrite() ve fclose() kullanılarak veya üzerinden bir dosya oluşturabilirsiniz file_put_contents(). Ben o zaman içinde kullanıcı girişi değerleri ekleyin ve ardından fwrite() veya file_put_contents() aracılığıyla tüm dizeyi kaydetmek, ilk yük şablon dosyasının bir çeşit kullanmayı tercih. Bu kullanım $_GET gelen sinyalleri ya da formda kullanılan yönteme bağlı olarak, $_POST dizisi olsun.

"Bir biçimde kendi girişlere dayalı bazı html içeren bir web sayfası oluşturmak" derken gerçekten ne demek formdan girdileri bir sayfanın içeriğini belirlemek olduğunu (evet evet biliyorum) kabul edeceğim.

Olacak denemek ve ben senin niyetini anlamak tam olarak emin değilim, çünkü temelde mümkün olduğunca bu açıklar.

Eğer formu yazarken, action = "example.php" içeren bir etiketi olacak. Bu example.php üzerinde eylemler gerçekleştirmek anlamına gelir

Example.php olarak, daha sonra $_POST[] array variable içinde bakarak formundan geçirilen değişkenleri alabilirsiniz. Sonra, size ne baskı belirlemek için php değişkenleri kullanarak example.php yapısını veya sonuç sayfasını değiştirebilirsiniz.

Ben fiziksel bir dosya oluştururken gerekli olacağını sanmıyorum, ve sen bilgi almak için formu kullanarak konum beri, $ _GET (ben çoğu durumda tahmin ediyorum) tür anlamsız olduğunu.