Php Güvenlik Kodu Kontrolü
-
Selam. Siteye Form ekledim şöyle bir işlem yapmak istiyorum. Formun altına resimli güvenlik kodu ekleyip o kod doğruysa formdaki verileri db kaydetsin yanlışsa girilen kod yanlış diye bir cevap yamasını istiyorum. Bunu bilale anlatır gibi analatabilecek var mı?
Googleye sordum fakat PHP ile ilgili çok bilgim olmadığından birşey yapamadım. Örnek Form:
http://zulfumehmet.tk/deney-detay-Agrega-Elek-Analizi
bu formdan ajax ile siparis.php dosyasından verileri veritabanına kaydedip bana mail göndermesini sağlıyorum.
Siparis.php içinde bulunan kodlar
<?php include("boynici/system/ayar.php"); ?> <?php include("boynici/system/fonksiyon.php"); ?> <?php $isim = p('isim'); $email = p('email'); $konu = p('konu'); $mesaj = p('mesaj'); $deney = p('deney'); $telefon = p('telefon'); $ip = ip(); $t = date("Y-m-d H:i:s"); $tarih = tarih($t); if(empty($isim) || empty($email) || empty($konu) || empty($mesaj)){ echo '<div style="background-color:red"><span style="color: white">Boş Alan Bıraktınız. Lütfen Doldurunuz!</span></div>'; }else{ $iletisim = Sorgu("INSERT INTO siparis SET isim = '$isim', email = '$email', konu = '$konu', deney = '$deney', telefon = '$telefon', ip = '$ip', tarih = '$tarih', mesaj = '$mesaj'"); require("boynici/system/class.phpmailer.php"); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPDebug = 1; // Hata ayıklama değişkeni: 1 = hata ve mesaj gösterir, 2 = sadece mesaj gösterir $mail->SMTPAuth = true; //SMTP doğrulama olmalı ve bu değer değişmemeli $mail->SMTPSecure = 'ssl'; // Normal bağlantı için tls , güvenli bağlantı için ssl yazın $mail->Host = "orfe.alastyr.com"; // Mail sunucusunun adresi (IP de olabilir) $mail->Port = 465; // Normal bağlantı için 587, güvenli bağlantı için 465 yazın $mail->IsHTML(true); $mail->SetLanguage("tr", "phpmailer/language"); $mail->CharSet ="utf-8"; $mail->Username = "info@zulfumehmet.tk"; // Gönderici adresiniz (e-posta adresiniz) $mail->Password = "Mehmet_2133"; // Mail adresimizin sifresi $mail->SetFrom("info@zulfumehmet.tk", "Zülfü Mehmet ÖZÇİFÇİ"); // Mail atıldığında gorulecek isim ve email $mail->AddAddress("info@zulfumehmet.com"); // Mailin gönderileceği alıcı adres $mail->Subject = "Yeni Sipariş"; // Email konu başlığı $mail->Body = "Yönetim panelini kontrol ediniz yeni bir deney siparişi var.<br>-----------------------------<br>Adı Soyadı : " .$isim. "<br>Telefon Numarası : " .$telefon. "<br>E-Mail Adress : " .$email. "<br>Deney Adı : " .$deney. "<br>Mesaj : " .$mesaj; // Mailin içeriği if(!$mail->Send()) { echo "Email Gönderim Hatasi: ".$mail->ErrorInfo; } else { echo "<div style='background-color:Green'><span style='color: white'>;Deney talebiniz bize iletilmiştir. "; } if($iletisim){ echo " En kısa sürede size geri dönüş sağlanacaktı.</span>"; }else{ echo 'Hata oluştu.Tekrar deneyiniz.'; } } ?>
Güvelik kodu için internette bulunan dökümanlara baktım kod oluşturabiliyorum fakat kontrolden geçiremiyorum. Yardımcı olursanız memnun olurum.
Kolay gelsin.
-
hocam, Google reCaptcha diye aratırsan google hazırlamış olduğu sistemi rahatlıkla kullanabilirsin.
-
EmQceR bunu yazdı
hocam, Google reCaptcha diye aratırsan google hazırlamış olduğu sistemi rahatlıkla kullanabilirsin.
Onu nasıl entegre edebiliyorum
-
abı kasmaasn codeigniter kursan onunla cozsen kutuphanesı fılan sahane amk bunca zaman nasıl bulasmadım sasıyorum :)
-
hipokondriyak bunu yazdı
abı kasmaasn codeigniter kursan onunla cozsen kutuphanesı fılan sahane amk bunca zaman nasıl bulasmadım sasıyorum :)
Abi nasıl yapacağımı söyle bakayım hemen
-
Hocam ister framework kullan ister core ama gorunumle kodu bir arada tutma.
Ayir ikisini. Sonra MVC yapisina bir goz at.
Onerim.framework kullanman cunku bir toplulugun sgalayacagi guvenligi yalniz saglamak daha zordur. İlla gozden kacan olur.
Ufak projeler icin codeigniter, daga buyukleri icin laravel kullanabilirsin.
Node.js te kullanabilirsin bu arada
-
adam php ile ilgili çok bilgim yok demiş, adama framework kullan demişsiniz.
-
-
x-files bunu yazdıhipokondriyak bunu yazdı
abı kasmaasn codeigniter kursan onunla cozsen kutuphanesı fılan sahane amk bunca zaman nasıl bulasmadım sasıyorum :)
Abi nasıl yapacağımı söyle bakayım hemen
https://codeigniter.com/user_guide/
Form yaz abi
Birde
Captcha yaz halledersin diye dusunuyrm.olmadi youtube yaz basit birsry
-
hipokondriyak bunu yazdıx-files bunu yazdıhipokondriyak bunu yazdı
abı kasmaasn codeigniter kursan onunla cozsen kutuphanesı fılan sahane amk bunca zaman nasıl bulasmadım sasıyorum :)
Abi nasıl yapacağımı söyle bakayım hemen
https://codeigniter.com/user_guide/
Form yaz abi
Birde
Captcha yaz halledersin diye dusunuyrm.olmadi youtube yaz basit birsry
Üstad baktım kendimi çıplak gibi hissettim :D
-
Tmm hallettim
Güvelik kodu üreten kısım. Not:session_start(); kullanıyorsanız burda kulllanmanıza gerek yok.
Güvenlik Kodu<?php session_start(); function generateCode($characters=4) { /* list all possible characters, similar looking characters(1,i,l) and vowels have been removed to avoid real words */ $possible = '23456789bcdghjkmnpqrstvwyz'; $code = ''; for ($i=0;$i < $characters;$i++) { $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1); } return $code; } function create($characters=4,$width='120',$height='35') { /*get random string */ $code = generateCode($characters); $font = 'arial.ttf'; // kendi yazi fontunuzu secebilirsiniz. /* font size will be 75% of the image height */ $font_size = $height * 0.75; $image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream'); /* set the colours */ $background_color = imagecolorallocate($image, 220, 220, 220); $text_color = imagecolorallocate($image, 10, 30, 80); $noise_color = imagecolorallocate($image, 150, 180, 220); /* generate random dots in background */ for( $i=0; $i<($width*$height)/3; $i++ ) { imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color); } /* generate random lines in background */ for( $i=0; $i<($width*$height)/150; $i++ ) { imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color); } /* create textbox and add text */ $textbox = imagettfbbox($font_size, 0, $font, $code) or die('Error in imagettfbbox function'); $x = ($width - $textbox[4])/2; $y = ($height - $textbox[5])/2; $y -= 5; imagettftext($image, $font_size, 0, $x, $y, $text_color, $font , $code) or die('Error in imagettftext function'); /* output captcha image to browser */ header('Content-Type: image/jpeg'); imagejpeg($image); imagedestroy($image); /*put string in session*/ $_SESSION['alam_captcha']=$code; } /*call create() function to generate captcha*/ create(); ?>
Burda güvenlik kodumuzu ürettik. Şimdi form kısmına bakalım.
Kod üreten sayfayı resim gibi siteye ekliyoruz. sonra bir kutucuk oluşturup id ve nameye gokod deyip geçiyoruz.
<div class="form-sag"><span>Güvenlik Kodu</span> <div class="codem"><img src="guvenlikkod.php" /></div> <div class="g-input"> <input type="text" name="gokod" id="gokod">
Şimdi sipariş kısmına bakalım
if($_POST){ //first of all check captcha if($_POST['gokod']==$_SESSION['alam_captcha']){ buraya güvenlik kodu doğruysa çalışmasını istediğimiz kodları yazıyoruz } else{ echo '<div style="background-color:red"><span style="color: white">Güvenlik kodunu yanlış girdiniz Lütfen kontrol ediniz!</span></div>'; // kod yanlışsa bu mesaj çıkacak. } }
Hepi topu bu kadar. TBT bunu bilen ve yardımcı olmayan arkadaşlara teşekkür ederim.