Neler yeni

Coinli PHP ile Veritabansız İletişim Formu Yapımı / ELESSYA (1 Viewer)

Elessya 

Elessya
onursal
Mesajlar
12,899
Credits
13,032

Bu konumuzda PHP ile veritabanı kullanmadan bir iletişim formu yapacağız.Bildiğiniz gibi genel olarak iletişim formları SMTP(mail gönderme) ya da herhangi bir veritabanına verileri kaydederek çalışır fakat bugün veritabanı yerine bir metin dosyası (txt) kullanarak bu işlemi gerçekleştireceğiz.

Hidden content
Konuyu Görebilmeniz için "Beğenmeniz ve Yorum yapmaniz" Gerekir.
 

inciR 

Enkaz altındayım canım belki başka baharlara...
girlsss
Mesajlar
339
Credits
79,586
Baştan Sona Anlatımdır. Konuyu Bilerek Hide'ye Almıcam Hoşunuza giderse Like Atarsınız.

Bu konumuzda PHP ile veritabanı kullanmadan bir iletişim formu yapacağız.Bildiğiniz gibi genel olarak iletişim formları SMTP(mail gönderme) ya da herhangi bir veritabanına verileri kaydederek çalışır fakat bugün veritabanı yerine bir metin dosyası (txt) kullanarak bu işlemi gerçekleştireceğiz.


Diyagramı ile basite indirgeyebiliriz tabii şifrelememizin sebebi şu, mesajları bir txt dosyasına kaydedeceğimiz için bu mesajları sunucu üzerinden başka
kişiler erişebilir bu sebeple dosyada olan mesajları gizlemek için şifreleyeceğiz.

Ekli dosyayı görüntüle 5585

3 adet dosyamız olacak bunlar:
-crypt.php
-index.php
-oku.php

index.php (Kodları) :

PHP:
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>İletişim Formu</title>
<style type="text/css">
.enjoy-css {
  display: inline-block;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  padding: 10px 20px;
  border: 1px solid #b7b7b7;
  -webkit-border-radius: 7px;
  border-radius: 7px;
  font: normal 16px/normal "Times New Roman", Times, serif;
  color: rgba(0,0,0,1);
  -o-text-overflow: clip;
  text-overflow: clip;
  background: rgba(252,252,252,1);
  -webkit-transition: all 200ms cubic-bezier(0.52, -0.005, 0.58, 1);
  -moz-transition: all 200ms cubic-bezier(0.52, -0.005, 0.58, 1);
  -o-transition: all 200ms cubic-bezier(0.52, -0.005, 0.58, 1);
  transition: all 200ms cubic-bezier(0.52, -0.005, 0.58, 1);
}
.enjoy-css2 {
  display: inline-block;
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
  cursor: pointer;
  padding: 10px 20px;
  border: 1px solid #018dc4;
  -webkit-border-radius: 9px;
  border-radius: 9px;
  font: normal 16px/normal "Lucida Sans Unicode", "Lucida Grande", sans-serif;
  color: rgba(255,255,255,0.9);
  -o-text-overflow: clip;
  text-overflow: clip;
  background: #0199d9;
  -webkit-box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) ;
  box-shadow: 2px 2px 2px 0 rgba(0,0,0,0.2) ;
  text-shadow: -1px -1px 0 rgba(15,73,168,0.66) ;
  -webkit-transition: all 300ms cubic-bezier(0.715, 0.48, 0.255, 0.56) 1ms;
  -moz-transition: all 300ms cubic-bezier(0.715, 0.48, 0.255, 0.56) 1ms;
  -o-transition: all 300ms cubic-bezier(0.715, 0.48, 0.255, 0.56) 1ms;
  transition: all 300ms cubic-bezier(0.715, 0.48, 0.255, 0.56) 1ms;
}
    table.customTable {
  width: 100%;
  background-color: #FFFFFF;
  border-collapse: collapse;
  border-width: 1px;
  border-color: #0C7BB3;
  border-style: solid;
  color: #000000;
}

table.customTable td, table.customTable th {
  border-width: 1px;
  border-color: #0C7BB3;
  border-style: solid;
  padding: 12px;
}

table.customTable thead {
  background-color: #25CC41;
}
</style>
</head>
<body>
<form id="ilt" action="#" method="POST">
<p>İsim ve Soyisim: </p><input type="text" name="ad" class="enjoy-css"/>
<p>E-Posta: </p>    <input name="eposta" type="email" class="enjoy-css"/>
<p>Mesajınız: </p> <p> <textarea form="ilt" name="mesaj" rows="10" cols="65"></textarea></p>

<input type="submit" class="enjoy-css2" value="Gönder"/>

</form>
 
    <?php
    /*
    Form Gönderildikten Sonra ~ After Form Posted
    */
    if($_POST){
        if(empty($_POST['ad']) or empty($_POST['eposta']) or empty($_POST['mesaj'])) {
         
        echo "Hiçbir alanı boş bırakmayın.";
         
        }else{
        $ad = htmlentities(urldecode($_POST['ad']));
        $eposta = htmlentities(urldecode($_POST['eposta']));
        $mesaj = htmlentities(urldecode($_POST['mesaj']));
        $tarih = date("d.m.Y G:i:s");  // Zaman
        $cikti1 = ' <tr>  <td>'.$ad.'</td>  <td>'.$eposta.'</td> <td>'.$tarih.'</td> <td>'.$mesaj.'</td> </tr>';
     
   require_once('crypt.php');
     
    cryp14($cikti1);
    $myfile = fopen("table.txt", "a+") or die("!");
         fwrite($myfile,$sifrelenmis);
    fclose($myfile);
        echo "Başarıyla iletildi.";
        }
    }
    ?>
</body>
</html>

index.php dosyamız bu şekilde olacak ve ilk kısımdaki css satırları formla ilgili birkaç tasarım için php satırlarını açıklayacak olursak ilk başta herhangi bir kısmın boş olup olmadığını sorguluyoruz şayet boşsa sistem devam etmiyor ve “Hiçbir alanı boş bırakmayın.” uyarısını veriyor.
Bu kontrolün ardından formdan gelen verileri değişkenlere aktarıyoruz.Bu aktarımdan sonra $cikti1 adlı değişkeni yani txt dosyasına kaydedilecek içeriğin şifrelenmemiş halini üretiyoruz.Ondan sonra cryp14 fonksiyonumuz ile $cikti1 değişkenini şifreleyip $sifrelenmis adlı global değişkene aktarıyoruz ondan sonra ise

$myfile = fopen(“table.txt”, “a+”) or die(“!”);
fwrite($myfile,$sifrelenmis);
fclose($myfile);

bölümü ile txt dosyasını açıyoruz ve $sifrelenmis değişkenini table.txt dosyasına yazdırıyoruz.

crypt.php (Kodları):
PHP:
<!--?php

     function cryp14($degisken){
$degis = array(
"a"  =&gt; "c",
"b"  =&gt; "ç",
"c"  =&gt; "d",
"ç"  =&gt; "e",
"d"  =&gt; "f",
"e"  =&gt; "g",
"f"  =&gt; "ğ",
"g"  =&gt; "h",
"ğ"  =&gt; "ı",
"h"  =&gt; "i",
"ı"  =&gt; "j",
"i"  =&gt; "k",
"j"  =&gt; "l",
"k"  =&gt; "m",
"l"  =&gt; "n",
"m"  =&gt; "o",
"n"  =&gt; "ö",
"o"  =&gt; "p",
"ö"  =&gt; "r",
"p"  =&gt; "s",
"r"  =&gt; "ş",
"s"  =&gt; "t",
"ş"  =&gt; "u",
"t"  =&gt; "ü",
"u"  =&gt; "v",
"ü"  =&gt; "y",
"v"  =&gt; "z",
"y"  =&gt; "a",
"z"  =&gt; "b",
        );
        global $sifrelenmis;
    $sifrelenmis = strtr($degisken, $degis);
        }
     
        ?-->

bu dosyada anlayacağınız gibi şifreleme fonksiyonunu oluşturduk sizde kendinizinkini hazırlarken burdaki harf karşılıklarını değiştirebilirsiniz.

oku.php: (Kodları)
PHP:
<style type="text/css">
  table.customTable {
  width: 100%;
  background-color: #FFFFFF;
  border-collapse: collapse;
  border-width: 1px;
  border-color: #0C7BB3;
  border-style: solid;
  color: #000000;
}

table.customTable td, table.customTable th {
  border-width: 1px;
  border-color: #d1d1d2;
  border-style: solid;
  padding: 12px;
}

table.customTable thead {
  background-color: #86DE95;
}
</style>

<!--?php

$dosya = fopen('table.txt', 'r');
$icerik = fread($dosya, filesize('table.txt'));

     
$degis = array(
"d"  =&gt; "c",
"e"  =&gt; "ç",
"f"  =&gt; "d",
"g"  =&gt; "e",
"ğ"  =&gt; "f",
"h"  =&gt; "g",
"ı"  =&gt; "ğ",
"i"  =&gt; "h",
"j"  =&gt; "ı",
"k"  =&gt; "i",
"l"  =&gt; "j",
"m"  =&gt; "k",
"n"  =&gt; "l",
"o"  =&gt; "m",
"ö"  =&gt; "n",
"p"  =&gt; "o",
"r"  =&gt; "ö",
"s"  =&gt; "p",
"ş"  =&gt; "r",
"t"  =&gt; "s",
"u"  =&gt; "ş",
"ü"  =&gt; "t",
"v"  =&gt; "u",
"y"  =&gt; "ü",
"z"  =&gt; "v",
"a"  =&gt; "y",
"b"  =&gt; "z",
"c"  =&gt; "a",
"ç"  =&gt; "b",
        );
 
    $sonhal = strtr($icerik,$degis);
echo "&lt;table class='customTable'&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;İsim&lt;/th&gt;&lt;th&gt;E-posta&lt;/th&gt;&lt;th&gt;Tarih&lt;/th&gt;&lt;th&gt;Mesaj&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;".$sonhal." &lt;/tbody&gt;&lt;/table&gt;";
fclose($dosya);
?-->

-Bu sistem halihazırda kullanacaksanız şifre anahtarını yani crypt.php ve oku.php dekileri kesinlikle değiştirmenizi öneririm.
-Güvenlik önlemi olarak index.php dosyasındaki 91,92 ve 93.satırlardaki form verilerini değişkene aktarırken birkaç filtrelemeden daha geçirebilirsiniz.
-Bu projedeki table.txt dosyasını siz oluşturmazsanız (boş bir txt dosyası olarak) oku.php de bir hata alabilirsiniz ama index.php den bir adet bir mesaj girişi olduktan sonra otomatik olarak oluşturulacağı için herhangi bir sorun olmaz.

Örnek Sayfalar :
İletişim Formu
İletişim Formu Gelenler
https://bonurtek.com/projeler/iletisimform/table.txt
Eline sağlık
 

SpyTurk 

Senior Full stack developer
majorrr
Mesajlar
379
Credits
2,427

Bu konumuzda PHP ile veritabanı kullanmadan bir iletişim formu yapacağız.Bildiğiniz gibi genel olarak iletişim formları SMTP(mail gönderme) ya da herhangi bir veritabanına verileri kaydederek çalışır fakat bugün veritabanı yerine bir metin dosyası (txt) kullanarak bu işlemi gerçekleştireceğiz.

[Hidden content]
es
 
Mesajlar
315
Credits
1,846

Bu konumuzda PHP ile veritabanı kullanmadan bir iletişim formu yapacağız.Bildiğiniz gibi genel olarak iletişim formları SMTP(mail gönderme) ya da herhangi bir veritabanına verileri kaydederek çalışır fakat bugün veritabanı yerine bir metin dosyası (txt) kullanarak bu işlemi gerçekleştireceğiz.

[Hidden content]
iyi forumlar
 
Mesajlar
70
Credits
400

Bu konumuzda PHP ile veritabanı kullanmadan bir iletişim formu yapacağız.Bildiğiniz gibi genel olarak iletişim formları SMTP(mail gönderme) ya da herhangi bir veritabanına verileri kaydederek çalışır fakat bugün veritabanı yerine bir metin dosyası (txt) kullanarak bu işlemi gerçekleştireceğiz.

[Hidden content]
es reis
 

Bu konuyu görüntüleyen kullanıcılar