php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.08.2005, 20:12  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard foreach: Fehler beim ersten Aufruf

Ich habe bei meinem Counter ein Problemchen, auf meiner Entwicklungsumgebung taucht immer beim 1. mal laden folgender Fehler auf.

Zitat:
Warning: Invalid argument supplied for foreach() in c:\homepage\homepage_aktuell\homepage\nav_mods\cou nter.php on line 28

Warning: Invalid argument supplied for foreach() in c:\homepage\homepage_aktuell\homepage\nav_mods\cou nter.php on line 41
danach wird aber der Counter korrekt ausgegeben

Der Code:

PHP-Code:
<?php
<?PHP
$total_datei 
"./nav_mods/zaehler.txt";
$daily_datei "./nav_mods/tageszaehler.txt";
$ip_datei "./nav_mods/blocked_ips.txt";
$total_counter 0;
$daily_counter 0;
$ip $_SERVER["REMOTE_ADDR"];
$ip_block_time 3600;
$blocked_ip 0;

// IP Sperre für $ip_block_time Sekunden

$IPListe file($ip_datei);

if(
count($IPListe)>0)
{
    
// Löscht alte IPs
    
foreach($IPListe as $Zeile)
    {
        
$split explode("|"$Zeile);
        if((
$split[0]+$ip_block_time)>time())
        {
            
$NeueIPListe[] = trim($Zeile)."\n";
        }
    }
     
    
// Sucht nach der aktuellen IP in der ip.txt
    // hier ist der 1. Fehler
    
foreach($NeueIPListe as $Zeile)
    {
        
$split explode("|"$Zeile);
        if(
trim($split[1])==$ip)
        {
            
$blocked_ip TRUE;
        }
    }
}

$ip_datei_pointer fopen($ip_datei"w");
if(
count($IPListe)>0)
{
    
// hier ist der 2. Fehler
    
foreach($NeueIPListe as $Zeile)
    {
        
fwrite($ip_datei_pointertrim($Zeile)."\n");
    }
}

// der Code danach liest den Zählerstand aus und gibt dann aus
?>

Der Fehler tritt online nicht auf, aber ich hätte den trotzdem gerne weg, was könnte ich vergessen haben??
mristau2k5 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 15.08.2005, 20:36  
Matthias959
Gast
 
Beiträge: n/a
Standard

Lass dir mal $NeueIPListe[] ausgeben. Scheint ja irgendwie daran zu liegen.
 
Alt 15.08.2005, 20:39  
Erfahrener Benutzer
 
Registriert seit: 27.10.2004
Beiträge: 1.093
PHP-Kenntnisse:
Fortgeschritten
Chr!s
Standard

Hm. Hört sich für mich nach einem Denkfehler an. Bau mal folgendes ein:
PHP-Code:
<?php
    
// Sucht nach der aktuellen IP in der ip.txt
    
if(is_array($NeueIPListe) == TRUE AND isset($NeueIPListe[0]) == TRUE) {
            foreach(
$NeueIPListe as $Zeile)
            {
                
$split explode("|"$Zeile);
                if(
trim($split[1])==$ip)
                {
                    
$blocked_ip TRUE;
                }
            }
    }
?>
Chr!s ist offline  
Alt 15.08.2005, 23:14  
Neuer Benutzer
 
Registriert seit: 14.07.2005
Beiträge: 27
mristau2k5
mristau2k5 eine Nachricht über ICQ schicken mristau2k5 eine Nachricht über MSN schicken
Standard

So ich habs jetzt in Griff bekommen, hab einfach am Anfang ein leeres Array erstellt. Der Fehler lag daran, dass die IP-Liste manchmal auch leer ist, online wurde der Fehler nicht angezeigt, weil nicht E_ALL gesetzt war. Eine leere IP-Liste bedeutet, es wird das Array nicht erzeugt.

Diesen Code habe ich eingefügt. Ausgabe brachte dasselbe Ergebnis,
1. Aufruf undefinierte Variable
2. Aufruf Anzeige: array

PHP-Code:
<?php
$NeueIPListe 
= array();
?>
mristau2k5 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehler in rekursiver Funktion tinchen PHP Tipps 2006 1 27.08.2006 20:24
Fehler aufruf ausgeben sn00py PHP Tipps 2006 2 09.05.2006 14:25
Fehler Die Erweiterung mysql kann nicht geladen werden Datenbanken 5 06.03.2006 23:30
foreach Fehler webmaster_andre Datenbanken 6 04.01.2006 20:25
$_FILES mit foreach() PHP Tipps 2005-2 5 20.10.2005 10:27
foreach fehler... xXx PHP Tipps 2005-2 4 13.10.2005 18:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
Fehler bei foreach, Meldung unterdrücken? schifti PHP Tipps 2004-2 2 26.11.2004 12:52
Abbruch bei Aufruf von ImageFunktion PHP-Fortgeschrittene 27 07.11.2004 21:43
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
mysql_real_escape_string - Fehler Schaelle Datenbanken 0 03.07.2004 23:32
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
beim ersten array aufruf in php fehlermeldung, php foreach fehler bei einem

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:23 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.