Fatal error: Cannot redeclare resizeimage() previously declared
Vz7
- php
1 Rouven0 Vz70 Malcolm Beck´s0 Vz70 Malcolm Beck´s0 Vz72 Edgar Ehritt
Hallo Leute.
Ich möchte eine Funktion mehrmals in meine Page einbinden.
Leider erhalte ich beim 2. versuch diese fehlermeldung:
Fatal error: Cannot redeclare resizeimage() (previously declared in C:\xampp\htdocs\iuu\upload\isp_image_resize_func.php:46) in C:\xampp\htdocs\iuu\upload\isp_image_resize_func.php on line 189
Ich verwende einen require um auf diese funktion zuzugreifen: <?php require('isp_image_resize.php'); ?>
Wie kann ich die Funktion mehr als einmal einbinden?
Gruss
Vz7
Hello,
Wie kann ich die Funktion mehr als einmal einbinden?
gar nicht! Es ist eine Funktion, ein Stück ausgelagerten Codes - warum würdest du es mehrfach einbinden wollen? Binde es einmal ein und rufe es einfach zwei Mal auf!
Falls dein Wunsch nur falsch ausgedrückt war und du lediglich Opfer einer unübersichtlichen Seitenstruktur geworden bist, dann besteht noch die Möglichkeit require_once() zu nutzen.
MfG
Rouven
gar nicht! Es ist eine Funktion, ein Stück ausgelagerten Codes - warum würdest du es mehrfach einbinden wollen? Binde es einmal ein und rufe es einfach zwei Mal auf!
Wie kann ich den Code zwei Mal aufrufen?
hi,
Wie kann ich den Code zwei Mal aufrufen?
Wie rufst du ihn denn beim ersten mal auf?
mfg
Wie rufst du ihn denn beim ersten mal auf?
So:~~~php <?php require('isp_image_resize.php'); ?>
Wenn ich das 2 Mal reinschreibe erhalte ich die Fehlermeldung.
hi,
Wie rufst du ihn denn beim ersten mal auf?
So:~~~php
<?php require('isp_image_resize.php'); ?>
[Require](http://us2.php.net/manual/en/function.require.php) ist kein Funktions-aufruf -- um Zukünftig fehler wie diese abzufangen, verwende vorzugsweise
`require_once 'isp_image_resize.php';`{:.language-php}
> Wenn ich das 2 Mal reinschreibe erhalte ich die Fehlermeldung.
Mit require bindest du eine Ressource in die Seite ein -- ob in dieser eine Funktion steht oder nicht, spielt erst mal keine Rolle.
Wie sieht denn der Inhalt von 'isp\_image\_resize.php' aus?
mfg
--
マルコム ベック`秒 エイリアス エJ Ñ - ĜわたしÑ
Wie sieht denn der Inhalt von 'isp_image_resize.php' aus?
Ist ziemlich lang. Die Datei greift auch noch auf eine weitere Datei zu. 'isp_image_resize_func', welche die Fehlermeldung überhaupt verursacht.
Das hier ist 'isp_image_resize.php':
<?php
// Query, if configuration file exists
if(!file_exists("upload/config_isp_image_resize.php")) {
echo "config_isp_image_resize ist nicht vorhanden.";
echo "config_isp_image_resize does not exist.";
exit();
}
// Query, if funktion file exists
if(!file_exists("upload/isp_image_resize_func.php")) {
echo "Resizefunktion isp_image_resize_func.php ist nicht vorhanden.";
echo " function does not exist.";
exit();
}
require("upload/config_isp_image_resize.php"); // Configuration file loading
require("upload/isp_image_resize_func.php"); // Resize function file loading
if ($lang == "de" or $lang == "") {require("upload/lang_de.php");}
if ($lang == "en" or $lang == "") {require("upload/lang_en.php");}
// Action query - required for global off register
if(isset($HTTP_POST_VARS['action'])) {$action = $HTTP_POST_VARS['action']; }
if(isset($HTTP_GET_VARS['action'])) {$action = $HTTP_GET_VARS['action']; }
if(!isset($action) or $action == "") $action = "isp_resize_form";
// Permitted filetype identify and output in the form
if(count($allowedfiletype) > 1) {
$msg = "$txt_dateitypen";
$msg .= implode(', ', $allowedfiletype);
}
elseif (count($allowedfiletype) == 1) $action = "isp_resize_form";
// Check upload dir, if not create
if (is_dir($uploaddir)) {}
else {mkdir ($uploaddir);}
//----------------------------------------------------------------------------------------
// Check image upload and
//
if($action == "isp_image_upload_check") {
$error = "";
$ok = 1;
if($_FILES['image']['error'] == 1 and $ok == 1) {
$ok = 0;
$error = "$txt_error_1";
}
if($_FILES['image']['error'] == 3 and $ok == 1) {
$ok = 0;
$error = "$txt_error_3";
}
if($_FILES['image']['error'] == 4 and $ok == 1) {
$ok = 0;
$error = "$txt_error_4";
}
// check image type
If ($ok == 1) {
$filename = $_FILES["image"]["name"]; // original image name
$fileext = explode(".", $filename); // From the original image ext. determine
$fileext_1 = $fileext[1]; // ext. to reassign
$fileext_1 = strtolower($fileext_1); // for Unix Server
if (!in_array($fileext_1, $allowedfiletype)) {
if(count($allowedfiletype) > 1) {
$bild_typ = implode(', ', $allowedfiletype);
}
elseif (count($allowedfiletype) == 1) $bild_typ = $allowedfiletype[0];
$ok = 0;
$error = "$txt_error_file_typ";
}}
// end image typ check
// Image File Größe prüfen
if(filesize($_FILES['image']['tmp_name'])/1024/1024 >= $maxfilesize and $ok == 1) {
$ok = 0;
$error = "$txt_error_size";
}
// end image typ check
// If ok upload file
if($ok) {
$image_file_pfad = "{$uploaddir}/{$filename}";
move_uploaded_file($_FILES['image']['tmp_name'], $image_file_pfad);
// Examine whether the image in the size needs to be changed
$size = @GetImageSize($image_file_pfad);
$width = $size[0];
$height = $size[1];
$value = true;
// Maybe call function
if($width <> $uploadMaxWidth || $height <> $uploadMaxHeight){$value = ResizeImage($image_file_pfad, $image_file_pfad, $uploadMaxWidth, $uploadMaxHeight);}
// Return value of the function query
If ($value == true) {
$hinweis = "$txt_hinweis_1";
$action = "isp_resize_form";
} else {
unlink($image_file_pfad);
$hinweis .= "$txt_hinweis_2";
$action = "isp_resize_form";
}
} else {
$action = "isp_resize_form";
}}
//----------------------------------------------------------------------------------------
// ISP image form
//
if($action == "isp_resize_form") {
if ($uploaddir == "" or $filename == "") $outimage = "";
else $outimage = "<img src=\"$uploaddir/$filename\" border=\"0\">";
// Output Form
echo "
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd\">
<html>
<head>
<title>ISP image upload and PHP script</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<meta name=\"description\" content=\"Image upload and PHP script - Bild bzw. Image Resize PHP Programm, Bildgröße mit PHP verändern\">
<meta name=\"publisher\" content=\"ISP www.neusser-marktplatz.de\">
<link href=\"isp_resize.css\" rel=\"stylesheet\" type=\"text/css\">
</head>
<body>
<div id=\"content\">
<table cellspacing=\"1\" cellpadding=\"0\" style=\"border: 1px solid #c0c0c0;\">
<tr><td class=\"red\">$error</td></tr>
<tr><td class=\"hinweis\">$hinweis</td></tr>
<tr><td>$txt_form_1 $maxfilesize MB</td></tr>
<tr><td>$msg</td></tr>
<form action=\"isp_image_resize.php\" enctype=\"multipart/form-data\" method=\"post\" class=\"form\">
<tr><td><input type=\"file\" name=\"image\" size=\"60\" class=\"formular\"></td></tr>
<tr><td> </td></tr>
<tr><td align=\"center\"><input type=\"submit\" name=\"submit\" value=\"$txt_form_2\" class=\"submit\"> </td></tr>
<input type=\"hidden\" name=\"action\" value=\"isp_image_upload_check\">
</form>
<tr><td> </td></tr>
</table>
<p> </p>
$outimage
</div>
</body></html>";
}
?>
Und das ist die func:
function ResizeImage($old_image_name, $new_image_name, $new_image_x_size, $new_image_y_size) {
// $old_image_name = orginal Image Name
// $new_image_name = saved Image Name
// $new_image_x_size = new x size
// $new_image_y_size = new y size
global $image_prop;
// what version of GDLIB is installed on the server
if(@imagecreatetruecolor(1,1)) $GDLIB_VERS = 2;
else $GDLIB_VERS = 1;
// Image load and determine image type
$file = basename($old_image_name);
$image_ext = explode(".", $file);
// ------------------------------------------------------------------------
// GIF image load and resize
if($image_ext[1] == "gif" || $image_ext[1] == "GIF") {
if(function_exists ("ImageCreateFromGIF")) {
$imgA = ImageCreateFromGIF ($old_image_name);
// height and width recalculate
$org_x = ImageSX($imgA);
$org_y = ImageSY($imgA);
if($org_x >= $org_y && $image_prop == "ja") {
$new_image_x_size = $new_image_x_size;
$new_image_y_size = $org_y / ($org_x / $new_image_x_size);
$new_image_y_size = floor($new_image_y_size);
}
if($org_x < $org_y && $image_prop == "ja") {
$new_image_y_size = $new_image_y_size;
$new_image_x_size = $org_x / ($org_y / $new_image_y_size);
$new_image_x_size = floor($new_image_x_size);
}
// end calculation
// GIF resize
if($GDLIB_VERS == 2) {
$imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
imagecopyresampled($imgB,$imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
} else {
$imgB = imagecreate($new_image_x_size,$new_image_y_size);
imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
}
if($imgB) imagegif($imgB, $new_image_name);
} else {
return false;
} // end function_exists
} // end image typ GIF and resize
// ------------------------------------------------------------------------
// JPG image load and resize
if($image_ext[1] == "jpg" || $image_ext[1] == "jpeg" || $image_ext[1] == "JPG" || $image_ext[1] == "JPEG") {
if(function_exists ("ImageCreateFromJPEG")) {
$imgA = ImageCreateFromJPEG ($old_image_name);
// height and width recalculate
$org_x = ImageSX($imgA);
$org_y = ImageSY($imgA);
if($org_x >= $org_y && $image_prop == "ja") {
$new_image_x_size = $new_image_x_size;
$new_image_y_size = $org_y / ($org_x / $new_image_x_size);
$new_image_y_size = floor($new_image_y_size);
}
if($org_x < $org_y && $image_prop == "ja") {
$new_image_y_size = $new_image_y_size;
$new_image_x_size = $org_x / ($org_y / $new_image_y_size);
$new_image_x_size = floor($new_image_x_size);
}
// end calculation
// JPG resize
$quality = 100;
if($GDLIB_VERS == 2) {
$imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
imagecopyresampled($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
} else {
$imgB = imagecreate($new_image_x_size,$new_image_y_size);
imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
}
imagejpeg($imgB, $new_image_name, $quality);
} else {
return false;
} // end function_exists
} // end image typ JPG and resize
// ------------------------------------------------------------------------
// PNG image load and resize
if($image_ext[1] == "png" || $image_ext[1] == "PNG") {
if(function_exists ("ImageCreateFromPNG")) {
$imgA = ImageCreateFromPNG ($old_image_name);
// height and width recalculate
$org_x = ImageSX($imgA);
$org_y = ImageSY($imgA);
if($org_x >= $org_y && $image_prop == "ja") {
$new_image_x_size = $new_image_x_size;
$new_image_y_size = $org_y / ($org_x / $new_image_x_size);
$new_image_y_size = floor($new_image_y_size);
}
if($org_x < $org_y && $image_prop == "ja") {
$new_image_y_size = $new_image_y_size;
$new_image_x_size = $org_x / ($org_y / $new_image_y_size);
$new_image_x_size = floor($new_image_x_size);
}
// end calculation
// PNG resize
if($GDLIB_VERS == 2) {
$imgB = imagecreatetruecolor($new_image_x_size,$new_image_y_size);
imagecopyresampled($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
} else {
$imgB = imagecreate($new_image_x_size,$new_image_y_size);
imagecopyresized($imgB, $imgA,0,0,0,0, $new_image_x_size, $new_image_y_size, $org_x ,$org_y);
}
imagepng($imgB, $new_image_name);
} else {
return false;
} // end function_exists
} // end image typ PNG and resize
// If image typ not available, send false
if(!$imgA) {return false;}
// If ok send true
return true;
}
?>
Hallo Vz7,
ach Du Armer! Das Script wirkt auf mit antiquiert, nutzt es doch $HTTP_POST_VARS['action']
. Das bei einem file upload $HTTP_GET_VARS['action']
abzufragen sei, zeugt von "etwas" eigenwilliger Programmlogik. Wenn ich raten darf, etwas anderes bleibt mir leider auch nicht übrig, verwendest Du eine aus dem Internet gefundene Scriptsammlung, die file uploads speziell für Grafikformate bereitstellt, hast aber von PHP und HTML keine Ahnung?
Nun denn:
Ist ziemlich lang. Die Datei greift auch noch auf eine weitere Datei zu. 'isp_image_resize_func', welche die Fehlermeldung überhaupt verursacht.
Ja, aber nicht nur "upload/isp_image_resize_func.php"
wird eingebunden. Da liegt das eigentliche Problem, warum es hier auf die Schnelle leider keine Hilfe geben kann.
Du willst Mercedes fahren, hast aber die Mittel nur für ein Fahrrad.
Der schnellst Weg für Dich, ist meiner Ansicht nach eine Suchmaschine Deiner Wahl nach anderen Scripten zu quälen, bist Du ein funktionstüchtiges hast. Andernfalls müsstest Du mal langsam Tacheles schreiben, was Du genau bewerkstelligen willst, welche PHP-Version Du verwendest, wie Dein Wissensstand bezüglich PHP und HTML ist.
Gruß aus Berlin!
eddi
was Du genau bewerkstelligen willst, welche PHP-Version Du verwendest, wie Dein Wissensstand bezüglich PHP und HTML ist.
Wissensstand: In HTML hab ich gute Kenntnisse. Mit PHP und MySQL arbeite ich noch nicht lange, verstehe aber das meiste. Ich weiss nur, dass mein Wissen nicht reicht, um selbstständig ein Bild-Upload zu realisieren.
Bewerkstelligen möchte ich folgendes:
Auf einer Seite werden verschiedene Checkboxen angezeigt mit verschiedenen Themen. Sobald man auf die Checkbox klickt, erscheint das Formular zum Uploaden eines Bildes zum Thema. Das Funktioniert bereits aber bei der 2. Checkbox taucht anstelle des Formulars die Fehlermeldung auf.
Hello,
Wissensstand: In HTML hab ich gute Kenntnisse. Mit PHP und MySQL arbeite ich noch nicht lange, verstehe aber das meiste. Ich weiss nur, dass mein Wissen nicht reicht, um selbstständig ein Bild-Upload zu realisieren.
Das bekommst Du mit etwas Hilfe schon hin:
1. Aufgabe: Schnapp Dir das antiquierte Elaborat und identifiziere darin klar
abgegrenzte Aufgaben. Liste diese Aufgaben hier auf (Überschrift,
Beschreibung, was genau passieren soll)
2. Aufgabe: Mal Dir ein Schema (PAP oder Blockdiagramm, ...), wie diese Aufgaben
zusammenhängen und poste es hier (setze einen Link auf das Bild, dass
Du irgendwo auf einem öffetnlich zugänglichen Server parkst).
Für diese Aufgaben werden wir dann schrittweise gemeinsam Funktionen ersinnen
Anschließend bauen wir die Aufgaben zusammen
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Aufgabe: Schnapp Dir das antiquierte Elaborat und identifiziere darin klar
abgegrenzte Aufgaben. Liste diese Aufgaben hier auf (Überschrift,
Beschreibung, was genau passieren soll)Aufgabe: Mal Dir ein Schema (PAP oder Blockdiagramm, ...), wie diese Aufgaben
zusammenhängen und poste es hier (setze einen Link auf das Bild, dass
Du irgendwo auf einem öffetnlich zugänglichen Server parkst).
Alles Klar, klingt gut. Danke :)
2 Fragen habe ich noch.
Hello,
Alles Klar, klingt gut. Danke :)
2 Fragen habe ich noch.
- Wo befindet sich dieses antiquierte Elaborat
Wie meinst Du das? Du hast das Elaborat doch gepostet, oder war das Dein Doppelgänger? :-)
- Soll ich im Schema auch bereits programmierte Dinge erwähnen wie z.B. den Spoiler, welcher schon wunderbar funktioniert?
Das bleibt Dir überlassen. Ist ja erstmal eine Übersicht.
Die feinere Sichtweise konzentrierst Du dann aber auf das Upload-Script, sonst wirst Du nicht fertig.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
So.
Ich hoffe das entspricht ungefähr dem was du erwartet hast:
rapidshare-link
Ist das so realisierbar?
Muss ich das ganze noch ergänzen?
So.
Ich hoffe das entspricht ungefähr dem was du erwartet hast:
rapidshare-link
Ist das so realisierbar?
Muss ich das ganze noch ergänzen?
?
Hallo Vz7,
stelle bitte Deine Überlegungen unkomprimiert (als Text und nicht als MS-Doc) auf einem Webspace vor! Free web space gibt es wie Sand am Mehr.
Gruß aus Berlin!
eddi
Keine Lust mich zu registrieren.
Vielleicht hilft das:
Ablaufschema: Link
Anzeigen des Formulars
Beschreibung: Beim Anklicken der Checkbox wird das Formular angezeigt. Wurde bereits ein Bild von diesem Benutzer hochgeladen, soll es oberhalb des Formulars als Thumbnail angezeigt werden.
Anderes: Momentan wird bleibt leider das Häkchen wenn man einen Refresh macht. Das heisst, wenn man das Häkchen wieder wegmacht, wird der Spoiler geöffnet, was eigentlich nicht gewollt ist.
Erlaubte Bilder
Beschreibung:
Das Dateiformat soll png, jpg oder jpeg sein. (Sinnvoll, oder?)
Die Grösse soll max. 3MB sein. (Generiert das zu viel Traffic? Zu viel?)
Höhe max. 1080 - Breite max. 1920
Nach dem Upload muss ein Tumbnail erstellt werden. (Ist üblich, oder?)
Ein zufälliger Name wird generiert, der im Benutzerordner abgespeichert wird.
Der Pfad zu diesem Bild sollte in der MySQL DB abgespeichert werden.
Anderes: Wenn das Bild nicht den Vorgaben entsprechen, sollten die Bilder konvertiert werden.
Re:
Beschreibung: Beim Anklicken der Checkbox wird das Formular angezeigt.
Warum machst Du das mit einer Checkbox? Wäre nicht ein Link für die meisten Nutzer sinnvoller, da dieser eher mit einer Aktion assoziiert wird? Ein Beispiel: http://spreeathener.bplaced.net/projekte/http_check/default.php
Wurde bereits ein Bild von diesem Benutzer hochgeladen, soll es oberhalb des Formulars als Thumbnail angezeigt werden.
Dazu muss man den User eindeutig wiedererkennen. Das Stichwort dazu heißt Session. (Gibt es dazu Probleme?)
Dein Diagramm ist für mich wenig Aussagekräftig. Einsehbare Versuche im Internet, also das Formular wären hilfreicher und könnten mir verdeutlichen, was Du mit einem Spoiler meinst...
Gruß aus Berlin!
eddi