Gegen Bilderklau - Das Original

Registrierung Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Statistik Chat Karte Zur Startseite

Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] php-problem - foreach mit variable als suchbegriff » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen php-problem - foreach mit variable als suchbegriff
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
stogadis
Auch zukünftig stogadis


images/avatars/avatar-49237.jpg

Dabei seit: 24.06.2005
Beiträge: 2.286

php-problem - foreach mit variable als suchbegriff Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo, ich sitze gerade an einem PHP Problem und hoffe ich finde hier jemanden der mir weiter helfen kann.
Es sieht so aus, ich habe ein Verzeichnis in dem alle Bilder von meinem Hof drin sind. Jetzt möchte ich, dass er mir alle Bilder ausgibt, die einen bestimmten Begriff im Namen haben. Und zwar öffne ich die Seite als z.b. bilderauslesen.php?name=elli und habe dann:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
<?php
include ('dp.php');
         echo "Alle Bilder von $_GET[name]<br></body>";

         if ($handle = opendir('bilder'))
         foreach (glob($_GET[name]) as $filename)
    	 echo "$file";

	{while (false !== ($file = readdir($handle)))
        {if ($file != "." && $file != "..")
        {echo "$file <br>";
        }
        }
   	closedir($handle);
	}
         ?>


also für alle dateien, die elli im namen haben, soll er mir diese ausgeben.
ergebnis ist aber:
Alle Bilder von elli

Warning: Invalid argument supplied for foreach() in /usr/export/www/vhosts/funnetwork/hosting/hamola/kleemann/bilderauslesen.ph
p on line 8

und dann eine auflistung aller dateien im dem verzeichnis.

Der Fehler liegt also in dieser Zeile:
foreach (glob($_GET[name]) as $filename)
und ich denke mal dass ihm die variable im glob() nicht gefällt. aber ich weiß leider nicht wie ich es anders machen, soll, hab schon alles mit "$_GET[name]" oder ".$_GET[name]." usw. ausprobiert, bringt alles den selben fehler.

ist ein php problem für eher fortgeschrittene, ich hoffe aber dass ich hier jemanden finde der weiß was man da machen kann fröhlich

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von stogadis: 15.01.2009 14:19.

15.01.2009 14:19 stogadis ist offline E-Mail an stogadis senden Beiträge von stogadis suchen Nehmen Sie stogadis in Ihre Freundesliste auf
1Sm!le 1Sm!le ist weiblich
Mitglied


images/avatars/avatar-42097.png

Dabei seit: 05.03.2005
Beiträge: 441
Herkunft: Berlin

RE: php-problem - foreach mit variable als suchbegriff Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Rein syntaktisch korrekt wäre die Zeile so:

code:
1:
2:
3:
         foreach (glob($_GET['name']) as $filename)


Viel spannender ist aber: Was genau willst du bezwecken. Derzeit geht du in Zeile 5 in den Bilder-ordner, dann suchst du dir in Zeile 6 alle Dateien darin mit einem bestimmten String darin, die du dann als $filename zur Verfügung hast. In Zeile 7 greifst du dann auf eine andere Variable zu, in $file kann hier gar nix drin stehen => hier musst du $filename verwenden.

In Zeile 9 beginnst du dann einen zweiten Lauf durch die Ordner, der mit deinem beschriebenen Ziel gar nix mehr zu tun hat. Zeilen 9 bis 13 können also entfallen.

Mit diesen Änderungen müsste zunächst die Ausschrift aus Zeile 3, dann die Liste aus Zeile 5 bis 7 erscheinen. Deine alte Liste aller Dateien erscheint nicht mehr, weil sie aus den Zeilen 9 bis 13 kam.

__________________

15.01.2009 21:33 1Sm!le ist offline E-Mail an 1Sm!le senden Homepage von 1Sm!le Beiträge von 1Sm!le suchen Nehmen Sie 1Sm!le in Ihre Freundesliste auf
stogadis
Auch zukünftig stogadis


images/avatars/avatar-49237.jpg

Dabei seit: 24.06.2005
Beiträge: 2.286

Themenstarter Thema begonnen von stogadis
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

uih dankeschön für die antwort =D

ich hab bislang eher mit den einfacher zu durchblickenden php-funktionen gearbeitet - datenbankeinträge machen und auslesen, vll mal ein login das wars auch xP

deshalb hab ich gegoogelt und dann irgendwelche codeschnipsel zusammen geklebt =D
also, jetz sieht das nach deinen verbesserungen so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
<?php
include ('dp.php');
         echo "Alle Bilder von $_GET[name]<br></body>";
         if ($handle = opendir('bilder'))
         foreach (glob($_GET['name']) as $filename)
    	 echo "$filename";
   	closedir($handle);
         ?>


ausgabe ist aber immernoch
Warning: Invalid argument supplied for foreach() in /usr/export/www/vhosts/funnetwork/hosting/hamola/kleemann/bilderauslesen2.p
hp on line 6
=(

EDIT: ich denke mal es könnte daran liegen, dass ja keine datei einfach nur "elli" heißt sondern z.b. "elli.jpg" oder "elli2.jpg" aber leider weiß ich da wieder nich wie ich ihn dazu bringe das zu nehmen

__________________

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von stogadis: 15.01.2009 22:33.

15.01.2009 22:31 stogadis ist offline E-Mail an stogadis senden Beiträge von stogadis suchen Nehmen Sie stogadis in Ihre Freundesliste auf
1Sm!le 1Sm!le ist weiblich
Mitglied


images/avatars/avatar-42097.png

Dabei seit: 05.03.2005
Beiträge: 441
Herkunft: Berlin

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ähm, ja, sorry. Wenn du dir die glob-Funktion angesehen hast (das hab ich vorhin nur oberflächlich), die braucht einen etwas merkwürdig typisierten Suchstring. Von der Idee her: Du brauchst beliebige Zeichen gefolgt von "elli" gefolgt von beliebigen Zeichen, also *elli* ... das kannst du also als
code:
1:
glob('*'.$_GET['name'].'*')

dir zusammensetzen.
WICHTIG dabei: Theoretisch kann ein User jetzt auch "../xy.html" oder so eingeben, damit wäre dein Code schon mal hintergangen. Schlimmer aber noch: Wir können nicht ausschließen, dass er nicht auch etwas eingibt, was dir oder dem Server wirklich schaden kann.
Also: Sichere auf jeden Fall $_GET['name'], bevor du es so verwendest, wie wir es hier diskutieren. Meine Vorschläge: Php-Funktionen htmlentities(), strip_tags(), ...

__________________

15.01.2009 22:42 1Sm!le ist offline E-Mail an 1Sm!le senden Homepage von 1Sm!le Beiträge von 1Sm!le suchen Nehmen Sie 1Sm!le in Ihre Freundesliste auf
stogadis
Auch zukünftig stogadis


images/avatars/avatar-49237.jpg

Dabei seit: 24.06.2005
Beiträge: 2.286

Themenstarter Thema begonnen von stogadis
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

gibt immernoch die fehlermeldung...

hab in einem anderen forum jetzt gelesen dass das daran liegen kann, dass die variable die da im foreach steht kein array ist aber foreach arrays braucht..
öhja.. hilft mir nich sonderlich weiter, dir aber vielleicht =D

__________________

15.01.2009 23:12 stogadis ist offline E-Mail an stogadis senden Beiträge von stogadis suchen Nehmen Sie stogadis in Ihre Freundesliste auf
stogadis
Auch zukünftig stogadis


images/avatars/avatar-49237.jpg

Dabei seit: 24.06.2005
Beiträge: 2.286

Themenstarter Thema begonnen von stogadis
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von Mordred

GLOB liefert immer ein Array außer im Fehlerfall. Was gibt Dir denn

var_dump(glob($_GET["name"]));

zurück? Ausserhalb der Foreach schleife einbauen)


da kommt die ausgabe:

bool(false)

Zitat:
Original von Mordred
@stogadis:
Es leuchtet mir nicht wirklich ein was Du vor hast. Hast Du nicht eine Liste der Bilder die dem User gehören in der Datenbank?


Doch hab ich aber das ist mir zu umständlich. also, ich hab es bislang so dass ich alle bilder auf den server lade und dann einzeln in der datenbank abspeichere unter name=pferdename url=bildurl
aber das heißt ja dass ich für jedes pferd jedes einzelne bild erst hochladen und dann in die datenbank speichern will. die bilder sind jeweils nach den pferden benannt deshalb will ich es jetzt so ändern, dass er im fotoalbum diesen code ausführt. also, alle bilder aus dem ordner "bilder" auslesen und die anzeigen, die den namen des pferdes enthalten.

__________________

16.01.2009 13:07 stogadis ist offline E-Mail an stogadis senden Beiträge von stogadis suchen Nehmen Sie stogadis in Ihre Freundesliste auf
Maina Maina ist weiblich
Pseudomitglied


Dabei seit: 20.04.2006
Beiträge: 7.655
Herkunft: Kreuzberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich weiß nicht, obs das ist, was du suchst...

PHP - eine PHP Seite als Ersatz für viele HTML Seiten?

Ist aber auch eine sehr (!) zeitsparende Lösung. großes Grinsen
16.01.2009 19:11 Maina ist offline Beiträge von Maina suchen Nehmen Sie Maina in Ihre Freundesliste auf
stogadis
Auch zukünftig stogadis


images/avatars/avatar-49237.jpg

Dabei seit: 24.06.2005
Beiträge: 2.286

Themenstarter Thema begonnen von stogadis
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ähja... klingt ähnlich.. da versteh ich aber gerade garnix xP weder die codes noch die erklärungen...

bzw was ich bislang verstanden hab.. da wird ja für jedes pferd ein extraordner angelegt. ich hab aber alle gemeinsam in einem ordner..
vll isses aber gerade wirklich leichter wenn ich mein uploadscript so umschreibe dass er jeweils neuen ordner für neues pferd erstellt xP
damit wäre ich wieder an einem punkt wo ich kA hab wie das geht, aber im rumprobieren bin ich inzwischen fast meister =D

wenn jemand trotzdem noch darauf kommt wie mein code klappen könnte, freue ich mich natürlich weiterhin auf antworten ^^

EDIT: so, hier bin ich direkt wieder.
meine upload datei sieht so aus (also, besteht aus mehreren scripten, das hier ist denke ich das entscheidende)

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:

<?php
$min_size=01024;
$my_user_folder="bilder";
echo "<html>
<head>
<title>Uploadstatus</title>
</head>
<body bgcolor=#FFFFFF>
<h1 align=center><font color=#000000>
Uploadstatus
</font></h1>
<table width=100%><tr><td align=center>
<font color=#000000>
<form name="my_form" method="get" action="bilderhochladen.php">
<input type="submit" name="submit" value="Zurück">
</form>
</form>
<p>";
if ($operation==0)
{
if (true)
{
    $ok=1;
    if ($ok==1)
    {
        if(copy($userfile$my_user_folder "/" .$userfile_name))
        {
            echo "Upload erfolgreich!";
        }
        else
        {
            echo "Die Datei mit dem Namen $userfile_name konnte nicht hochgeladen werden.<br>";
        }
    }
}
else
{
    echo "Die Datei mit dem Namen $userfile_name konnte nicht hochgeladen werden.<br>";
}
}
echo "</font>
</td></tr></table><p>
</body>
</html>";
?>


wie man vll sieht - wieder nich selbst geschrieben sondern aus tutorials zusammengewürfelt xP
meine frage nun - wie krieg ich ihn am anfang bei $my_user_folder="bilder"; dazu, dort zu schauen ob in bilder ein ordner namens... $userfile_name existiert. wenn ja da rein, wenn nein erstellen? habs mit $my_user_folder="bilder/$userfile_name/" versucht aber da echot er mir im zweifelsfall dann nur "folder existiert nich, konnte nich hochgeladen werden"

__________________

Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von stogadis: 16.01.2009 20:02.

16.01.2009 19:42 stogadis ist offline E-Mail an stogadis senden Beiträge von stogadis suchen Nehmen Sie stogadis in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Gegen Bilderklau - Das Original » Design, Website, Copyright » Homepagehilfe » Homepagehilfe - Archiv » [PHP & MySQL] php-problem - foreach mit variable als suchbegriff

Impressum

Forensoftware: Burning Board, entwickelt von WoltLab GmbH