php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.01.2005, 17:48  
Gast
 
Beiträge: n/a
Standard Warning: Invalid argument supplied for foreach() in D:\XAMPP

Hallo Leute, zerbreche mir seit Tagen den Kopf über folgende Zeilen:

Hier werden *.txt Datein aus dem Ordner daten ausgelesen und ohne Endung in eine Tabellenzeile geschrieben. Das funzt auch soweit. Ich möchte das man die Ergebnisse per klick auch anschauen kann.

PHP-Code:
<?
$val 
$_POST['val'];
echo 
"<td rowspan=\"4\" align=\"left\" valign=\"top\">";
$q ="0";

$the_array = Array();
$handle opendir('datein');
while (
false !== ($file readdir($handle)))
{
   if (
$file != "." && $file != "..")
{
   
$the_array[] = $file;
$q++;
}
}
closedir($handle);
natsort ($the_array);
reset ($the_array);
while (list (
$key$val) = each ($the_array)) {

$rest substr("$val"0, -4);
$x++;

echo 
"<a href=open.php?datei=$val>$rest&nbsp</a>";

if(
$x=="21")
   {
   echo 
"
 \n"
;
   }
if(
$x=="42")
   {
   echo 
"
 \n"
;
   }


}

?>
Mit dieser Datei möchte ich die *.txt anzeigen lassen.

open.php
PHP-Code:
<?php
$val 
$_POST['val'];

$handle opendir('datein');

$datei file("$val");

foreach(
$datei as $meine_datei)
   {
   echo 
$meine_datei;
   }

?>
Bekomme aber nur:

Warning: Invalid argument supplied for foreach() in D:\XAMPP\xampp\htdocs\privat\site\lp\open.php on line 8


Wäre sehr dankbar wenn mir jemand ein Tipp geben könnte.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 28.01.2005, 17:54  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

foreach erwartet ein Array, was du ihm aber nicht gibst.
http://www.php.net/file

Beachte besonders die Anmerkung, was im Falle eines FEHLERS zurückkommt.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 28.01.2005, 18:08  
Gast
 
Beiträge: n/a
Standard

Sorry das habe ich nicht verstanden. Mache ich das nicht mit

PHP-Code:
$datei file("$val"); 
Habe wie in diesem Beispiel gemacht.

PHP-Code:
<?php
$datei 
file("01.txt");

foreach(
$datei as $meine_datei)
   {
   echo 
$meine_datei."
"
;
   }

?>
 
Alt 28.01.2005, 18:48  
Gast
 
Beiträge: n/a
Standard Lösungsansatz

Wenn ich es mit readfile() versuche dann erscheint nicht mal eine Fehlermeldung sondern nur eine leere Seite. Ich benutze PHP 5.0.2

PHP-Code:
<?php
$val 
$_POST['val'];

$handle opendir('datein');

readfile("$val");

?>
 
Alt 28.01.2005, 19:01  
Erfahrener Benutzer
 
Registriert seit: 19.06.2004
Beiträge: 665
konsti
Standard

dein problem ist dass
file("$val");
'$val' nicht durch $val ersetzt, sprich er sucht nach der Datei '$val'

du musst deine datei öffnen mit
file($val);
__________________
http://www.silvercoding.de
------------
ElePHPant Edit
konsti ist offline  
Alt 28.01.2005, 19:10  
Erfahrener Benutzer
 
Registriert seit: 17.08.2004
Beiträge: 213
carrib befindet sich auf einem aufstrebenden Ast
Standard

In Deinem Script, mit dem Du die Datei anzeigen möchtest, ist die Anweisung
Code:
$handle = opendir('datein');
überflüssig. Damit änderst Du nicht das aktuelle Arbeitsverzeichnis, sondern öffnest nur einen Handle der von den anderen *dir-Funktionen verwendet werden kann.

Du liest die Dateien aus dem Unterverzeichnis 'datein', ich schätze es sollte 'dateien' heißen. Bei dem Script zum Auslesen der Dateien, versuchst Du die Datei im aktuellen Verzeichnis zu öffnen. Demnach müsste Dein Script wie folgt ausschauen:
Code:
<?php 
$val = $_POST['val']; 

$datei = file('datein/'.$val); 
// bzw. $datei = file('dateien/'.$val); 

foreach($datei as $meine_datei) 
   { 
   echo $meine_datei; 
   } 

?>
Prüfe auf jeden Fall vor einer Weiterverarbeitung, ob die Datei wirklich geöffnet wurde. Du kannst im Vorfeld das Vorhandensein der Datei mit file_exists() prüfen, oder prüfen, ob das Ergebnis von file() false ist. Setze hierzu einfach mal folgenden Code vor das foreach()-Konstrukt
Code:
if($datei === false) die("Datei konnte nicht geöffnet werden");
@konsti: Strings in doppelten Anführungszeichen werden geparsed, Strings in einfachen Zeichenfolgen werden nicht geparsed. Die Schreibweise hier ist korrekt, jedoch sind die Anführungszeichen unnötig.
Code:
$val = 'Test';
echo "$val"; // Ausgabe: Test
echo '$val'; // Ausgabe: $val
carrib ist offline  
Alt 28.01.2005, 21:58  
Gast
 
Beiträge: n/a
Standard

Dieses Statement ruft open.php und übergibt eine Variable namens datei mit dem wert von $val
echo "<a href=open.php?datei=$val>$rest&amp;nbsp</a>";

In der open.php wird aber stattdessen:

$val = $_POST['val'];

eine Variable namens val erwartet.

Wie wäre es mit:

$val = $_GET['datei'];

Gruß
Fred
 
Alt 29.01.2005, 10:44  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Naja, 20 mal dasselbe zu antworten, soll bekanntlich helfen. Quasi die Holzhammer- Methode...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 29.01.2005, 11:33  
Gast
 
Beiträge: n/a
Standard @mepeisen

@mepeisen
Dein Kommentar irritiert mich.
Meine Antwort ist entweder die erste ihrer Art in diesem Thread oder aber ich kann nicht lesen.

Gruß
Fred
 
Alt 29.01.2005, 12:20  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Sorry, ich meinte eigentlich nicht deinen Beitrag als solches, sondern die Tatsache, dass man mehrmals darauf hinweisen muss, dass er eine Fehlerprüfung einbauen soll. Auch wenn mein Hinweis am Anfang vielleicht etwas zu knapp war.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen 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
[Erledigt] PHP -&gt; Ordner anlegen der sich auch beschreiben lässt?! Nightuser PHP Tipps 2008 13 30.06.2008 23:51
Warning: fread(): supplied argument is not a valid stream resource... pixelprinzessin PHP Tipps 2008 20 23.04.2008 15:44
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource Zabimaru PHP Tipps 2008 7 02.04.2008 13:25
Warning: fwrite(): supplied argument is not a valid stream Venom PHP Tipps 2007 27 15.12.2005 18:14
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] Warning: mysql_num_fields(): supplied argument is not a... Datenbanken 18 09.06.2005 21:03
Invalid Argument supplied for foreach() PHP Tipps 2005 2 26.04.2005 10:49
ShowIt_V1.8.14 PHP Tipps 2005 1 23.03.2005 19:13
frage zum arbeiten mit dateien PHP Tipps 2005 21 01.03.2005 13:22
Invalid argument supplied for foreach() in ........ PHP Tipps 2004 2 07.10.2004 14:38
Warning: mysql_num_rows(): supplied argument is not a valid PHP Tipps 2004 2 06.09.2004 21:26
Counter zeigt nach ca. 2-3 Stunden fehler an PHP Tipps 2004 2 26.08.2004 20:08
Warning: mysql_fetch_row(): supplied argument is not a ... PHP Tipps 2004 7 12.08.2004 20:15
Warning: mysql_num_rows(): supplied argument is not a valid PHP Tipps 2004 1 15.06.2004 15:54
Warning: mysql_fetch_object(): supplied argument is not a va Datenbanken 11 12.06.2004 16:06

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
warning: invalid argument supplied for foreach() in, invalid argument supplied for foreach, warning: invalid argument supplied for foreach xampp, foreach( xampp, invalid argument supplied for foreach() xampp, invalid argument supplied for foreach() file(), val-datei, php invalid argument supplied for foreach, invalid argument supplied for foreach() in, \warning: invalid argument supplied for foreach() in\, warning invalid argument supplied for foreach in, php warning: invalid argument supplied for foreach() in, php warning: invalid argument supplied for foreach(), php doppelte foreach \invalid argument\, xampp php warning, php readfile invalid argument, http://www.php.de/php-tipps-2005/16891-warning-invalid-argument-supplied-foreach-d-xampp.html, warning: invalid argument supplied for foreach() xampp, counter unterverzeichnis für xampp, foreach xampp

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:58 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.