Admin Paneli Yapacağım Eğer Şifre İstediğim Şifre Değilse Hata Verecek Ama Daha İlk Girişte Hata Veriyor. Ne Yapabilirim?
İstenmediğinde Çalışmayan PHP Kodu
Cevaplar
<?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...
Farkında mısınız bilmiyorum ama konunuz cevaplanmaya baya bir kapalı. Yaşadığınız sorunu detaylandırın.
Sorununuzu biraz daha ayrıntılı anlatabilir misiniz? Mesela bahsettiğiniz şifre ne için kullanılıyor, bir üyelik sistemi vs. mi?
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
Gece telefonu gizlice aldım öyle yazıyorum ve kolum ağrıdı. Bundan sonra klavyeme iyi davranacağım :D
Ben yine bir sey anlamadim.
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.
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.
Ö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.
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.
<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.
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.
?>düzenlendi