Düşünce konuk defteri html. Ziyaretçi defteri senaryosu yazmak. Phoca Ziyaretçi Defterinin Kurulumu ve Ruslaştırılması

  • 01.11.2019

Bugün sana vereceğim php ziyaretçi defteri komut dosyası, bu şeyin oldukça popüler olduğu bir sır değil ve yönetimle iletişim kurmanın başka bir yolu yoksa, o zaman ziyaretçi defteri gereklidir. Ve bu makalede şunları yapabilirsiniz: PHP'de ziyaretçi defteri komut dosyasını indirin, ayrıca yükleme sürecinden de bahsedeceğim.

Çok sık insanlar soruyor html veya javascript'te ziyaretçi defteri komut dosyası. Ne yazık ki, bu asla olmaz ve asla olmayacak, çünkü konuk defterinin çalışması için en azından bir dosyaya mesaj yazmanız gerekir. ve içinde yap JavaScript, ve ayrıca, içinde HTML imkansız.

Şimdi klasörü kopyalayın konuk sitenizin köküne. Ardından, web sitenizin sayfasına ziyaretçi defterine bir bağlantı yerleştirin ( http://siteniz/misafir).

Bir sonraki adım, ziyaretçi defterini ayarlamaktır. Bunu yapmak için şuraya gidin: http://siteniz/misafir/admin.php. Parolanı Gir " yönetici" ve başarılı yetkilendirmeden sonra sekmeye gidin " Yapılandırma". Tüm ayarların kısa açıklaması:

  • komut dosyası adı- sitenizin ziyaretçi defteri için adınızı yazın.
  • Hoş Geldiniz metni- Ziyaretçilerinizin ziyaretçi defterini ziyaret ederken görmesini istediğiniz herhangi bir metni yazın.
  • reklam bloğu- Ziyaretçi defterine ilan vermek istiyorsanız, kodunu bu alana kopyalayın. Değilse, bu alanı boş bırakın.
  • Ana siteye bağlantı- sitenizin ana sayfasına bir bağlantı koyun.
  • Yönetici e-postası / mesaj gönder- belirtiniz e-posta ve ayrıca e-postanıza mesaj almak isteyip istemediğinizi seçin.
  • yönetici şifresi- şifrenizi belirlediğinizden emin olun. Ayrılma " yönetici".
  • MODERATE mesajları etkinleştirilsin mi?- her mesajı yayınlamadan önce kontrol etmek istiyorsanız, bu seçeneği etkinleştirin.
  • ANTISPAM özelliği etkinleştirilsin mi?- burada istenmeyen posta önleme sistemini devre dışı bırakabilir veya üç seçenekten birini seçebilirsiniz: normal captcha, bilmece veya matematik işlemi. Normal bir dijital captcha seçerseniz, sağdaki metin alanında captcha'nın uzunluğunu da belirtin.
  • ANTIFLUD işlevi etkinleştirilsin mi?- bu seçenek, konu dışı mesajları filtrelemenize olanak tanır.
  • Metindeki bağlantılar aktif hale getirilsin mi?- Eğer koyarsan " Evet", mesaj metnindeki bağlantılar aktif olacaktır. Bu, kullanıcılar için uygundur, ancak ziyaretçi defteriniz bir spam gönderici için iyi bir yer olacaktır.
  • Grafik ifadeleri etkinleştir/devre dışı bırak?- Eğer koyarsan " Evet", daha sonra kullanıcı ifadeleri kullanabilecektir.
  • Maks. isim uzunluğu- kullanıcı adında izin verilen karakter sayısı.
  • Maks. mesaj uzunluğu- mesajda izin verilen karakter sayısı.
  • Sayfa başına gönderiler- bir sayfada görüntülenen mesajların sayısı.
  • mesaj takip- mesajın yazıldığı tarihe göre artan veya azalan düzende sıralama.
  • Deri- görünüm.

Aslında, çok çeşitli misafir defteri senaryoları. Ve onu ararken, en az iki düzineden geçtim ve aşağıdaki nedenlerle buna karar verdim.

Yaratılış hakkında söylendi misafir defteri hazır bir komut dosyası kullanarak sitede. Bu arada, küçük sitelerde, ziyaretçi defteri genellikle birkaç mesajdan (on - on beş) oluşur ve nadiren yenileriyle güncellenir. Temel olarak, kitap spam, her türlü reklam ve sitelere bağlantılarla doludur. Sonuç olarak, onu temizlemek ve mesajları kontrol etmek (yönlendirmek) için çok zaman harcanır.

Bu yaklaşımın başlıca avantajları şunlardır:
- yabancıların harika fikirlerini ziyaretçi defteri sayfasına, katı engelinizi aşarak eklemenin imkansızlığı,
- Mesaj satırları doğrudan site sayfasına eklendiğinden özel bir tasarım oluşturmaya gerek yoktur,
- Siteyi tanıtmak için ziyaretçi defterini anahtar kelimelerle doldurarak kolayca optimize edebilirsiniz.

İlk olarak, herhangi bir HTML ve CSS düzenleyici kullanarak bir ziyaretçi defteri gönderi formu oluşturalım. Örneğimiz için, daha önce tartışılan kitabın tasarımından sapmayacağız. Buton Mesaj ekle küçük bir pencerede açılan geri bildirim formuna (sayfa forma_02.html) bir resim bağlantısı yapalım (örnek geçerlidir, kontrol edebilirsiniz!).

ZİYARETÇİ DEFTERİ
Pupkin & Partners

23.10.2011
İvan İvanoviç
Moskova

Firmanızdan bir web sitesi sipariş ettim.
Her şey hızlı ve verimli bir şekilde yapıldı.
SEOMARK çalışanlarına teşekkürler! Seni arkadaşlarıma tavsiye edeceğim.

yönetici. Her zaman yardım etmekten mutluluk duyarım!
21.10.2011
Gubkin
Londra

Ziyaretçi defterinin başlangıcı için tebrikler.
İşinizde başarılar ve kişisel yaşamınızda mutluluklar dileriz.

Şirket "Gubkin ve ortakları".

yönetici. Teşekkürler!

"Mesaj Ekle" bağlantısının kodu aşağıdaki gibidir:
.

burada, içinde JavaScript açılacak sayfanın adresini (forma_02.html), yeni pencerenin genişliğini ve yüksekliğini (500x600 piksel) ve monitör ekranındaki konumunu (sol üst köşe) belirtirsiniz. Pencerenin içeriği herhangi bir özelliğe sahip değildir ve ziyaretçi hakkında ihtiyaç duyduğunuz bilgilere göre belirlenir: ad, adres, e-posta, ICQ vb.

Mesaj başarıyla gönderildiyse, aşağıdaki mesaj görüntülenir:
"Mesajınızı gönderdiğiniz için teşekkürler.
Site yöneticisi tarafından doğrulandıktan sonra
Ziyaretçi defterine eklenecektir.
"
Bu örnek için PHP sayfasının tam metni aşağıdaki gibidir:





İleti


if (isset($_POST["isim"])) ($isim = $_POST["isim"];)
if (isset($_POST["karmaşa"])) ($karmaşa = $_POST["karmaşa"];)
if (isset($_POST["şehir"])) ($şehir = $_POST["şehir"];)

Eğer (boş($isim))
{
Eko " İsim verilmedi!

";

}
Başka
if (boş($karmaşa))
{
Eko " Mesaj yayınlanmadı!

";
echo "Formu doldurmaya geri dönün";
}
Başka
{
$to=" [e-posta korumalı]"; // Adresinizi buraya girin
$headers = "İçerik türü: metin/düz; karakter kümesi = utf-8";
$konu = "Ziyaretçi Defteri Yazısı";
$message = "Gönderenin adı: $ad \nŞehir: $şehir \nMesaj: $mess";
$gönder = mail($to, $konu, $mesaj, $başlıklar); //Mektup gönderiliyor
if ($send == "doğru")
{
Eko "

Mesajınızı gönderdiğiniz için teşekkür ederiz.";
Eko "

Site yöneticisi tarafından doğrulandıktan sonra
ziyaretçi defterine eklenecektir.";
}
Başka
{
Eko "

Mesaj gönderilemedi. Özür dileriz.";
Eko "

Lütfen daha sonra tekrar göndermeyi deneyiniz veya bizimle telefon ile iletişime geçiniz.";
}
}
?>



1. Ücretsiz hosting sadece verdiklerine sahiptir.
2. Daha iyi, ancak zorunlu değil. İyi bir misafir, gerektiğinde (formum aracılığıyla) bir mesaj bırakacaktır ve iyi bilgisayar korsanı yine de $_GET, $_POST, $_COOKIE ve $HTTP_REFERER öğelerinizi atlayacaktır.
3. Uzunluk kontrolü, ancak dolaylı olarak, veritabanının kendisi tarafından gerçekleştirilir (tek şey, yalnızca mesajın kendisinin büyük olabileceğidir - 64 Kb'ye kadar).
4. Evet var, HtmlSpecialChars kullanılmış, AddSlashes kullanmadım (ve bu büyük bir hata, hatamı kabul ediyorum, aşağıya bakın). magic_quotes_gpc etkinleştirildiğinde, bu sorun o kadar akut değildir, ancak güvenlik açığı (kontrol panelinde) kalır.
5. Evet katılıyorum, kesmek mümkün olabilir ama isim #[e-posta korumalı]%#$^%$ daha kötü bir şey yok AF4ETX09T43. E-posta ve url'de bir boşluk var, komut dosyalarını kullanabilirsiniz.
6. Başlatılmamış olanın ne olduğunu merak ediyorum?

Bir görüntü aracılığıyla otomatik girişe karşı koruma gibi bir dizi ilginç hile vardır (bu sitede olduğu gibi) http://www.site/webmast/php/Security-Images-in-PHP/
...

Görünüşe göre resim yok, neden demoyu karmaşıklaştırıyor. Şimdiye kadar, böyle bir korumaya sahip bir misafirle hiç tanışmadım. Bu siteye gelince, bu bir misafir sitesi değildir.

XSS Siteler Arası Komut Dosyasının Anatomisi
http://www.woweb.ru/index.htm/id/1073393942

Çok ilginç, teşekkürler.

ZY Afftor aynı sitedeki makaleleri okumaya (ve incelemeye) zahmet etseydi, işinin ne kadar amatörce olduğunu anlardı. Önceki Yazarların deneyimlerini göz önünde bulundurmaya ve en azından eserlerine saygı duymaya değer - onlar sizin için yazdılar.

Nerede saygı yok? Birini kırdıysam özür dilerim.

Korumaya gelince, makalenin ilk paragrafını tekrar okumanızı tavsiye ederim, güvenilir bir ziyaretçi defteri olarak düşünmedim, sadece nasıl yazabileceğinizi göstermek için yola çıktım. protozoon ziyaretçi defteri, CGI'yi yeni öğrenmeye başlayanlar için, çünkü her şey hemen gelmez, basit bir tane ile başlamanız gerekir ve hemen o kadar akıllı olmadınız, ayrıca hatalar yaptınız, bu yüzden koruma yönlerini bırakalım diğer makalelere, diğer yazarlara.

Evet, koruma açısından bu senaryo profesyonel değil ve ben koruma alanında profesyonel değilim, bu nedenle ilk paragraf ilgili sorumluluk reddi beyanını içeriyor, ne yazık ki herkesin okumadığı.

not

Alıntı yapmak:

"Telif Hakkı ve İlgili Haklar" Yasası
Madde 6. Telif hakkı nesnesi. Genel Hükümler
1. Telif hakkı, yaratıcı faaliyetin sonucu olan bilim, edebiyat ve sanat eserlerini, amaç ve liyakat iş ve bunun ifade ediliş şekli.
Gerisini buradan okuyabilirsiniz: http://www.febras.ru/~patent/copyright/2_3part2.html
9. Madde dahil s.1
Ve hakkımı kullanıp kullanmayacağıma siz karar veremezsiniz.

Bugün PHP programlama diline yeni başlayanlar için belki de en iyi görevi anlatacağım - Ziyaretçi Defteri. Bence bu görev en basiti, ancak aynı zamanda PHP ve MySQL veritabanı ile çalışmanın tüm ana özelliklerini öğrenmenize izin veriyor. Ek olarak, bu görev, yeni teknolojileri bilemenize izin veren, sonsuz şekilde genişletilebilir.

Bu sorunun açıklaması ve çözümü performans kontrolleri yapılmadan hemen buraya yazılacağı için bir yerde yazım hatası olabilir. Bu benim tembelliğim yüzünden değil, misafir defterini yaratırken aldığın ek eğitim yüzünden oldu. Ayrıca, sunulan çözüm biraz "çarpık" olacak, ancak daha fazlası bu makalenin sonundaki "Bağımsız çalışma" bölümünde.

PHP ile nasıl çalışacağınızı bilmiyorsanız, önce PHP - nereden başlamalı notunu okumanızı tavsiye ederim.

Tasarım ve yönetim olmadan en ilkel ziyaretçi defterinin oluşturulmasını analiz edeceğiz. Başka bir deyişle, kendimizi kitaba girmek, kayıt olmak ve mesaj bırakmakla sınırlayacağız.
Görevin kendisinden, bu görevi uygulamak için kendimizi tamamen üç php dosyasıyla sınırlayabileceğimiz açıkça ortaya çıkıyor. Tabii ki kayıt görevi ikiye ayrılabilir: kayıt formu ve veri tabanına veri ekleme ama biz bunu yapmayacağız. Benzer bir akıl yürütme, yorum bırakma prosedürü için de geçerlidir. Böylece üç dosya oluşturuyoruz: index.php, record.php, book.php.

Dosyaların adlarından nelerden sorumlu olduklarını hemen anlayabilirsiniz: index.php giriş sayfasıdır, record.php kayıt sayfasıdır, book.php ise misafir defteri sayfasıdır.

Bizim durumumuzda en basit olanı giriş sayfasıdır. Sayfa bir çift kullanıcı adı ve şifre girmekten sorumlu olduğundan, bu verileri book.php sayfasına göndermek için bir formu olmalıdır. Ayrıca kayıt sayfasına bir bağlantı var. Sahibiz:

Ziyaretçi defteri girişi

Giriş yapmak:
Şifre:

kayıt


Yukarıdaki kodun ne anlama geldiğini bilmeyenler için biraz konu dışı. Burada çıplak HTML'miz var. Etiket anahtardır form hangi iki parametre alır eylem, veri girişi onaylandıktan sonra açılacak sayfanın adresinden ve parametreden sorumlu olan yöntem, form verilerinin belirtilen sayfaya nasıl gönderileceğini söyler (basit terimlerle POST ve GET'e bakın). Form etiketinin içinde, özniteliğe sahip olması gereken giriş alanları (input, select) belirtilir. isim. Eylem formu parametresinde belirtilen sayfada kullanıcı tarafından girilen verileri elde etmek bu özelliğin değeri ile mümkün olacaktır. Formun içinde tipte bir giriş olması gerektiğinden emin olun. Sunmak temelde bir düğme olan , eylem sayfasına hangi verilerin gönderileceğine tıklayarak.

Devam edelim... Şimdi yeni bir kullanıcı kayıt sayfası oluşturmamız gerekiyor. Tam olarak neye sahip olmak istediğimizi hemen düşünmeye değer. Basit bir ziyaretçi defteri için, kullanıcıların benzersiz oturum açma bilgilerinin yanı sıra (varsa) Web sitelerinin adresini bilmelerinin yeterli olacağına karar verdim. Kullanıcı hakkında ne bilmek istediğimize karar verdikten sonra veritabanımızı tasarlamaya başlayabiliriz.

phpMyAdmin'e gidiyoruz. Orada gb adında bir taban oluşturalım. Bu veritabanında, aşağıdaki alanları içeren bir Kullanıcılar tablosu oluşturun:

Giriş varchar(50) benzersiz //kullanıcı girişi, benzersiz alan şifresi varchar(150) //şifre www varchar(255) //site adresi

Ve veritabanı düzenleyicisine girdiğimiz için, mesajları nasıl depolayacağımızı hemen düşünebiliriz. Bizim durumumuzda, mesajı kimin ve ne zaman bıraktığını, yani mesajımızın asıl metnini bilmek oldukça uygundur. Ayrıca kolaylık olması açısından mesajlarımızı numaralandırmaya değer. Aşağıdaki yapıya sahip başka bir Mesajlar tablosunu güvenle oluşturabilmemiz için buna karar verdik:

Id int ai(auto_increment) birincil_anahtar //mesaj numarası, kendisini artıracak bir sayaç mes text //message text who varchar(50) //zaman damgası varsayılan(geçerli) //mesajın zamanı geldiğinde mesajı bırakan kişinin oturum açması kaldı, varsayılan olarak geçerli tarih ve saat

Veritabanı ile bitti. Şimdi register.php dosyasına geçelim. Yukarıdakileri özetlersek, elimizde:

kayıt

Giriş yapmak:
Şifre:
Şifre tekrar:
WWW: http://


ana

Kod hakkında biraz. Zaten fark ettiğiniz gibi, PHP burada mevcuttur. Formu tarif etmeyeceğim ama gördüğümüz gibi burada form verileri bu formun bulunduğu aynı sayfaya gönderiliyor. Başka bir deyişle, register.php dosyası kendisine veri gönderir. Bunu kimse yasaklamaz, ancak kodun okunabilirliğini büyük ölçüde bozduğu için kullanmak her zaman mümkün değildir. Ancak diğer yandan bu, PHP dilinin yeteneklerini açıkça göstermektedir. Aslında sayfamız ikiye ayrılıyor. İlk durum, sayfaya bir POST isteği ile veri gönderildiğinde, ikinci durum, sayfaya hiçbir POST isteği gönderilmediğindedir. İkinci durumda, kayıt formunu göstereceğiz ve ilk durumda, gönderilen verileri kontrol etmeye başlayacağız. Gördüğünüz gibi, veriler bir ilişkisel dizi (yani, dizinleri dize olan bir dizi) olarak gönderilir. Ayrıca endeksler, veri gönderme formunda belirtilen giriş alanlarının adlarıyla eşleşir. Onlar. yazarsak

o zaman bu verileri bir POST isteği ile gönderirken bir değişkenimiz olacak

$_POST["vasa-peta"]

Ayrıca giriş tekrarı için herhangi bir kontrol yapmadığımızı da belirtmekte fayda var. Oturum açma alanı benzersiz olarak işaretlendiğinden bu kontrol veritabanı düzeyinde gerçekleştirilecektir.

Şimdi sonuncusu. Konuk defterini kendisi yapmak için kalır. Küçük bir tartışma. Ziyaretçi defteri kullanıcı adı ve parola ile çalıştığı için ilk yapmamız gereken, girilen oturum açma ve parolanın veritabanında bulunup bulunmadığını kontrol etmektir. Mesajları book.php dosyasına da eklemeye karar verdiğimiz için, mesaj ekleme prosedürü açıkça takip edilmelidir. Eh, en sonunda, tüm mesajların görüntülenmesi. (görüntülendikten sonra bir mesaj eklerseniz, eklenen mesaj yalnızca sayfa yeniden yüklendikten sonra görüntülenecektir). Sahibiz:

ziyaretçi defteri "; ) else ( echo "Mesajınız eklenmedi!


"; } } ?>
"ad="giriş" /> "ad="parola" />

"; echo "Metin: ".$satır["mes"]."
"; ) ) mysql_close($link); ?>

Esasen hepsi bu. Kod %100 çalışıyorsa sorun yok. Değilse, hataları kendiniz düzeltmeye çalışmanızı tavsiye ederim. Şimdi söz verilen bölüm.

Bağımsız iş
Başta belirtildiği gibi, bu çözüm "çarpık". Hala nedenini anlamadıysanız, şimdi açıklayacağım. Book.php dosyasında yorum ekleme formunda fark etmiş olabileceğiniz gibi, ikisi kullanıcı tarafından girilen kullanıcı adı ve şifre olmak üzere birkaç gizli alan vardır. İyi değil, değil mi? Bu eksikliği oturumları kullanarak düzeltmeye çalışın (PHP'de oturumlarla nasıl çalışılır).
Fonksiyonlar arasındaki fark nedir sorusuna cevap vermeye çalışın. boş/isset Ve çıkmak/ölmek?
Veritabanından mesaj seçme sorgusunu, mesajları görüntülerken mesajın yazarının web sitesi görüntülenecek şekilde değiştirin.
Dikkat ederseniz, veritabanındaki kullanıcıların şifreleri açık metin olarak saklanır ve bu çok iyi değildir. Kodu, kullanıcının parola karması veritabanında depolanacak şekilde düzenleyin (örneğin, MD5 veya SHA1).

PHP 5.2 ve üzeri;
- mod_rewrite;
- Veritabanı MySQL 4.1 ve üzeri.

Fırsatlar

Herhangi bir sitenin altına gömülür (bunun için top.php ve alt.php dosyalarını düzenlemeniz yeterlidir);
- sel önleyici;
- yasak listesi;
- sayfa gezinme görünümü<< < ...| 5 | 6 | 7 ... > >>;
- BBCode desteği;
- ifadeleri göster;
- yeni eklenen mesajların bildirimi;
- moderasyon için mesaj ekleme yeteneği;
- Admin Paneli;
- Kurulumu ve kurulumu kolaydır.

Kurulum

Arşivi açın ve arşivin içeriğini web sunucunuzdaki herhangi bir klasöre kopyalayın (örneğin "misafir defteri"). config/config_db.php dosyasını bir metin düzenleyicide açın ve bağlantı ayarlarını belirtin (veritabanı ana bilgisayarı veya IP'si, veritabanı adı, oturum açma ve parola). MySQL veritabanı tabloları SQL sorgusunu guestbook.sql dosyasından yerleştirin. genellikle çoğu barındırmada bu, phpMyAdmin aracılığıyla web arayüzü aracılığıyla yapılır. Yönetim paneline (http://siteniz/klasör_with_script/admin/) gidin ve 1111 şifresini girin. Ardından, gerekli ayarları belirleyin.

Ticari versiyon

Müşterinin isteği üzerine senaryoyu belirli koşullara uyarlayabilirim. Çeşitli ek özellikler eklenebilir.

Not

"PHP Ziyaretçi Defteri" SCRIPT, BU NEDENLE SADECE PROGRAM TAMAMEN ÜCRETSİZDİR. YALNIZCA YAZARIN TELİF HAKKI KOŞULLARI ALTINDA, PROGRAMIN KAYNAK KODUNDAKİ DEĞİŞİKLİKLERİNİZİ DAĞITABİLİRSİNİZ, KOPYALAYABİLİRSİNİZ, YAPABİLİRSİNİZ. "PHP Ziyaretçi Defteri" PROGRAMININ TİCARİ AMAÇLI KULLANILMASI YASAKTIR. BU PROGRAMI KULLANMANIZIN RİSKİ KENDİ RİSKİNİZE AİTTİR. YAZAR, PROGRAMIN PERFORMANSINDAN VE AYRICA BU PROGRAMIN KULLANIMI VE ÇALIŞMASIYLA İLGİLİ KAYIPLARDAN, VERİLERDEKİ ZARARDAN VEYA HİÇBİR ŞEYDEN VEYA HİÇBİR ŞEYDEN SORUMLU DEĞİLDİR.

Senaryomu beğendiyseniz ve bana bir ruble ile teşekkür etme arzunuz varsa, işte detaylarım:

İnternet parası
U237811811298
R198597198920
Z917380288657

Yandex parası
41001635943434

PayPal

Herhangi bir sorunuz veya öneriniz varsa, lütfen bana yazın: Bu e-posta adresi spambot'lardan korunuyor. Görüntülemek için JavaScript'i etkinleştirmiş olmanız gerekir.




Bilgisayar yardım sitesi

© Telif hakkı 2022,
rzdoro.ru - Bilgisayar yardım sitesi

  • Kategoriler
  • Demir
  • Windows 10
  • Tarama
  • Windows 7
  • Demir
  • Windows 10
  • Tarama
  • Windows 7