php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.04.2005, 14:39  
Gast
 
Beiträge: n/a
Standard [Erledigt] function problem

Hi

Ich habe ein Problem mit einer selbst geschriebenen Funktion.

Und zwar wird in dieser eine Variable namens $files defeniert.

Nur leider kommt diese scheins nicht nach draußen.

PHP-Code:
<?php
function dirselect($verzeichnis$typ
{
    
$dir=dir($verzeichnis);
    while(
$datei $dir->read()) 
    {
        if(
filetype($verzeichnis."/".$datei)=="$typ" && $datei !="." && $datei !=".."
    {
        
$files "<option value=\"$datei\">$datei</option>";
        } 
    }
    
$dir->close();
}
?>
Ich habe einfach danach mal echo $files; gemacht und Fehlerausgabe auf alle gestellt. Und dort sagt er das die Variable nicht defeniert wurde.

Die Funktion wurde 100% aufgerufen.

Hoffe jemand findet denn fehler.

PS: Die Funktion wird nicht in einer Klasse verwendet.
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 17.04.2005, 14:47  
Gast
 
Beiträge: n/a
Standard

Die komplette Funktion ist Quatsch.

$files = "<option value=\"$datei\">$datei</option>";

Du überschreibst immer wieder die Variable $files. Da wird am Schluss nur der Name der zuletzt gefundenen Datei drinstehen.

$files ist auch nur in der Funktion bekannt, sonst nirgendwo. Gebe den Wert mit return aus der Funktion zurück.

Gruß
phpfan
 
Alt 17.04.2005, 15:04  
Gast
 
Beiträge: n/a
Standard

Ok

Aber wieso ist die Funktion Quatsch?
 
Alt 17.04.2005, 15:07  
Gast
 
Beiträge: n/a
Standard

Weil du zwei Fehler in der Funktion hast und der Name dirselect einfach nicht passt, denn du selektierst kein Verzeichnis darin, oder?

Gruß
phpfan
 
Alt 17.04.2005, 15:09  
Gast
 
Beiträge: n/a
Standard

Ok der Name ist wirklich blöd.

Aber was sind bitte die 2 Fehler.

Habe nun unten noch return $files gemacht und so gemacht das die Variable nicht mehr überschrieben wird.
 
Alt 17.04.2005, 15:12  
Gast
 
Beiträge: n/a
Standard

Die Fehler hat doch schon phpfan geschrieben
Lesen geht heute nicht so so recht ?
 
Alt 17.04.2005, 15:13  
Gast
 
Beiträge: n/a
Standard

1. Fehler: Du überschreibst $files
2. Fehler: Du benutzt nicht return

Jetzt verstanden?

Gruß
phpfan
 
Alt 17.04.2005, 15:21  
Gast
 
Beiträge: n/a
Standard

Ok das hab ich ja nun behoben. aber elider immer noch das gleiche Problem.

Hier mal meine neue function.

PHP-Code:
<?php
function dirread($verzeichnis$typ) {
$files '';
    
$dir=dir($verzeichnis);
    while(
$datei $dir->read()) {
        if(
filetype($verzeichnis."/".$datei)=="$typ" && $datei !="." && $datei !="..") {
            
$files .= "<option value=\"$datei\">$datei</option>";
        }
    }
$dir->close();

return 
$files;
}
?>
 
Alt 17.04.2005, 15:24  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

guck dir mal an, was die php-funktion filetype() für rückgabewerte hat. ich wette, du gibst der funktion als $typ nicht 'file' als parameter mit.

http://www.php.net/filetype

Zitat:
Zitat von php.net
Mögliche Werte sind fifo, char, dir, block, link, file und unknown.
axo ist offline  
Alt 17.04.2005, 15:25  
Gast
 
Beiträge: n/a
Standard

Und wie sieht der Aufruf der Funktion aus?

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
phpfan
 
 


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
[Erledigt] sql-Code an function übergeben und array mit Ergebniss zurück bekommen Felix PHP Tipps 2008 6 30.07.2008 16:59
GD-Spezialisten gesucht....wer kann helfen? rezix PHP Tipps 2008 12 26.02.2008 17:55
Einfach Datepicker gesucht Cyberbob_at_tot PHP Tipps 2007 5 14.11.2005 09:10
Problem mit function PHP Tipps 2007 4 06.11.2005 22:19
problem mit function PHP Tipps 2005-2 6 19.10.2005 22:50
[Erledigt] Problem mit Backslash Patrick Schwarz PHP Tipps 2005-2 5 26.07.2005 09:54
Problem Call to a member function on a non-object PHP Tipps 2005 5 24.05.2005 19:14
Problem bei erstellung einer tabelle mit function und array PHP Tipps 2005 5 21.04.2005 20:54
problem fertiges script anzupassen kid01 HTML, Usability und Barrierefreiheit 8 22.03.2005 07:25
[Erledigt] OOP: function in eine andere function einbinden PHP Tipps 2005 10 20.03.2005 16:13
functionwiederholung in function PHP Tipps 2004 1 26.10.2004 15:09
Problem mit function PHP Tipps 2004 2 10.09.2004 21:41
Problem mit Konstruktor Stümper PHP Tipps 2004 11 23.08.2004 12:13
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29


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