pillinetwork hesabınızla giriş yapın.

PHP ile Basit Bir Message Board

Merhaba arkadaşlar. Bu kodaman'daki ilk yazım. Lafı uzatmadan kodlara geçmek istiyorum.

Yazılan mesajları mesajlar.txt dosyasından okuyan, basit ama güvenli bir ziyaretçi defteri uygulaması yazacağız. Bu tip uygulamalar hazırlamak isteyen arkadaşlar da buradaki mantıktan yararlanabilirler.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
session_start();
// post metodu ile mesaj gelmiş mi?
if (isset($_POST['mesaj'])) {
// oturum oluşturulmuş mu ve post ile gelen oturum bizim sessiondakine eşit mi?
if (isset($_SESSION['oturum']) && $_POST['oturum'] == $_SESSION['oturum']) {
// html temizliği
$mesaj = htmlentities($_POST['mesaj']);
// mesajlar.txt yi yazmak için aç
$fp = fopen('./mesajlar.txt', 'a');
// mesajı yaz
fwrite($fp, "$mesaj<br /><hr />");
//dosyayı kapat
fclose($fp);
}
}
// rastgele sayı üret ve md5le
$oturum = md5(uniqid(rand(), true));
//ve ürettiğin sayıyı sessiona koy
$_SESSION['oturum'] = $oturum;
?>
<form method="post">
<input type="hidden" name="oturum" value="<?php echo $oturum ?>" />
<textarea name="mesaj" /></textarea><br />
<input type="submit">
</form>
<?php
// mesajlar.txt yi oku
readfile('./mesajlar.txt');
?>

Burada mantık şu:

Ziyaretçi sayfaya giriyor ve ona bir session açıyoruz. İçine rastgele oluşturulmuş bir sayının md5 ini koyuyoruz. Sonra bu oluşturduğumuz md5 i form üzerinden gönderip, mesajı txt ye yazarken bakıyoruz bakalım formdan gelen ile oturumdaki aynı mı. Eğer değilse diyoruz ki bu adam dışarıdan saldırmış ve onun yazdığını kaydetmiyoruz.

Yorumlarınızı bekliyorum ;)

/* antiseptic yazdı. 09 Şubat 2009 10:47. 7 yorum var */

Yorumlar

Başlığına uygun sadelikte.

Tabi biz genel olarak ne yapmıyoruz?.. ".txt" yi db olarak kullanmıyoruz/ tavsiye etmiyoruz.

Gerekirse xml kullanmak daha iyi diyoruz.

evet ben de bu tip işler için txt kullanmayı sevmem. ancak ortada sql gerektirecek kadar büyük birşey yoksa en basitinden bu yazılabilir diye düşündüm.

yorumun için teşekürler ;)

/* www.pcturk.org ile uğraşıyorum :| */

Teşekkürler

Elinize sağlık güzel bir uygulama olmuş, peki bu formun boş gönderilmemesi için kodlar üzerinde hangi değişiklikleri yapmalıyız ?

Ne yazikki gunumuzde bu tarz onlemler belirli basli comment spamlari etkilesede yeni nesil botlar ilk once sayfayi cagiracaklardir ve buradan rahatlikla md5sumi okuyabilirler biraz daha ileri goturup javascript ile bu kodun degisen algoritmalar ile olusturulmasi ve belirli sayidan fazla yazi girildiginde captcha cikarmak biraz daha saglikli cozum olabilir.

iltaren'a bu konuda katılıyorum.

/* Günce: http://www.murat-beser.com */

Merhaba,türkçe karakter hatası veriyor onu nasıl düzeltebiliriz

üye olunpillinetwork sitelerine yorum ekleyebilmek ve daha fazlası için, üye olun ya da giriş yapın.

Bu yazıyı rapor et. Kural dışı içeriğe rastladığınızda editörlerimize rapor ederek müdahale edilmesini sağlayabilirsiniz. (Hangi durumlarda rapor edebilirim?)

Bu site

Nokta ve pilli ortak yapımı olan kodaman.org hep birlikte içerik üretip gelirini yazarları ile paylaştığımız kolektif bir kod yazarları blogudur. Siz de katılabilirsiniz.

pilliilan

son yorumlar

arama

pillinetwork