URL: https://www.overclockers.at/coding-stuff/frage_zu_php-script_fuer_bilderupload_hilfe_erbete_64221/page_1 - zur Vollversion wechseln!
Aloha! zu allererst: bin ein totaler PHP-Neuling, und habe momentan leider keine Zeit mich da einzuarbeiten. Deshalb möchte ich hier um Hilfe bitten.
Habe hier ein PHP-Script (Fremd-Script) in Verwendung, über das Besucher einer Homepage Bilder (in ein vorher bestimmtes Verzeichnis) uploaden können. Das hochgeladene Bild wird dann gleich auf der Seite angezeigt.
Funktioniert alles ohne Probleme. Allerdings stört es mich ein wenig, dass ein neues Bild auf der letzten Seite angezeigt werden. Mir wäre es lieber, wenn das neue Bild gleich auf der ersten Seite zu sehen ist.
Hier ist der (soweit ich das erkennen konnte) relevante Teil des PHP-Codes:
Code: PHP<? include ("config.inc.php"); $tag=opendir("./" . $show); while (false != ($datei = readdir($tag))) { if($datei != "." && $datei != "..") { foreach ($dateiendungen as $endung) { $endung_datei = last(strlen($endung),$datei); if (strtolower($endung) == strtolower($endung_datei)) { $temp = $temp . "|" . $datei; } } } } $te = explode("|",$temp); $temp = array(); foreach ($te as $tem) { if ($tem) { array_push($temp,$tem); } } if (!$seite) $seite = 1; $view = $show . " Seite " . $seite; include ("header.inc.php"); $anfang = 0; $seiten_links = "Seite "; $seitex = $seite - 1; if ($seitex > $anfang) { $seiten_links = $seiten_links . " <a href='$haupt_url?show=$show&seite=$seitex'>«</a> "; } $ende = count($temp) / $pics_seite; while ($anfang < $ende) { $wert = $anfang+1; if ($wert == $seite) { $seiten_links = $seiten_links . "$wert "; } else { $seiten_links = $seiten_links . "<a href='$haupt_url?show=$show&seite=$wert'>" . $wert . "</a> "; } $anfang++; } $seitey = $seite+1; if ($seite < $ende) { $seiten_links = $seiten_links . " <a href='$haupt_url?show=$show&seite=$seitey'>»</a>"; } if ($picture_upload == "true") echo picture_upload_form($show) . "<br>"; echo "$seiten_links<br>"; $anfang = $pics_seite * $seite - $pics_seite; $ende = $pics_seite * $seite; echo "<table align='center' border='$border'>"; $counter=0; while ($anfang < $ende) { $line = $temp[$anfang]; if ($line) { $bild = $show . "/" . $line; $info = getimagesize($bild); $groesse = round (filesize($bild) / 1000,2); if ($counter == 0) echo "<tr>"; echo "<td align='center'><img src='$show/" . $line . "'><br>"; if ($mit_infos == "true") { echo "<font size='1'>#" . ($anfang+1) . ", ". $line . "<br>" . $info[0] . "x" . $info[1] . "<br>" . $groesse . " kb</font>"; } echo "</td>"; $counter++; if ($counter == $pics_reihe) { $counter = 0; echo "</tr>"; } } $anfang++; } if ($counter != 0) { while ($counter < $pics_reihe) { echo "<td align='center'>-</td>"; $counter++; } } echo "</tr></table>"; echo "$seiten_links<br>"; footer ("footer.inc.php"); exit; ?>
mach bei:
Code: PHP... echo "<table align='center' border='$border'>"; $counter=0; *) also hier! while ($anfang < $ende) { ...
Danke erstmal für die Antwort! Hat (bis jetzt) aber nicht wirklich funktioniert.
Zwar wird jetzt die letzte Seite geladen, allerdings zeigt er die Bilder nicht an. Aber der Ansatz ist sicher richtig, vielleicht komm ich ja irgendwann selber drauf Eventuell $anfang und $ende austauschen?
Argl. ich sollte bald PHP lernen...
is das script total selbst geschireben oder tw kopiert?
bzw proggst du noch andere sprachen?
Hehe. wie gesagt: bin totaler PHP-Neuling. Auf gut deutsch: ich kann einen Dreck!
Das Script ist natürlich nicht selber geschrieben, sonst hätt ich diese Ausgabe-Funktion schon im Vorhinein "umgekehrt" geschrieben.
Die einzige Sprache die ich sonst noch programmiere ist HTML
Werd mich aber, sobald ich mal mehr Zeit habe, mich in PHP einarbeiten.
ok ich war nur irgendwie verwirrt weil du gsagt hast "ich bin php neuling" und der source von dem script hat mich echt beeindruckt, und ich proggs schon _RECHT_ gut
aber sry, keine lösung
@phobos: es steht net zufällig im ersten post "fremd-script"
@thema: ich hab das script jetzt mal überflogen, so wie ich es einschätze wird... wah ich habs mir jetzt doch genauer angschaut - die ersten ~25 zeilen sind der reinste schmarrn und blödsinn pur
ersetz das (das is am anfang):
durch das:Code: PHP$tag=opendir("./" . $show); while (false != ($datei = readdir($tag))) { if($datei != "." && $datei != "..") { foreach ($dateiendungen as $endung) { $endung_datei = last(strlen($endung),$datei); if (strtolower($endung) == strtolower($endung_datei)) { $temp = $temp . "|" . $datei; } } } } $te = explode("|",$temp); $temp = array(); foreach ($te as $tem) { if ($tem) { array_push($temp,$tem); } }
dazu muss ich sagen, dass das bei weitem keine optimale lösung ist! vor allem performancemässig is die eher suboptimal! leider musste ich aus rücksicht auf einen möglichen folgenden code, diese variante nehmen...Code: PHP$tag=opendir('./' . $show); $temp = array(); while ($datei = readdir($tag)) { if($datei != '.' && $datei != '..') { foreach ($dateiendungen as $endung) { $endung_datei = last(strlen($endung),$datei); if (strtolower($endung) == strtolower($endung_datei)) { $temp[filemtime($datei)]=$datei; } } } } ksort($temp); //krsort($temp); $temparray = array(); foreach ($temp as $tempvalue) { array_push($temparray,$tempvalue); } $temp = $temparray;
Danke erstmal für die Mühe. Hat aber irgendwie nicht wirklich hingehaut.
Er zeigt jetzt gar keine Bilder und keinen Seiten-Index an.
Falls sich noch jemand damit spielen will, hier ist der gesamte Code als Text: pictureview_php.txt
Gibt es vielleicht eine Möglichkeit, über die Browser Adress-Zeile die letzte Seite aufzurufen?
Wenn ich zum Bleistift die zweite Seite aufrufen will, dann lautet die URL
http://www.nitschi.at/pictureviewer...der&seite=2
Kann man eventuell mit einer Variable oder einem bestimmten Befehl die letzte Seite aufrufen? Sowas wie
http://www.nitschi.at/pictureviewer...amp;letzteseite (Link funktioniert natürlich nicht)
Hab da wie gesagt leider keine Ahnung
ja, geht - nur das script muss umgeproggt werden... sag mal welche version von php hat dein server?
Ist das Umschreiben des Scripts sehr aufwendig?
Und zu deiner Frage: PHP 4
ja, wäre imho besser es gleich neu zu schreiben
OK, ich geb dir 3 Tage Zeit!
.... Nein, Spaß beiseite. Dann lass ichs vorrübergehend wohl so, denn so ein Script zu schreiben übersteigt meine zeitlichen und geistigen Ressourcen momentan.
Wenn du keine Zeit hast, heuer einen Programmierer an. Für "ich poste Source! Schauts ihn an" ist dieses Forum nicht gedacht.Zitat von nitschiAloha! zu allererst: bin ein totaler PHP-Neuling, und habe momentan leider keine Zeit mich da einzuarbeiten. Deshalb möchte ich hier um Hilfe bitten.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025