SQL Warning:

SuCcEsS

Registered
Дава ми тази грешка когато се опитам да вляза (да се логна)
Код:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/srednovekovie.awardspace.biz/ip.php on line 8
Your IP (10.10.22.66, 10.10.1.1) isnt allowed to connect!

ip.php
Код:
<?php



function check_allowed_ip($ip_to_check)
{
$query=mysql_query("SELECT ip from IP where IP='$ip_to_check'");
$result = mysql_num_rows($query);
if(!$result){print "Your IP ($ip_to_check) isnt allowed to connect!"; die();}
}

check_allowed_ip($ip);
?>

SQL таблица:
Код:
CREATE TABLE `ip` (
  `IP` varchar(20) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;



INSERT INTO `ip` VALUES ('172.16.1.48');
 
Значи първото, което не ми стана ясно е как така нямаш колона id. Ако ще имаш само един ред става ама не и за повече. Ако пък искаш да имаш само един ред значи този код за проверка става така:

Код:
<?php



function check_allowed_ip($ip_to_check)
{
$userip = $_SERVER['REMOTE_ADDR'];

$query = mysql_query("SELECT ip from IP");
$db = mysql_fetch_array($query);

$ip = $db[ip];

if($ip != $userip){print "Your IP ($ip_to_check) isnt allowed to connect!"; die();}
}

check_allowed_ip($ip);
?>
 
Може би нямаш връзка с базата данни?
Код:
<?php
$host="***"; 
$dbusername="***"; 
$dbpassword="***"; 
$db="***"; 
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword") or die (""); 
mysql_select_db("$db", $db_conn) or die (""); 
function check_allowed_ip($ip_to_check)
{
$query=mysql_query("SELECT ip from ip where ip='$ip_to_check'");
$result = mysql_num_rows($query);
if(!$result==0){print "Your IP ($ip_to_check) isnt allowed to connect!"; die();}
}
$ip = $_SERVER['REMOTE_ADDR'];
$ip = check_allowed_ip($ip);
?>
 
Galli каза:
Може би нямаш връзка с базата данни?
Код:
<?php
$host="***"; 
$dbusername="***"; 
$dbpassword="***"; 
$db="***"; 
$db_conn = mysql_connect("$host", "$dbusername", "$dbpassword") or die (""); 
mysql_select_db("$db", $db_conn) or die (""); 
function check_allowed_ip($ip_to_check)
{
$query=mysql_query("SELECT ip from ip where ip='$ip_to_check'");
$result = mysql_num_rows($query);
if(!$result==0){print "Your IP ($ip_to_check) isnt allowed to connect!"; die();}
}
$ip = $_SERVER['REMOTE_ADDR'];
$ip = check_allowed_ip($ip);
?>

мерси човек по твоя начин стана но пък имам още някоя друга грешка за оправяне :)
Код:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/srednovekovie.awardspace.biz/reg.php:50) in /home/www/srednovekovie.awardspace.biz/reg.php on line 184

reg.php редове 171-199
Код:
<table class="g" align="center" border="1" cellpadding="4" cellspacing="1" width="500" bgcolor=black bordercolor=#333333 style="filter:alpha(Opacity=80);">
        <tbody><tr class="bg6">
                <td>

        <table border="0" cellpadding="5" cellspacing="0" width="100%">
              <? 

    $QUERY = mysql_query("SELECT id FROM users WHERE login='$login'");
    $CHECK = mysql_fetch_array($QUERY);
       if($CHECK){
?>Влез <b><? print $login; ?></b> уж занят! <a href="javascript:history.back(-1)">Назад</a><br><?
        die();}
      
 check_length($login,'login');  check_chars($login,'login'); setCookie("reg_login",$login,time()+3600);?>
                    <tbody><tr>
                        <td colspan="3" align="center">
                                <br>
                                
                                                        </td>
                </tr>
                    <tr>
                <td width="166" align="right"><span class="style6"><span class="style7">*</span>Парола:</span></td>
                <td width="564">
		<input type="password" name="password" class="field" size="30" maxlength="30" style="filter:alpha(Opacity=80);">
	</td>
              </tr>
                </tr>
                    <tr>
                <td width="166" align="right"><span class="style6"><span class="style7">*</span>Повтори парола:</span></td>

ето и другата
Код:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/srednovekovie.awardspace.biz/reg.php:50) in /home/www/srednovekovie.awardspace.biz/reg.php on line 277

reg.php редове 255-285
Код:
<?
if($step == "3")
{


$password = $_POST["password"];
$password_confirm = $_POST["password_confirm"];


?>
<FORM NAME="registration" action="reg.php?step=4" CLASS="norm" METHOD="POST">



<table class="g" align="center" border="1" cellpadding="4" cellspacing="1" width="500" bgcolor=black bordercolor=#333333 style="filter:alpha(Opacity=80);">
        <tbody><tr class="bg6">
                <td>

        <table border="0" cellpadding="5" cellspacing="0" width="100%">
              <? if($password != $password_confirm){echo '?????? ?? ?????????! <a href="javascript:history.back(-1)">?????</a><br>'; die();} ?>
              <?  check_length($password,'password'); ?>
              <?  check_length($password_confirm,'password_confirm'); 
 check_chars($password,'password'); setCookie("reg_password",$password,time()+3600);?>
                    <tbody><tr>
                        <td colspan="3" align="center">
                                <br>
                                
                                                        </td>
                </tr>
                    <tr>
                <td width="166" align="right"><span class="style6"><span class="style7">*</span>Email:</span></td>
 
Грешката "Warning: Cannot modify header information - headers already sent by ..." се появява при ползване на header() или подобна функция (setcookie()) на място, различно от началото. Т.е. не можеш да променяш садържанието на файла, преди да си изпратил хедърите, в случая съдържанието вече е опредлено (използвал си echo някъде най-вероятно) а ти изпращаш нова header information, което не е възможно.
 
при мене си работеше като сложих най отгоре това
$base_name="localhost";
$base_user="root";
$base_pass="";
$db_name="test";
и изтрих онова
Код:
include "conf.cfg";
мога да ти направя screen
 

Back
Горе