Frage zu PHP-Script für Bilderupload - Hilfe erbeten

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/frage_zu_php-script_fuer_bilderupload_hilfe_erbete_64221/page_1 - zur Vollversion wechseln!


nitschi schrieb am 23.01.2003 um 19:00

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'>&#171</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'>&#187</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;

?>

Weiß zufällig jemand, wie man dieses "Problem" lösen könnte?
Würd mich freuen :)


h4de5 schrieb am 23.01.2003 um 19:09

mach bei:

Code: PHP
...
echo "<table align='center' border='$border'>";
$counter=0;

*) also hier!

while ($anfang < $ende) {
...

*) ein
$temp = rsort($temp);

habs mir nur ganz schnell durchgschaut und leider uach ned probiert. mit viel glück gehts aber trotzdem :D

/edit zur besseren verständlichung


nitschi schrieb am 23.01.2003 um 19:28

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...


Phobos schrieb am 23.01.2003 um 19:48

is das script total selbst geschireben oder tw kopiert?

bzw proggst du noch andere sprachen?


nitschi schrieb am 23.01.2003 um 19:50

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.


Phobos schrieb am 23.01.2003 um 19:55

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 :(


watchout schrieb am 23.01.2003 um 20:53

@phobos: es steht net zufällig im ersten post "fremd-script" :rolleyes:

@thema: ich hab das script jetzt mal überflogen, so wie ich es einschätze wird... wah ich habs mir jetzt doch genauer angschaut :D - die ersten ~25 zeilen sind der reinste schmarrn und blödsinn pur :rolleyes:

ersetz das (das is am anfang):

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);
}
}
durch das:
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;
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...

but i hth :)

ps: ich weiss nicht ob die sortierrichtung passt, wenn nicht -> die betreffende zeile ist die wo ksort($temp); steht - wenn du die darunter liegende nimmst, die sortiert genau andersrum ;)


nitschi schrieb am 24.01.2003 um 12:08

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


nitschi schrieb am 24.01.2003 um 14:33

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 :)


watchout schrieb am 24.01.2003 um 18:25

ja, geht - nur das script muss umgeproggt werden... sag mal welche version von php hat dein server?


nitschi schrieb am 24.01.2003 um 18:45

Ist das Umschreiben des Scripts sehr aufwendig?

Und zu deiner Frage: PHP 4


watchout schrieb am 24.01.2003 um 18:56

ja, wäre imho besser es gleich neu zu schreiben


nitschi schrieb am 24.01.2003 um 19:36

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.


schrieb am 25.01.2003 um 12:44

Zitat von nitschi
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.
Wenn du keine Zeit hast, heuer einen Programmierer an. Für "ich poste Source! Schauts ihn an" ist dieses Forum nicht gedacht.

Flames -> PM
vorher http://o.v.e.r.clockers.at/showthre...;threadid=52088 lesen.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025