2014-09-04 2 views
-1

Le code ci-dessous s'exécute correctement, mais lorsque je l'enveloppe avec des instructions d'élément de formulaire, j'obtiens l'erreur "appel à la fonction non définie flipit.php ligne 11, 14 ou 17 (selon sur le bouton radio I sélectionné sous la forme).GD2 appelant une fonction après l'envoi d'un formulaire

Cela finira par être intégré dans une page de téléchargement de fichiers permettant l'Uploader à retourner et/ou faire pivoter leur image sur le téléchargement. il doit fonctionner avec un formulaire.

quelqu'un Hope peut voir où je suis allé mal.

Code Raw qui exécute ...

<?php 
$src = '../../Uploads/Gallery/drafting_site_bg_200.jpg'; 
$new_img = '../../Uploads/Gallery/copy_bg_200.jpg'; 

$image = imagecreatefromjpeg($src); 
$image = flip($image,1,0); // flips horizontal 
//$image = flip($image,0,1); // flips vertical 
//$image = flip($image,1,1); // flips both 

header("Content-type: image/jpeg"); 
imagejpeg($image, $new_img, 80); 
imagedestroy($image); 

function flip($i,$h=1,$v=0) { 
$width = imagesx($i); 
$height = imagesy($i); 
$temp = imagecreatetruecolor($width,$height); 
imagecopy($temp,$i,0,0,0,0,$width,$height); 
if ($h==1) { 
for ($x=0 ; $x<$width ; $x++) { 
imagecopy($i, $temp, $width-$x-1, 0, $x, 0, 1, $height); 
} 
imagecopy($temp,$i,0,0,0,0,$width,$height); 
} 
if($v==1) { 
for ($x=0; $x<$height ; $x++) { 
imagecopy($i, $temp, 0, $height-$x-1, 0, $x, $width, 1); 
} 
} 
return $i; 
} 
header('Location: showme.php'); // page displays the image 
?> 
code

après les déclarations de forme ajoutée ...

<?php 
$editFormAction = $_SERVER['PHP_SELF']; 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { // if form is submitted 

$src = '../../Uploads/Gallery/drafting_site_bg_200.jpg'; 
$new_img = '../../Uploads/Gallery/copy_bg_200.jpg'; 

$image = imagecreatefromjpeg($src); 
if ((isset($_POST["Flip"])) && ($_POST["Flip"] == "Horizontal")) { 
$image = flip($image,1,0); // flips horizontal 
} 
if ((isset($_POST["Flip"])) && ($_POST["Flip"] == "Vertical")) { 
$image = flip($image,0,1); // flips vertical 
} 
if ((isset($_POST["Flip"])) && ($_POST["Flip"] == "Both")) { 
$image = flip($image,1,1); // flips both 
} 

header("Content-type: image/jpeg"); 
imagejpeg($image, $new_img, 80); 
imagedestroy($image); 

function flip($i,$h=1,$v=0) { 
$width = imagesx($i); 
$height = imagesy($i); 
$temp = imagecreatetruecolor($width,$height); 
imagecopy($temp,$i,0,0,0,0,$width,$height); 
if ($h==1) { 
for ($x=0 ; $x<$width ; $x++) { 
imagecopy($i, $temp, $width-$x-1, 0, $x, 0, 1, $height); 
} 
imagecopy($temp,$i,0,0,0,0,$width,$height); 
} 
if($v==1) { 
for ($x=0; $x<$height ; $x++) { 
imagecopy($i, $temp, 0, $height-$x-1, 0, $x, $width, 1); 
} 
} 
return $i; 
} 
header('Location: showme.php'); // page displays the image 
} 
?> 
+0

Problèmes semble être que votre définition de fonction fait partie de votre premier bloc de code 'if' ici - essayez de le placer à l'extérieur si le bloc conditionnel. Et, s'il vous plait, pour l'amour de n'importe quelle divinité dans laquelle vous croyez, indiquez votre code correctement, de sorte qu'il devienne évident dès le début de voir quelle partie de ce bloc fait partie de ce bloc. Habituez-vous à faire cela avec n'importe quel morceau de code que vous écrivez à partir de maintenant - sinon vous rencontrerez des problèmes où vous ne savez pas ce qui est plus tôt ou plus tard. – CBroe

+0

Merci encore @CBroe. Postez ceci comme votre réponse et vous avez mon vote. – Kuya

Répondre

0

problèmes semble être que votre définition de fonction fait partie de votre premier bloc de code if ici - essayez de le placer en dehors du bloc conditionnel:

if (…) { 
    // … 
} 

function flip (…) { 
    // … 
} 
Questions connexes