İstenmediğinde Çalışmayan PHP Kodu

Bu konuyu okuyanlar

023

Müdavim
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
Admin Paneli Yapacağım Eğer Şifre İstediğim Şifre Değilse Hata Verecek Ama Daha İlk Girişte Hata Veriyor. Ne Yapabilirim?
 

[т]σятυє

Asistan
Katılım
10 Temmuz 2017
Mesajlar
401
Reaksiyon puanı
278
Puanları
63
PHP:
<?php
    $sifrem = "1234sifre";
           if($_POST['sifre] == $sifrem) {
                 header('Location: /panel.php');
              } else {
                echo 'sifre hatali';
            }

Ayrıca ne hatası veriyor?
Undefined index, sql ya da virgül hatası vesaire...
 

hasanmerkit

Asistan
Katılım
1 Haziran 2014
Mesajlar
309
Reaksiyon puanı
513
Puanları
93
Farkında mısınız bilmiyorum ama konunuz cevaplanmaya baya bir kapalı. Yaşadığınız sorunu detaylandırın.
 

CapScroLL

Müdavim
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26
Sorununuzu biraz daha ayrıntılı anlatabilir misiniz? Mesela bahsettiğiniz şifre ne için kullanılıyor, bir üyelik sistemi vs. mi?
 

023

Müdavim
Katılım
26 Mart 2020
Mesajlar
3,968
Çözümler
1
Reaksiyon puanı
4,593
Puanları
113
Yaş
16
Evet biraz anlatamadım. Benim sıkıntım şu; Şifre girme olayını falan yapıyorum. Sorunum şifre yokken şifrenin hatalı gözükmesi. Şifre girmemişken yani form'a değer atmamışken değer "" yani hiç olarak gözüküyor. Sonucunda da daha birşey yazmadan şifre hatalı yazıyor. Teknik birşey yok ama görüntü kirliliği. Onu da şöyle çözdüm; hidden input koydum ve şifre kontrolünü hidden = hidden inputun değeri ise vs. Yani form gönderilmediyse işlem yapmıyor.

Gece telefonu gizlice aldım öyle yazıyorum ve kolum ağrıdı. Bundan sonra klavyeme iyi davranacağım :D
 

hasanmerkit

Asistan
Katılım
1 Haziran 2014
Mesajlar
309
Reaksiyon puanı
513
Puanları
93
Sanırım parola kısmı boş ise işlem yapmasın istiyorsunuz değil mi? Veya farklı hata vermesini.

Mobil olarak girdiğim için kod paylaşmıyorum ama eğer internette "php if input empty" şeklinde bir arama yaparsan daha sağlıklı çözümler bulabilirsin. String değerinin boş olması "empty" olduğu anlamına gelir ve String olması bilgisayarın kullanıcının bir şifre girdiğini sanmasına yol açıyor.
 

CapScroLL

Müdavim
Katılım
22 Ağustos 2014
Mesajlar
3,657
Reaksiyon puanı
2,683
Puanları
113
Yaş
26
Öncelikle inputunuza "required" attribute'unu ekleyerek bu inputun boş bırakılmasını engelleyebilirsiniz, bu input boş iken form submit edilmeye çalışıldığında tarayıcı direkt ilgili inputa highlight atarak kullanıcıyı uyaracaktır.
HTML:
<input type="password" name="sifre" required />

Ayrıca required attribute'unu eklememize rağmen kullanıcı tarayıcı aracılığıyla "Öğeyi Denetle" yaparak inputtaki "required" attribute'unu silebilir bu yüzden sunucu tarafından da kontrol yaptırmamız lazım. Bunu da PHP'nin "empty" fonksiyonu ile gerçekleştirebiliriz.
PHP:
src/islem.php:
<?php
$sifre = strip_tags($_POST['sifre']); //Şifre inputuna girilen değeri süzerek $sifre değişkenin attık.
//Google'da "PHP Form Validation" şeklinde arama yaparsanız
//örnek fonksiyonlara ulaşabilirsiniz, oldukça sağlıklı yöntemler bulunuyor.

if (empty($sifre)) //Eğer şifre değişkeni boş ise
header('Location: ../giris.php?sifre=bos'); //GET "sifre" değişkenine "bos" değerini vererek kullanıcıyı "giris.php" sayfasına gönderdik.
?>

giris.php:
<?php
if(isset($_GET['sifre']) && $_GET['sifre'] == "bos") //Eğer GET "sifre" değişkeni set edilmişse ve bu değer "bos" ise
echo 'Şifre alanı boş bırakılamaz!'; //sayfaya uyarı metni yazdırdık.
?>
 
Son düzenleme:
Üst