Script php non exécuté

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 13:03

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:
Peace on Earth

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 14:24

Où sont appelées les fonctions ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 15:08

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!
Peace on Earth

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 15:29

as tu un message d'erreur ?

si non : as tu testé que l'on entrait bien dans les fonctions ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 15:36

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???
Peace on Earth

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 15:49

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

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 16:16

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...
Peace on Earth

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 16:17

voici le php.info de mon hébergeur :
http://www.surf-town.net/phpinfo.php
Peace on Earth

Mammouth du PHP | 1885 Messages

03 oct. 2005, 16:21

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

03 oct. 2005, 16:26

si tu es patient, tu peux (après avoir suivi les conseils de Xenon_54) tester si chaque instruction est exécutée correctement.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 28 Messages

03 oct. 2005, 16:41

good, c'est exactement ce que je suis entrain de faire.
Merci je vous dirais déjà quand j'aurais fini. hahahaha thx really!
Peace on Earth