

PHP Sorun (Warning: Mysql_Num_Rows() Expects Parameter)
-
hocalar yeni kurdugum bi scriptte şöyle bir sorun alıyorum yardımcı olabilirmisiniz
Warning: mysql_num_rows() [function.mysql-num-rows]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/Chicago' for 'CDT/-5.0/DST' instead in /home/serhat/public_html/benimdomeyinim.com/env/login.php on line 65
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/serhat/public_html/benimdomeyinim.com/env/login.php on line 65login php deki 65. satırda da şu var;
if(mysql_num_rows($query_user) > 0)
-
hocam o hata değil warning.1 parametre daha tanımlanabilir ama tanımlamamışsın diyor.
-
login.php içine;
date_default_timezone_set('Europe/İstanbul');
yaz hocam.
-
eywallah hocalar,
configuration php de bunlar var, login php de mi eklemedigim değer var acaba?
<?php /* ---------------------------------------------- MYSQL DATABASE SETTINGS ---------------------------------------------- */ $db_host = 'localhost'; $db_name = 'leleyy'; $db_user_name = 'lololoyy'; $db_password = 'leleleyy'; $prefix = 'eee_'; $url = 'http://domainim.com/envr'; $language = 'turkish.php'; ?>
date_default_timezone_set('Europe/İstanbul'); u nereye eklediysem olmadı bi alta bi üste yaptım beceremedim sanırım.
bu da login.php
<?php session_start(); ?> <?php ob_start(); ?> <?php include_once('configuration.php'); include_once('include/connect.php'); include_once('include/global.php'); include_once('include/language.php'); ?> <!DOCTYPE html> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> <head> <meta charset="utf-8" /> <!-- Set the viewport width to device width for mobile --> <meta name="viewport" content="width=device-width" /> <title><?php config('name'); ?></title> <!-- Included CSS Files --> <link rel="stylesheet" href="<?php url('theme'); ?>/stylesheets/foundation.css"> <link rel="stylesheet" href="<?php url('theme'); ?>/stylesheets/app.css"> <!-- Included JS Files (Compressed) --> <script src="<?php url('theme'); ?>/javascripts/modernizr.foundation.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.js"></script> <script src="<?php url('theme'); ?>/javascripts/foundation.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.navigation.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.reveal.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.orbit.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.buttons.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.tabs.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.forms.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.tooltips.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.accordion.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.placeholder.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.foundation.alerts.js"></script> <script src="<?php url('theme'); ?>/javascripts/jquery.validate.js"></script> <!-- Initialize JS Plugins --> <script src="<?php url('theme'); ?>/javascripts/app.js"></script> <!-- IE Fix for HTML5 Tags --> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> </head> <body> <p></p> <div class="row"> <div class="five columns end"> <?php if(isset($_POST['btn_submit'])) { $user_name = safety_filter($_POST['user_name']); $password = md5(safety_filter($_POST['password'])); $query_user = mysql_query("SELECT * FROM $database->users WHERE user_name='$user_name' AND password='$password' AND status='publish'"); if(mysql_num_rows($query_user) > 0) { while($list_user = mysql_fetch_assoc($query_user)) { $user_id = $list_user['id']; } $management_login = true; $user_id = $user_id; $_SESSION["management_login"] = true; $_SESSION['user_id'] = $user_id; echo '<script> window.location = "index.php"; </script>'; } else { alert_box('alert', get_lang('Username or password is incorrect.')); } } ?> </div> </div> <!-- /.row --> <div class="row"> <div class="five columns end"> <form name="form_login" id="form_login" action="" method="POST"> <fieldset> <legend><?php lang('Login Form'); ?></legend> <label for="user_name"><?php lang('Login Name'); ?>: admin</label> <input type="text" name="user_name" id="user_name" class="required" minlength="3" maxlength="20" value="admin" /> <label for="password"><?php lang('Password'); ?>: 123456</label> <input type="password" name="password" id="password" class="required" minlength="3" maxlength="20" value="123456" /> <input type="submit" name="btn_submit" id="btn_submit" class="button" value="<?php lang('Login'); ?>" /> <p></p> </fieldset> </form> </div> <!-- /.twelve columns --> </div> <!-- /.row --> -
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/serhat/public_html/benimdomeyinim.com/env/login.php on line 65
Sorgun geçerli bir kaynak döndürememiş. Sanırım sorguda hata oldu ve false değerini döndürdü. Parametre olarak geçirdiğin değişkenin değerini ve türünü bir kontrol et. Sonra sorguna bir göz at.
-
Veritabanında users tablosunda üye varmı kontrol et. Yoksa ekle. Eğer sistem normal işliyor bir sorun yok sadece hata veriyorsa aşağıdaki şekilde kullan;
Maresca tarafından 04/May/13 11:26 tarihinde düzenlenmiştirif(@mysql_num_rows($query_user) > 0) { while($list_user = @mysql_fetch_assoc($query_user)) { $user_id = $list_user['id']; } $management_login = true; $user_id = $user_id; $_SESSION["management_login"] = true; $_SESSION['user_id'] = $user_id; echo '<script> window.location = "index.php"; </script>'; } -
Maresca bunu yazdı
Veritabanında users tablosunda üye varmı kontrol et. Yoksa ekle. Eğer sistem normal işliyor bir sorun yok sadece hata veriyorsa aşağıdaki şekilde kullan;
if(@mysql_num_rows($query_user) > 0) { while($list_user = @mysql_fetch_assoc($query_user)) { $user_id = $list_user['id']; } $management_login = true; $user_id = $user_id; $_SESSION["management_login"] = true; $_SESSION['user_id'] = $user_id; echo ' // '; }ilk kez kuruyorum, bu kodu ekledim hata vermiyor artık ama admin 123456 ile de girmiyor. aşağıdki hatayı veriyor. veritabanı oluştururken oluşturugum ve yetkilendirdiğim user den bahsediyorsan yaptım hocam..
Username or password is incorrect. -
S-E-R-H-A-T bunu yazdıMaresca bunu yazdı
Veritabanında users tablosunda üye varmı kontrol et. Yoksa ekle. Eğer sistem normal işliyor bir sorun yok sadece hata veriyorsa aşağıdaki şekilde kullan;
if(@mysql_num_rows($query_user) > 0) { while($list_user = @mysql_fetch_assoc($query_user)) { $user_id = $list_user['id']; } $management_login = true; $user_id = $user_id; $_SESSION["management_login"] = true; $_SESSION['user_id'] = $user_id; echo ' // <!C .location = "index.php"; // > '; }ilk kez kuruyorum, bu kodu ekledim hata vermiyor artık ama admin 123456 ile de girmiyor. aşağıdki hatayı veriyor. veritabanı oluştururken oluşturugum ve yetkilendirdiğim user den bahsediyorsan yaptım hocam..
Username or password is incorrect.teamviewer var ise pmle id ve şifreni bilgisayarına gireyim beraber inceleyelim bi
-
Kodlara bakmadim fakat veritabaninda sifren md5 olarak saklaniyor olabilir. Sen manuel olarak 12345 girince haliyle kabul etmez. Ona karsilik gelen md5 uretip sifre alanina o md5 i kaydet
edit: simdi baktim, db ye elle veri giriyorsan sifre alanindaki sifreyi md5 olarak girmen lazim. Cunku post dan verileri gonderirken adamin girmis oldugu veriyi md5 e cevirip yolluyorsun.
Castaway tarafından 04/May/13 12:04 tarihinde düzenlenmiştir -
062 $password = md5(safety_filter($_POST['password']));bunu
062 $password = safety_filter($_POST['password']);
böyle bir denesene
birde
$user_id = $user_id;
bu satır ne işe yarıyor anlamadım :| herhangibir şey söylemiyorum php çok bilmediğimden soruyorum
birde şuna bak
kullanıcıların olduğu tablo users sa böyle yap değil se tablonun adını yaz
$sql ="SELECT * FROM `users` WHERE `user_name`='$user_name' AND `password`='$password' AND `status`=\'publish\'"
birde burada
if(mysql_num_rows($query_user) > 0)
==1 şeklinde yapsakk daha mantıklı bence
olduda adam ot yaptı bok yapti bir şekilde orada sonuç 1 tane değil 500 tane çıktı buda istenmeyen bir sonuç
if(mysql_num_rows($query_user) == 1) daha mantıklı geliyor bana çünkü username-paswordd-status bizim değerlerin karşılanacağı 1 tane durum olmalı aksi hali bizim için bir sıkıntı
bu fikrim dediğim gibi kursum devam ediyor tam bilmiyorum php o yüzden soruyorum söylüyorum
wert tarafından 04/May/13 16:48 tarihinde düzenlenmiştir