online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon wurzelpeter vom 25.03.2021, 14:39 Options

PHP-script killt One.com Server

Hallo

Ich bastle gerade eine kleine Fotowebseite. Um die Seite zu testen habe ich etwa 300 Bilder per FTP hochgeladen und diese dann durch ein PHP Script kopiert, in der Größe angepasst und in die DB eintragen lassen. Fehlermeldungen gab es keine.
Nach Ausführen desselben komme ich nicht mehr auf meine Webseite. Nix. Nadda. Kein Bit PHP wird ausgeführt. FTP, HTML und die Datenbankadministration funktionieren.
Der Support von One.com war so freundlich mir nicht zu verraten warum das so ist. Die schreiben es müsse "ein Konfigurationsfehler" sein. Ob bei mir oder bei denen schreiben sie nicht.
Was ist Falsch an dem Script? Besonders wenn es sich 300 mal hinternander aufruft?

<?php


$name = "admin";
$idanfang = 1;
$idende = 313;

$datumload = time();
$betrachtet = 1;
$status = "1";

$bildid = $_GET['id'];
if($bildid == ""){$bildid = $idanfang;}

########mit datenbank verbinden#######

$connectdb = "connectdb.php";
include $connectdb;



$abfrage = "SELECT * FROM uploadtemp where id='".$bildid."'";
$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_array($ergebnis))

{
$bildname = $row['bildname'];

}


echo $bildname;

########### kopieren von nach ###########

$filename1 = $bildname;
$filename = "masse/" . $filename1 . ".jpg";
$filename2 = "bigpic/" . $filename1 . ".jpg";

####max größe ###

$width = 1000;
$height = 1000;

list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}

##### Resample #######

$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

### Output ####

imagejpeg($image_p, $filename2, 100);

#####DB eintrag######

$intemp = "INSERT INTO bilder (namemd5,besitzer,datumload,status,betrachtet) VALUES ('$bildname','$name','$datumload','$status','$betrachtet')";
$schreibe = mysql_query($intemp);

#####neu laden #######


if($bildid < $idende){
$bildid++;
?>
<script type="text/javascript">
<!--
setTimeout("self.location.href='step2.php?id=<?php echo $bildid; ?>'",1000);
//-->
</script>
<?php

}else{echo "<br><br>ende erreicht";}

?>


Antwort schreiben

Antwort 1 von son_quatsch vom 25.03.2021, 14:55 Options

Auf Anhieb kann ich keine Fehler im Skript erkennen.
Zitat:
Nach Ausführen desselben komme ich nicht mehr auf meine Webseite. Nix. Nadda. Kein Bit PHP wird ausgeführt.
Hast du für diese Erkenntnis dieses gezeigte Skript aufgerufen oder auch mal andere? Ins Blaue geschossen rate ich ganz keck, dass das JavaScript nicht zieht.

Liegen denn wie erwartet im Ordner bigpic/ Dateien? Warum hast du das ganze vorher nicht mal lokal mit z.B. XAMPP ausprobiert?

Antwort 2 von wurzelpeter vom 25.03.2021, 15:17 Options

Ich habe, wie immer, vorher mit Xampp getestet. Dort lief es problemlos. Das Script ist auch auf dem One Server bis zum Schluss durchgelaufen (incl. Javascript). Danach(!) ging nichts mehr. Für diese Erkenntnis habe die index.php aufgerufen und einige Andere.
Im Ordner bigpic liegen keine Dateien, die sollen erst dort hin.

Antwort 3 von son_quatsch vom 25.03.2021, 16:11 Options

Wenn keine Dateien im Ordner existieren, ist das Skript auch nie bis zum Ende durchgelaufen (sonst hätte es ja mindestens eine erzeugt).

Und bei dir lokal hat das Skript brav alle über 300 Bilder erzeugt? Es gibt nirgends überprüfende Ausgaben - gerade $ratio_orig, $width_orig und $height_orig sind gefährliche Kunden, die bei falschen Werten alles weitere sprengen können. Genauso wären Überprüfungen nicht schlecht, ob dein zusammengebastelter Dateiname überhaupt auch existiert.

Warum der Server aber nun generell schlappmacht weiß ich nicht... theoretisch müsste das ja auch weitere One.com-Kunden betreffen...

Antwort 4 von Supermax vom 25.03.2021, 16:19 Options

bei 1000 x 1000 Pixeln braucht ein Truecolor-Bild mindestens 3x1000x1000 = ~ 3MB Speicherplatz. Da du weder $image_p noch $image nach dem Skalier- und Schreibvorgang wieder freigibst, wird in der Schleife immer mehr Speicher"müll" angesammelt (resourcen werden nur beim Beenden des Scripts automatisch freigegeben); bei 300 Bildern kommst du da schon auf 300 x 3 MB, kein Wunder daß der Server da nicht mitspielt. Normalerweise darf ein Script zur Laufzeit nicht mehr als 32 MB belegen und nicht mehr als 30 Sekunden laufen, das ist glaube ich die Standardeinstellung von PHP.

Antwort 5 von Supermax vom 25.03.2021, 16:22 Options

- vergiss meinen Kommentar, mir ist erst im Nachhinein aufgefallen, daß du ja nicht mit einer schleife arbeitest, sondern das Script sich selbst immer wieder aufrufen läßt.

Antwort 6 von wurzelpeter vom 25.03.2021, 18:28 Options

vielen Dank für die Infos.

Nach einigem Testen habe ich festgestellt das wohl die Datenbank nicht mehr will. Ein PHP Script ohne DB Aufruf wird ausgeführt. Sobald ein DB Aufruf dabei ist kommt die o.g. leere Seite.
Der Support konnte mir auch nicht helfen. Ich werd wohl noch mal von Null aus anfangen und mich langsam vortasten bis sich das Mimosenteil von DB endlich mal zu einer Fehlermeldung herablässt
:-(

Antwort 7 von Supermax vom 25.03.2021, 18:38 Options

ein
error_reporting(E_ALL);
am Anfang des Scripts kann beim Debuggen helfen.

Ähnliche Themen

Zusammenhengender php script in guten, funktionierenden php script
derfehler  15.09.2007 - 58 Hits - 2 Antworten

Problem im HTML/PHP script
html.php.problem  21.01.2008 - 66 Hits - 21 Antworten

Newsletter-Script mit POP3-Abruf in PHP??
pete2  14.06.2008 - 63 Hits - 2 Antworten

HILFE!... ich bekomme ein Fehler im PHP Script ...
phplerin  02.01.2009 - 112 Hits - 2 Antworten

PHP SCript: Parse error unexpected t_VAR
somos  18.02.2009 - 334 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026