İstenmediğinde Çalışmayan PHP Kodu

  • Konuyu başlatan Konuyu başlatan 023
  • Başlangıç tarihi Başlangıç tarihi

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,960
Çözümler
1
Reaksiyon puanı
4,598
Puanları
358
Yaş
17
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
381
Reaksiyon puanı
262
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
221
Reaksiyon puanı
212
Puanları
93
Farkında mısınız bilmiyorum ama konunuz cevaplanmaya baya bir kapalı. Yaşadığınız sorunu detaylandırın.
 

CapScroLL

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

023

Profesör
Katılım
26 Mart 2020
Mesajlar
3,960
Çözümler
1
Reaksiyon puanı
4,598
Puanları
358
Yaş
17
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
221
Reaksiyon puanı
212
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

Profesör
Katılım
22 Ağustos 2014
Mesajlar
3,656
Reaksiyon puanı
2,683
Puanları
358
Yaş
28
Ö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