Brauche hilfe PHP IP bann

12/02/2013 16:01 cedman#1
Huhu ich brauche hilfe irgendwas stimmt hier im code nicht ich habe nen verleihscript für ts3 server pro email/IP soll nur ein server vergeben werden doch dies funktioniert nicht der code ist

PHP Code:
 <?php
temp_header
("Server leihen");
$vergeben mysql_num_rows(mysql_query("SELECT * FROM leih"));
if(
$vergeben $allg['max_server'] OR $vergeben == $allg['max_server'])
{
$query=mysql_query('SELECT * FROM leih ORDER BY ende DESC');
$row=mysql_fetch_array($query);
echo 
'<h4 class="alert_info">Leider ist die Zahl zu leihender Server auf '.$allg['max_server'].' beschränkt, dieses Limit wurde bereits erreicht. Versuche es später erneut!';
echo 
"<br />Nächste Server ist frei am ".date('d.n.Y'$row['ende'])." um ".date('H:i:s'$row['ende'])."</h4>";
}else{

$abf5 "SELECT * FROM leih";
$erg5 mysql_query($abf5);
while(
$rowip mysql_fetch_object($erg5))
   {
if(
$rowip->userip == $_SERVER['REMOTE_ADDR']){ $ipchecktrue "yes"; }else{ $ipchecktrue "no"; }
   }
if(
$ipchecktrue == "yes")
{
echo 
'<h4 class="alert_error">You have already borrowed a server. Wait until it expires or Kille it immediately!</h4>';
}else{
?>

kann wer helfen würde mich echt freuen wenns wer hinbekommt
12/02/2013 21:24 Mikesch01#2
Was heißt genau "geht nicht"? Fehlermeldungen? Überhaupt Meldungen?
12/02/2013 21:36 xsrf#3
Hatte jetzt leider keine Zeit deinen Code durchzusehen aber habe noch in einem alten Projekt was gefunden auf die
schnelle..

Ich weiß das der nicht gerade clean ist aber soll ja auch nur als Inspiration fungieren.

PHP Code:
function setCounter()
{
global 
$db;
$stmt $db->prepare('SELECT `ip` FROM `visited` WHERE `ip` = ?');
if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
$stmt->bind_param('s'$_SERVER['REMOTE_ADDR']);
$stmt->execute();
$stmt->store_result();
    if(
$stmt->num_rows<=0)
    {
        
$date date('d.m.y');
        
$ip $_SERVER['REMOTE_ADDR'];
        
$wstmt $db->prepare('INSERT INTO `visited` (`ip`, `date`) VALUES (?, ?)');
        if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
        
$wstmt->bind_param('ss'$ip$date);
        
$wstmt->execute();
        
$wstmt null;
        
        
$sstmt $db->prepare('SELECT `id` FROM `count`');
        if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
        
$sstmt->execute();
        
$sstmt->bind_result($countID);
        
$sstmt->store_result();
        while (
$sstmt->fetch()){}
            if(
$sstmt->num_rows>0)
            {
                
$ssstmt $db->prepare('SELECT `count` FROM `count` WHERE `id` = \'1\'');
                if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
                
$ssstmt->execute();
                
$ssstmt->bind_result($count);
                
$ssstmt->store_result();
                while (
$ssstmt->fetch()){}
                
$thisCount $count 1;
                
                
$utmt $db->prepare('UPDATE `count` SET `count` = ? WHERE `id` = \'1\'');
                if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
                
$utmt->bind_param('i'$thisCount);
                
$utmt->execute();
                
$utmt null;
            }
            else
            {
                
$value 1;
                
$wwstmt $db->prepare('INSERT INTO `count` (`count`) VALUES (?)');
                if(
$db->errno>0){ echo $db->errno.':'.$db->error; }
                
$wwstmt->bind_param('i'$value);
                
$wwstmt->execute();
                
$wwstmt null;
            }
    }

12/02/2013 22:13 [iSeven]#4
Beim drüber schauen ist mir aufgefallen, dass ein paar klammern nicht richtig gesetzt waren, dies habe ich nun behoben, mehr habe ich aber nicht gemacht.

Grüße
Seven

PHP Code:
<?php 
temp_header
("Server leihen"); 
$vergeben mysql_num_rows(mysql_query("SELECT * FROM leih")); 

if(
$vergeben $allg['max_server'] OR $vergeben == $allg['max_server']) 
    { 
        
$query=mysql_query('SELECT * FROM leih ORDER BY ende DESC'); 
        
$row=mysql_fetch_array($query); 
        echo 
'<h4 class="alert_info">Leider ist die Zahl zu leihender Server auf '.$allg['max_server'].' beschränkt, dieses Limit wurde bereits erreicht. Versuche es später erneut!'
        echo 
"<br />Nächste Server ist frei am ".date('d.n.Y'$row['ende'])." um ".date('H:i:s'$row['ende'])."</h4>"
    }
    else
    { 
    
    
$abf5 "SELECT * FROM leih"
    
$erg5 mysql_query($abf5); 
    
        while(
$rowip mysql_fetch_object($erg5)) 
           { 
            if(
$rowip->userip == $_SERVER['REMOTE_ADDR'])
                { 
                    
$ipchecktrue "yes"
                }
                else
                { 
                
$ipchecktrue "no"
                } 
           }
           
if(
$ipchecktrue == "yes"
    { 
        echo 
'<h4 class="alert_error">You have already borrowed a server. Wait until it expires or Kille it immediately!</h4>'
    } 
    else 
    { 
        echo 
'';
    }
}
?>
12/02/2013 23:10 cedman#5
habs probiert funktioniert auch nicht es kommt keine fehler meldung aber die seite bleibt dann komplett weiß.
12/02/2013 23:27 Mikesch01#6
Wenn die Seite weiss ist, gibt es einen Fehler, aber dieser wird nicht ausgegeben. Schalte php errors ein (wenn du xampp oder ähnliche eigene Webserver benutzt).
12/03/2013 15:36 cedman#7
mit den ersten code von mir gibt es keinen error es funktioniert zwar alles auser das er die ip danach sperrt wenn ich aber jetzt zum beispiel mein code ändere von

if($rowip->userip == $_SERVER['REMOTE_ADDR']){ $ipchecktrue = "yes"; }else{ $ipchecktrue = "no"; }

zu
if($rowip->userip == $_SERVER['REMOTE_ADDR']){ $ipchecktrue = "no"; }else{ $ipchecktrue = "yes"; }

dann steht da die ganze zeit auf der seite
You have already borrowed a server. Wait until it expires or Kille it immediately!

so und ich wollte das es nach der bestellung erst erscheinen tut und das ist das problem aber ansonsten sind die codes richtig error meldung ist an aber es kommt keiner
12/03/2013 15:49 [iSeven]#8
Quote:
Originally Posted by cedman View Post
habs probiert funktioniert auch nicht es kommt keine fehler meldung aber die seite bleibt dann komplett weiß.
Wenn du nur eine weiße Seite vorfindest und dort keine Fehlermeldung erscheint, stelle sicher, dass du PHP-Error eingeschaltet hast.

Andererseits gibt es die möglichkeit, dass das Script sich in diesem Bereich befindet :

if($ipchecktrue == "yes")
{
echo '<h4 class="alert_error">You have already borrowed a server. Wait until it expires or Kille it immediately!</h4>';
}
else
{
echo '';
}

Dies kannst du überprüfen, indem du ein z.B echo 'Test'; setzt.

Grüße
Seven
12/03/2013 19:55 xsrf#9
Gib mir mal deine Skype Addy.

Kann dir evtl. helfen.