Page 1 sur 1

formulaire champ hidden

Posté : 02 sept. 2008, 10:33
par testlor
Bonjour a tous,

J'ai un formulaire comme ci dessous
<form action="upload.php" method="post" id="photoupload" enctype="multipart/form-data">
	<input type="hidden" name="numero" id="numero" value="<?=$_GET['id']?>" />
	<?php echo $_GET['id']; ?>
			<div class="halfsize"  style="text-align:center">
			<fieldset><legend>Choisissez les fichiers</legend></fieldset><input type="file" name="Filedata" id="photoupload-filedata-1"/>
</form>
que je récupere dans ma page upload ci dessous :
$idannonce = $_POST['numero'];

//mkdir ("./"$idannonce, 0777);
$path = "../upload/galeriephoto/";
chmod($path,0777);

// upload image

 if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
    $source_file = $path.$idannonce.(strtolower($_FILES['Filedata']['name']));
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $source_file);

Le echo $_Get['id'] du premier code est pour vérifier que la valeur est bonne et c'est le cas.
Le fichiers upload parfaitement.

Ce script marche exepté le fait que : je voudrais rajouter si mon fichier s'appelle blabla.jpg, un id devant 40blabla.jpg et ainsi éviter les doublons. JE pourrais mettre autre chose mais c'est cela que je souhaite.

De plus j'ai besoin de l'id ultérieurement dans ce script or je n'arrive pas le récupérer ( $idannonce ne contient aucune valeur )

Cependant je ne comprend vraiment pas ce qui manque ou ce qui est faut pour que l'id se transmette.

SI quelqu'un pouvait m'éclairer.

Merci d'avance

Posté : 02 sept. 2008, 10:41
par guilt92
Bonjour,

Il est possible que le problème vienne de la :
<input type="hidden" name="numero" id="numero" value="<?=$_GET['id']?>" /> 
Il faut préferer la syntaxe (que tu utilises juste après) :
<input type="hidden" name="numero" id="numero" value="<?php echo $_GET['id']; ?>" /> 

Posté : 02 sept. 2008, 10:55
par testlor
bien vu .... mais c'est pas ca :)

même si je mets une valeur statique ( exemple ok ) au lieu de mon id dynamique, il ne ma recupère pas dans la page upload.

Posté : 02 sept. 2008, 10:58
par guilt92
Sur la page upload.php fais un
echo "<pre>";
print_r($_POST);
echo "</pre>";
et donne nous le résultat stp.

Aussi, comment fais tu ton submit de ton formulaire ? je ne vois pas le bouton submit dans le code que tu nous a donné.

Posté : 02 sept. 2008, 11:10
par testlor
oups autant pour moi
voici mon submit
<form action="upload.php" method="post" id="photoupload" enctype="multipart/form-data">
    <input type="hidden" name="numero" id="numero" value="<? echo $_GET['id']; ?>" />
    <?php echo $_GET['id']; ?>
            <div class="halfsize"  style="text-align:center">
            <fieldset><legend>Choisissez les fichiers</legend></fieldset><input type="file" name="Filedata" id="photoupload-filedata-1"/>
<input type="submit" class="submit" id="profile-submit" value="Envoyer"/>
</form> 

je vais peut être faire des remarques bêtes.

J'utilise 2 javascript sur la même page que ce formulaire qui serve a l'upload multiple de fichier via le champ input files ( cela marche parfaitement ). Les javascript en question sont mootools et fancyupload qui sont un peu connus sur le net.
Je pense que cette précision n'a rien a voir avec mon soucis mais je tenais a l'ajouter


Pour ton affichage je ne vois rien d'écrit car la page upload est juste appelée, je reste toujours sur la page gallerie


Merci de te pencher sur mon problème en espérant que ces précisions puisse t'aider

Posté : 02 sept. 2008, 11:21
par guilt92
Pour ton affichage je ne vois rien d'écrit car la page upload est juste appelée, je reste toujours sur la page gallerie
Avec le submit du formulaire tu vas forcement sur la page d'upload, non ? Surtout que je ne vois pas d evènement spécifique sur le submit ou le formulaire, à moins que le code javascript que tu as ajouté traite le formulaire en ajax ?

Sinon il y a peut etre simplement un header sur ta page upload qui renvoie vers la gallerie ?

Dernière remarque qui risque de ne rien changer, mais <? et <?php peuvent ne pas etre la meme chose selon les configuration de serveur, donc mets bien <?php echo $_GET["id"]; ?> ;)

je vais essayer de regarder les scripts dont tu me parles pour mieux comprendre, mais c'est bizarre si tu ne vas pas sur la page upload.php...

EDIT : ok, apparemment effectivement FancyUpload upload les fichiers en Ajax sans passer par la page de traitement... Du coup je sais pas si je vais pouvoir t'aider car je connais pas ce script...

Posté : 02 sept. 2008, 11:32
par testlor

$idannonce = $_POST['numero'];


$path = "../upload/galeriephoto/";
chmod($path,0777);

// upload image

 if (is_uploaded_file($_FILES['Filedata']['tmp_name'])) {
    $source_file = $path.$idannonce.(strtolower($_FILES['Filedata']['name']));
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $source_file);
	
		function createthumb($name,$filename,$new_w,$new_h){
    $name=strtolower($name);

		$system=explode(".",$name);
		
		if(preg_match("/jpg|jpeg/",$system[1])){
			$src_img=imagecreatefromjpeg("../upload/galeriephoto/".$idannonce.$name);
		}
		
		if(preg_match("/png/",$system[1])){
			$src_img=imagecreatefrompng("../upload/galeriephoto/".$idannonce.$name);
		}
		
		$old_x=imageSX($src_img);
		$old_y=imageSY($src_img);
		
		if ($old_x > $old_y) {
			$thumb_w=$new_w;
			$thumb_h=$old_y*($new_h/$old_x);
		}
		
		if ($old_x < $old_y) {
			$thumb_w=$old_x*($new_w/$old_y);
			$thumb_h=$new_h;
		}
		
		if ($old_x == $old_y) {
			$thumb_w=$new_w;
			$thumb_h=$new_h;
		}
		
		$dst_img=ImageCreateTrueColor($thumb_w,$thumb_h);
		
		imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y);
		 
		if (preg_match("/png/",$system[1])){
			imagepng($dst_img,"../upload/galeriephoto/miniatures/".mktime().$filename); 
		}else{
			imagejpeg($dst_img,"../upload/galeriephoto/miniatures/".mktime().strtolower($filename)); 
		}
		
		imagedestroy($dst_img); 
		imagedestroy($src_img); 
	}

	createthumb($_FILES["Filedata"]["name"],"mini_".$_FILES["Filedata"]["name"],150,150);

    }

?>

il n'y a pas de redirection dans la page upload comme tu peu le voir ci dessus.

Je suis de ton avis que la redirection se fait grâce au javascript.
Car l'interêt de rester sur la page d'upload c'est qu'il y a une barre de chargement jusqu'à 100% pour chaque image ( un peu de dynamisme^^ ) donc il faut rester sur cette page.
Je conçois que le javascript ( langage que je ne maitrise pas ) fasse cette redirection

Mais il me semble qu'il ne devrait en aucun poser de problème quand a la transmission de mon champ hidden

Posté : 02 sept. 2008, 11:46
par testlor
Du coup je sais pas si je vais pouvoir t'aider car je connais pas ce script...
Je te remercie déjà beaucoup du temps consacrer a mon problème.

Je vous tiens au courant si je trouve une solution ( pas le choix de toute manière^^)

SI quelqu'un connais un peu ces scripts peut être pourrait-il m'aider a comprendre les raison de ce problème car elle ne vienne visiblement pas du formulaire.


Merci d'avance