fonksiyon etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

8 Haziran 2018 Cuma

PDO Fonksiyon Kullanarak Giriş Sistemi Yapma

PDO Fonksiyon Kullanarak Giriş Sistemi Yapma

PDO ile Giriş sistemi aslında oldukça basit bir işlem. Sadece 50-60 satır kod yazarak giriş sistemi yapabilirsiniz. Ancak bugün göstereceğim işlemle birlikte bu 50-60 satır kodu en az seviyeye çekmeye çalıştım. Bugün Fonksiyon kullanarak nasıl Giriş Sistemi yapılır ondan bahsedicem.

İşlemimize geçmeden önce kullanmış olduğum veritabanı bilgilerini size paylaşıyım siz kendiniz ona göre düzeltirsiniz.

CREATE TABLE `users` (
`user_id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 50 ) NOT NULL ,
`email` VARCHAR( 100 ) NOT NULL ,
`username` VARCHAR( 50 ) NOT NULL ,
`password` VARCHAR( 250 ) NOT NULL
) ENGINE = MYISAM ;

Bunları siz kendi üye tablonuza göre düzenlersiniz. Şimdi ise fonksiyon kodlarımıza bi bakalım.

class DemoLib
{
public function Login($username, $password)
{
try {
$db = DB();
$query = $db->prepare("SELECT user_id FROM users WHERE (username=:username OR email=:username) AND password=:password");
$query->bindParam("username", $username, PDO::PARAM_STR);
$enc_password = hash('sha256', $password);
$query->bindParam("password", $enc_password, PDO::PARAM_STR);
$query->execute();
if ($query->rowCount() > 0) {
$result = $query->fetch(PDO::FETCH_OBJ);
return $result->user_id;
} else {
return false;
}
} catch (PDOException $e) {
exit($e->getMessage());
}
}
}

Fonksiyon kodlarımız bunlardır. Şifremizi sha256 ile şifrelemiş bulunmaktayız siz kendiniz isterseniz bir önceki yazıma bakarak şifreleme yöntemini kendinize göre düzenlersiniz. 

Bu işlemi yaptıktan sonra unutmamamız gereken bir işlem daha var ve oda Veritabanı Bağlantımız.
Hemen o işlemide halledelim.

define('HOST', 'localhost');
define('USER', 'root');
define('PASSWORD', 'root');
define('DATABASE', 'dersler');
function DB()
{
try {
$db = new PDO('mysql:host='.HOST.';dbname='.DATABASE.'', USER, PASSWORD);
return $db;
} catch (PDOException $e) {
return "Error!: " . $e->getMessage();
die();
}
}

Benim klasik kullandığım Config sistemi sizede tavsiye ederim.

Bir sonraki işlemimiz ve son işlemimiz olan Giriş sayfamız. Giriş sayfamızın HTML kodları;

<div class="row">
<div class="col-md-5 well">
<h4>Function ile Giriş Sistemi</h4>
<?php
if ($login_error_message != "") {
echo '<div class="alert alert-danger"><strong>Error: </strong> ' . $login_error_message . '</div>';
}
echo $login_success_message;
?>
<form action="index.php" method="post">
<div class="form-group">
<label for="">Kullanıcı Adı</label><br>
<input type="text" name="username" class="form-control"/>
</div>
<div class="form-group">
<label for="">Şifre</label><br>
<input type="password" name="password" class="form-control"/>
</div>
<div class="form-group"><br>
<input type="submit" name="btnLogin" class="btn btn-primary" value="Giriş Yap"/>
</div>
</form>
</div>
</div>

Bu şekilde olucaktır. PHP kodlarımızı html kodlarımızın hemen üstünde olucak şekilde yapıştırın. PHP kodlarımız ise;

include "config.php";
include "functions.php";

session_start();

$app = new DemoLib();

$login_error_message = '';
$register_error_message = '';
$login_success_message = '';
// check Login request
if (!empty($_POST['btnLogin'])) {

$username = trim($_POST['username']);
$password = trim($_POST['password']);

if ($username == "") {
$login_error_message = 'Kullanıcı adını boş bırakmayın.';
} else if ($password == "") {
$login_error_message = 'Şifreyi boş bırakmayın.';
} else {
$user_id = $app->Login($username, $password);
if($user_id > 0)
{
$_SESSION['user_id'] = $user_id;
$login_success_message = 'Başarılı';
}
else
{
$login_error_message = 'HATA!';
}
}
}
Şeklinde olacaktır. 

İşlemimiz bukadardır arkadaşlar anlamadığınız yer olursa yorumlar kısmında belirtirseniz elimden geldiğince yardımcı olmaya çalışacağım. Kendinize iyi bakın. 

İyi Günler.

28 Nisan 2018 Cumartesi

PHP ile Fonksiyon Kullanmadan Array'daki Maksimum Sayıyı Bulma

PHP ile Fonksiyon Kullanmadan Array'daki Maksimum Sayıyı Bulma




PHP ile herhangi bir fonksiyon kullanmadan Array'dan en yüksek sayıyı bulma nasıl yapılır
onu göstereceğim.

Bu işlem bizim nerede işimize yarıyacak derseniz array ile çektiğiniz verileri sayısal olarak büyükten küçüğe sıralatmak istediğinizde bu işlemi kullanarak yapabilirsiniz.




Şimdi kodlarımıza geçelim. 

$array = array(1,2,3,4,5,6,7,8,9);

$sayi = 0;

foreach($array as $row){
$sayi = $sayi+1;
}

$maxsayi = $array[0];
for($i=1;$i<$sayi;$i++){
if($array[$i] > $maxsayi){
$maxsayi = $array[$i];
}
}

echo 'Maksimum Sayı '.$maxsayi;

Kodumuzun çıktısı ise;

arraydaki en büyük sayımızı bize yazdırdı. İşlemimiz bukadardı siz bunu geliştirebilirsiniz basit bir işlem.

İyi günler.

9 Nisan 2018 Pazartesi

PHP | PDO ile Üye Kayıt Sırasında Türkçe Karakter Kullanımını Engelleme

PHP | PDO ile Üye Kayıt İşlemlerinde Türkçe Karakter Kullanımını Yasaklama




Bildiğiniz üzre üye kayıt sırasında neredeyse birçok scriptde görmüş olduğum sorun Türkçe karakteri kullanarak üye olmaktı. Üye olunurken Türkçe karakterler yani i-ş-ğ-ö-ü-ç gibi karakterler kullanırsak eğer veritabanında bu karakterler değişik bir şekilde gözükecektir veya kayıt olurken boşluk bırakma ve değişik karakterler kullanmak örne ?*-)({}][ gibi karakterlerin kullanılması veritabanında değişik bir yazılar olarak gözükecektir. Türkçe karakteri kullanarak veya boşluk kullanarak üye olanlar çıkış yaptıktan sonra üyeliklerine belkide giriş yapamayacaklar çünkü veritabanı örnek üye kullanıcı adında Ş kullandı diyelim bunu veritabanı değişik bir harf olarak atayacaktır ve üye olan kişi ise bunu bilmeyecektir ve hesabından çıkış yaptığında tekrar giremeyecektir. Bundan dolayı üye kayıt formlarınızda Türkçe karakter kullanımını engellememiz gerekiyor.

Türkçe karakteri PHP ile nasıl engelleriz ona bakalım.

İlk olarak config bağlantınızı yapın ve daha sonra fonksiyon.php adında bir dosya oluşturun ve aşağıdaki kodları içine yazın.

function checkspecial($string) {
    if (preg_match('/[^a-zA-Z]/', $string)) {
        return false;
    } else {
        return true;
    }
}

Yazdıktan sonra kayıt edip çıkın. Ardından üye formunuzun post edildiği yani üye bilgileri girdikten sonra veritabanına yazılacak kısma geçin ve en üst tarafa 

require_once "fonksiyon.php";

yazarak fonksiyon.php dosyamızı çağırmış oluyoruz.

Daha sonra Post kısmınıza geçin. Burda ise

if( !checkspecial($uyekadi) ){
echo 'Geçersiz kelime kullandınız. Lütfen Türkçe Karakter veya Geçersiz kelime kullanmayınız.';
}

Bu kodu yazarak Kullanıcı adında Türkçe karakter veya Geçersiz kelime kullanımını yasaklamış oluyoruz. 

$uyekadi yerine post ile kullanıcı adını çektiğinizi yazın.

İşlemimiz bukadardı arkadaşlar bir sonraki dersde görüşmek üzere. Eğer anlamadığınız bir yer var ise  veya hata yaptığınız bir yer yada yapamadığınız işlemler var ise Facebook adresimden bana ulaşarak yardım isteyebilirsiniz.

İyi günler.

b2b yazılım vois media