Page 1 sur 1

Script php non exécuté

Posté : 03 oct. 2005, 13:03
par lelapinou
Bonjour,
je viens d'acheter un espace web (surftown.fr).
J'ai un soucis avec mon site, ce que le script de démarrage (qui crée des miniatures, et copie des fichiers de répertoire à répertoire) ne s'éxécute pas. Leur service technique me dit que c peut être à cause de leur Safe_mode = On, alors j'aimerais savoir si c vrai.

voici mon fichier, il se compose de 4 fonctions qui créent des répertoires, créent des miniatures, et copient des fichiers :
<?php

//function createthumb($name,$filename, $thumb_x, $thumb_y, $caption)
function createthumb($name,$filename, $thumb_x, $thumb_y)
{
	if (!file_exists($filename)){
		$img_in = imagecreatefromjpeg($name);
		$img_out = imagecreatetruecolor($thumb_x, $thumb_y);
		//$tc = str_replace(".//","",$img);
		imagecopyresampled($img_out, $img_in, 0, 0, 0, 0, imagesx($img_out), imagesy($img_out), imagesx($img_in), imagesy($img_in));
		$white = imagecolorallocate($img_out, 255, 255, 255);
		$black = imagecolorallocate($img_out, 0, 0, 0);
		//imagestring($img_out,1,3,3,$caption,$black);
		//imagestring($img_out,1,2,2,$caption,$white);
		imagejpeg($img_out, $filename, 100);
		imagedestroy($img_out);
		imagedestroy($img_in);
	}
}

function createDir($from) 
{
	if ($dossier=opendir($from))
	{
		while ($fichier = readdir($dossier)) 
		{ 
			$l = array('.', '..');
			if (!in_array( $fichier, $l))
			{ 
				if (is_dir($from.$fichier))
				{ 
					if (!file_exists($from.$fichier."/thumbnail"))
					{
						mkdir($from.$fichier."/thumbnail", 0777);
						chmod($from.$fichier."/thumbnail/", 0777);
						mkdir($from.$fichier."/comments", 0777);
						chmod($from.$fichier."/comments/", 0777);
					}
					createDir($from.$fichier);
				}
			}
		}
	}
	else
	{
	print($from." n'a pas pu etre ouvert");
	}
}

function generate($fullsized)
{ 
	$thumb_x	= "128";		// Horizontal size of thumbnail created in pixels
	$thumb_y	= "96";			// Vertical size of thumbnail created in pixels
	if ($dossier1=opendir($fullsized))
	{
		while ($fichier1 = readdir($dossier1)) 
		{ 
			$l = array('.', '..','thumbnail','comments','conf.php','index.php','gal.gif','back.png','next.png','home.gif','Thumbs.db','thumbnail.php','images.css','affiche.php');
			if (!in_array( $fichier1, $l))
			{ 
				if (!is_dir($fullsized.$fichier1))
				{ 
					if (!file_exists($fullsized."/thumbnail/".$fichier1))
					{
						$img_nfo = getimagesize($fullsized."/".$fichier1);
						createthumb($fullsized."/".$fichier1,$fullsized."/thumbnail/".$fichier1, $thumb_x, $thumb_y);
						createthumb($fullsized."/".$fichier1,$fullsized."/thumbnail/".$fichier1, $thumb_x, $thumb_y);
					}
				}
				else
				{
					generate($fullsized.$fichier1);
				}
			}
		}
	}
	else
	{
		print($from." n'a pas pu etre ouvert");
	}
}

function CopyBase($from)
{
	$m = array('add.php','add2.php');
	$n = array('conf.php','index.php','gal.gif','back.png','next.png','home.gif','images.css','thumbnail.php','affiche.php');
	
	if ($dossier=opendir($from))
	{
		while ($fichier = readdir($dossier)) 
		{ 
			$l = array('.', '..');
			if (!in_array( $fichier, $l))
			{ 
				if (is_dir($from.$fichier))
				{ 					
					if ($Base = opendir("Base/"))
					{
						while ($file = readdir($Base))
						{
							$k = array('.','..');
							if (!in_array($file,$k))
							{
								if (in_array($file,$m))
								{
									copy("Base/".$file,$from.$fichier."/comments/".$file);
								}
								if (in_array($file,$n))
								{
									copy("Base/".$file,$from.$fichier."/".$file);
								}								
							}
						}
					}					
				}
			}
		}
	}
}

?>


Merci de votre aide :oops:

Posté : 03 oct. 2005, 14:24
par mere-teresa
Où sont appelées les fonctions ?

Script php non exécuté

Posté : 03 oct. 2005, 15:08
par lelapinou
Les fonctions sont appelées dans mon index.php, que voici :

<?
require("image.php");
?>
<?
include('home.php');
createDir("Gallerie/");
generate("Gallerie/");
CopyBase("Gallerie/");
?>

Merci de ton post!

Posté : 03 oct. 2005, 15:29
par mere-teresa
as tu un message d'erreur ?

si non : as tu testé que l'on entrait bien dans les fonctions ?

Posté : 03 oct. 2005, 15:36
par lelapinou
Alors justement, je n'ai aucun message d'erreur, j'ai simplement la page home.php qui se lance, mais quand je vérifie sur le site via ftp, je vois qu'aucune miniature n'a été créée et qu'aucun fichier n'a été transféré.

Quelle est la rpocédure pour vois si on entre bien dans fonctions... dois mettre un echo pour voir sir j'entre bien dans mon fichier image???

Posté : 03 oct. 2005, 15:49
par mere-teresa
Mon conseil : mets un bête echo "youhou je suis dans la fonction nomdelafonction" dans chaque fonction.

Ensuite, tu peux aussi vérifier les paramètres passés à la fonction (http://fr.php.net/manual/fr/function.func-num-args.php) et les chemins des fichiers (le require notamment).

Argh!!!!

Posté : 03 oct. 2005, 16:16
par lelapinou
C'està n'y rien comprendre.
J'ai suivi ton conseil, et j'ai mis des echo dans mes fonctions pour voir.
J'ai meme vidé un répertoire pour voir si le script le re-crée comme il devrait le faire. Alors il m'affiche bien mes messages, ce qui veut dire qu'il entre bien dans mes fonctions, mais par contre elles n'ont aucun effet. Par exemple, j'ai vidé un répertoire, pour qu'il me crée à l'intérieur le répertoire Thumbnails, et qu'il y mette les miniatures, il me dit bien que le répertoire n'existe pas, donc le génère, au 2ème passage de la focntion le répertoire existe d'après la fonction, mais quand je vais regarder dans l'espace il n'existe pas..... argh, je crois que je vais manger mon clavier...

php.info

Posté : 03 oct. 2005, 16:17
par lelapinou
voici le php.info de mon hébergeur :
http://www.surf-town.net/phpinfo.php

Posté : 03 oct. 2005, 16:21
par Xenon_54
Vérifie que tu as bien les permissions d'écriture sur le dossier.
Et vérifie si le nom du dossier est bel et bien le nom correct. Si tu es sous environnement Linux, les majuscules et les minuscules sont importantes.

Posté : 03 oct. 2005, 16:26
par mere-teresa
si tu es patient, tu peux (après avoir suivi les conseils de Xenon_54) tester si chaque instruction est exécutée correctement.

Posté : 03 oct. 2005, 16:41
par lelapinou
good, c'est exactement ce que je suis entrain de faire.
Merci je vous dirais déjà quand j'aurais fini. hahahaha thx really!