PHP Dersleri
PHP Güvenlik Kodu (Captcha) Uygulaması Yapımı
Bu rehberde, PHP kullanarak güvenlik kodu (captcha) uygulaması yaptık. uygulamayı yapmadan önce PHP ile captcha çalışabilmesi için GD kütüphanesinin aktif olması gerekmektedir.
GD kütüphanesini Kontrolü:
<?php
if (extension_loaded("gd")) {
echo "GD kütüphanesinin aktif";
} else {
echo "GD kütüphanesinin aktif değil.";
}
?>
Captcha Kodu:
<?php
session_start();
$image = @imagecreatetruecolor(120, 28) or die("hata oluştu");
$background = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
imagefill($image, 0, 0, $background);
$line_color = imagecolorallocate($image, 0xCC, 0xCC, 0xCC);
$text_color = imagecolorallocate($image, 0x33, 0x33, 0x33);
// rast gele çizgiler oluşturuyoruz
for ($i = 0; $i < 8; $i++) {
imagesetthickness($image, rand(1, 3));
imageline($image, 0, rand(0, 30), 120, rand(0, 30), $line_color);
}
$sayilar = '';
for ($x = 15; $x <= 95; $x += 20) {
$sayilar .= ($sayi = rand(0, 9));
imagechar($image, rand(3, 5), $x, rand(2, 14), $sayi, $text_color);
}
$_SESSION["captcha"] = $sayilar;
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
PHP Dersleri
PHP Veritabanı (PhpMyAdmin) Üye Kayıt İşlemi
Bu rehberde, PHP PDO kullanarak veritabanına üye kayıt işlemi yaptık. ilk olarak index.php dosyası oluşturduk ve form ile üye bilgilerini aldık.
index.php
<?php
require("config.php");
require("functions.php");
if(@$_POST){
$name = security($_POST["name"]);
$username = security($_POST["username"]);
$mail = security($_POST["mail"]);
$pass_one = security($_POST["pass-one"]);
$pass_two = security($_POST["pass-two"]);
if((!$name) or (!$username) or (!$mail) or (!$pass_one)){
echo '<span style="color:red;"> Gerekli alanları doldurmanız gerekiyor </span>';
die();
}
elseif($pass_one != $pass_two){
echo '<span style="color:red;"> Şifreler birbiri ile uyuşmuyor </span>';
die();
}
else{
$user = $db->prepare("SELECT * FROM user WHERE user_username=? or user_mail=?");
$user->execute(array($username, $mail));
$user->fetchAll(PDO::FETCH_ASSOC);
$x = $user->rowCount();
if($x){
echo '<span style="color:red;"> Kullanıcıadı veya mail adresi daha önceden kullanıldı </span>';
die();
}
else{
$password = md5($pass_one);
$register = $db->prepare("INSERT INTO user SET user_fullaname=?, user_username=?, user_mail=?, user_password=?");
$z = $register->execute(array($name, $username, $mail, $password));
if($z){
echo '<span style="color:blue;"> Kullanıcı Kayıt işlemi gerçekleşti </span>';
die();
}
else{
echo '<span style="color:red;"> Kullanıcı kaydı sırasında hata oluştu </span>';
die();
}
}
}
}
?>
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mustafa Salman YT</title>
</head>
<body>
<form action="" method="POST">
<table>
<tr>
<td>İsim Soyisim: </td><td><input type="text" name="name"></td>
</tr>
<tr>
<td>Kullanıcıadı: </td><td><input type="text" name="username"></td>
</tr>
<tr>
<td>E-Posta: </td><td><input type="text" name="mail"></td>
</tr>
<tr>
<td>Şifre: </td><td><input type="password" name="pass-one"></td>
</tr>
<tr>
<td>Şifre (tekrar): </td><td><input type="password" name="pass-two"></td>
</tr>
</table>
<input type="submit" value="Kullanıcıyı Kaydet">
</form>
</body>
</html>
index.php dosyasından alınan verileri veritabanına kaydetmek için veritabanı bağlantısını config.php dosyasının içerisinde yaptık.
config.php
<?php
try{
$host = "localhost";
$dbname = "mustafasalmanyt"; // üyenin kaydedileceği veritabanı ismi
$username = "root"; // veritabanı kullanıcıadı
$password = ""; // veritabanı şifresi
$db = new PDO("mysql:host=$host; dbname=$dbname; chatset=utf8","$username","$password");
}catch(PDOException $message){
echo $message->getMessage();
die();
}
?>
ve son olarak gelen verileri güvenlik önlemi olarak functions.php dosyasında filtreden geçirdik.
functions.php
<?php
function security($text){
if(isset($text)){
$clean = trim($text);
$clean = strip_tags($clean);
$clean = htmlspecialchars($clean);
$clean = str_replace("insert","",$clean);
$clean = str_replace("INSERT","",$clean);
$clean = str_replace("delete","",$clean);
$clean = str_replace("DELETE","",$clean);
$clean = str_replace("drop","",$clean);
$clean = str_replace("DROP","",$clean);
return $clean;
}
}
?>
- PHP Dersleri2 hafta Önce
PHP Veritabanı (PhpMyAdmin) Üye Kayıt İşlemi
- PHP Dersleri2 ay Önce
PHP PDO İle Üye Girişi Ve Çıkış İşlemleri
- server3 ay Önce
Sunucularda Dosya/Dizin Listeleme Nasıl Engellenir
- python4 ay Önce
Python Turtle İle Ay Yıldız Şekli Çizme
- python4 ay Önce
Python For İle Üçgen Piramit Oluşturma
- PHP Dersleri4 ay Önce
PHP İle Sayfayı Geri Yönlendirme
- Blog4 ay Önce
URI İle URL Arasındaki Fark Nedir?
- Google Search Console4 ay Önce
Google Search Console’a Site Haritası Nasıl Eklenir?