php Warning: mysql_real_escape_string hatası
merhabalar… yeni yapmaya çalıştığım oturum kontrol sistemim localde gayet güzel çalışırken sunucuma attığımda hata vermişti.
Komut:
$kullaniciadi = strip_tags(mysql_real_escape_string($_POST['kullaniciadi']));
Hata mesajı da:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@'localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 56
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 56
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user ‘nobody’@'localhost’ (using password: NO) in /home/site/public_html/yonetim.php on line 57
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/site/public_html/yonetim.php on line 57
Çözüm :
mysql_real_escape_string() komutunu mysql bağlantısı yapmadan kullanmaya çalışmışım. mysql bağlantı komutlarımı bu satırların öncesine çekince bir sorun kalmadı.
mysql_real_escape_string() nedir?
Bizi sql saldırılarından korumaya yarayan bir komuttur. Örneğin kullanıcı adı şifre sorgulayacağımız yerde aşağıdaki gibi bir sorgu kullanırız:
select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’
Şimdi adamın biri gelip kullancı adı ve şifreye rastgele bişiler yazdıktan sonra
or ’1=1′ yazarsa ne olur ? bakalım:
select * from oturum where kullaniciadi=’$kullaniciadi’ and sifre=’$sifre’ or ’1=1′
Sonuç 1 – 1 eşit olduğuna göre kullanıcı adı ve şifreyi bilmeye gerek kalmadan şifre atlanmış olur.
Related posts
- WordPress Slayt Eklentisi
- PHP tek mi çift mi?
- Php ile Oturum Yönetimi
- StatPress Reloaded Eklentisi
- Yeniden Resim Boyutlandırıcı 1.0
- Recent Photos
- WordPress Google Map Eklentisi
- WordPress Database Backup Eklentisi
- WordPress OggChat Live Chat Eklentisi
- Weather in Turkey Eklentisi
Merhaba.
Bir web sayfamda üstteki gibi bir problem mevcut. Yalnız php bilgim yok dolayısıyla çözümü yapamadım.
Yardımcı olurmusunuz?
mysql_real_escape_string() bu kod nerede geçer, nasıl yapabiliriz?
Şimdiden çok teşekkürler.
@Mehmet
aslında sorunuzun içinde cevap gizli… mysql_real_escape_string komutunun ctrl-f ile arattırıp bulacaksınız…. ancak o satırı silmek; hacklenmek gibi başka problemlere sebep olabilir…. o yüzden ilk önce veritabanına bağlantı gerçekleş mi? diye kontrol etmelisiniz… bence sorununuzun cevabı bağlantı hatasında yatıyor…
Allaha emanet
Cevap için teşekkürler.
Yalnız o komuttan dolayı kaynaklanmıyormuş. Bütün dosyaları tek tek açarak kontrol ettim hiç birinde geçmiyor.
Database bilgileri doğru ki zaten doğru olmasa kurulumu geçemezdim. Config dosyalarındada ayarlar doğru hala problemi anlamış değilim.
Server ile ilgili bir düzenleme vb. şeylerden dolayı olabilir mi? Linux sunucum var.
@Mehmet
mysql bağlantı komutu mysql_real_escape_string komutundan önce kullanılmalıdır…
sırasına dikkat edin… şimdilik diyebileceklerim bunlar…
iyi günler
Çözemedim ama neyse yinede ilgilendiğiniz için teşekkür ederim.