Page 1 sur 1

Afficher les données d'une page dans un autre

Posté : 22 janv. 2014, 15:18
par ISoon
Bonjour;

J'ai se code PHP :
<?php
	function Securise($str)
			{
				$str = mysql_real_escape_string(htmlspecialchars(stripslashes(nl2br(trim($str)))));
				return $str;
			}
        
  $page = Securise($_GET['page']);
                    if($page == 'page1') 
					{
					

		?>
                        <form enctype="multipart/form-data" action="creabattle.php?page=page2" method="post">
 
	  <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
 
	  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
 
	  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
 
	  Envoyez ce fichier : <input name="fichier" type="file" />
 
	  <input type="submit" value="Envoyer le fichier" />
 
	</form><?php

                    }
					 if($page == 'page2') 
					{
					
    ?>
	<?php
 
    $content_dir = 'C:\xampp\htdocs\TBP\upload\.'; 
 
    $tmp_file = $_FILES['fichier']['tmp_name'];
	$test=$_FILES['fichier']['name'];
 
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
 
 
    $name_file = $_FILES['fichier']['name'];
 
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé <br/><textarea name='photo1' style='width:500px;'>";
  
	echo $content_dir . $name_file;
	echo'</textarea>'
	
	
?>
Photo 2 :
  <form enctype="multipart/form-data" action="creabattle.php?page=page4" method="post">
 
	  <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
 
	  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
 
	  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
 
	  Envoyez ce fichier : <input name="fichier" type="file" />
 
	  <input type="submit" value="Envoyer le fichier" />
	
                   <?php
				  
				   }
				   
				    if($page == 'page3') 
					{
				   ?>
				   <form enctype="multipart/form-data" action="creabattle.php?page=page4" method="post">
 
	  <!-- MAX_FILE_SIZE doit précéder le champs input de type file -->
 
	  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
 
	  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
 
	  Envoyez ce fichier : <input name="fichier" type="file" />
 
	  <input type="submit" value="Envoyer le fichier" />
	  
	   
	</form>
                    
	<?php
	
	
	}
	
	if($page == 'page4')
	{
		?>	
	<?php

	
	

    $content_dir = 'C:\xampp\htdocs\TBP\upload\.'; 
 
    $tmp_file = $_FILES['fichier']['tmp_name'];
	$test=$_FILES['fichier']['name'];
 
    if( !is_uploaded_file($tmp_file) )
    {
        exit("Le fichier est introuvable");
    }
 
 
    $name_file = $_FILES['fichier']['name'];
 
    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé <br/><textarea name='photo2' style='width:500px;'>";
  
	echo $content_dir . $name_file;
	echo'</textarea>'
	
	
?>
		<a href="creabattle.php?page=page5">Suivant</a>
<?php
	}
	
	if($page == 'page5')
	{

				
	echo $_POST['photo1'];
	echo $_POST['photo2'];
?>		
<?php
	}
?>
Donc je suis sur le fichier creabattle.php et j'ai fait plusieurs page :

creabattle.php?page=page1
creabattle.php?page=page2
creabattle.php?page=page4
creabattle.php?page=page5

Dans la premiere page : J'upload un fichier dans mon dossier upload
Dans la 2eme page : j'affiche le lien du fichier qui viens d'être upload et j'upload un autre fichier pour la photo2
Dans la 4eme page : J'affiche le lien de la photo2 et un bouton suivant qui redirectionne à la page 5
Dans la 5eme page : J'aimerais afficher les liens des 2 photos mais sa ne marche pas.

Voici l'erreur :
Notice: Undefined index: photo1 in C:\xampp\htdocs\TBP\creabattle.php on line 155

Notice: Undefined index: photo2 in C:\xampp\htdocs\TBP\creabattle.php on line 156
Merci beaucoup :D :) :o

Re: Afficher les données d'une page dans un autre

Posté : 22 janv. 2014, 16:25
par moogli
salut,

je suppose qu'il s'agit de ces lignes la :

echo $_POST['photo1'];
echo $_POST['photo2'];
?

si oui c'est normal, POST n'est alimenté que par les variables d'un formulaire or tu n'as pas ces champs dans le formulaire précédent.

Utilise les sessions pour garder l'information entre les différentes étapes.

pourquoi ne pas faire l'upload en une seule fois ?
c'est plus simple pour l'utilisateur d'avoir un formulaire avec deux champs d'upload que 40 étape pour un truc à chaque fois ;)


@+

Re: Afficher les données d'une page dans un autre

Posté : 22 janv. 2014, 16:58
par ISoon
salut,

je suppose qu'il s'agit de ces lignes la :

echo $_POST['photo1'];
echo $_POST['photo2'];
?

si oui c'est normal, POST n'est alimenté que par les variables d'un formulaire or tu n'as pas ces champs dans le formulaire précédent.

Utilise les sessions pour garder l'information entre les différentes étapes.

pourquoi ne pas faire l'upload en une seule fois ?
c'est plus simple pour l'utilisateur d'avoir un formulaire avec deux champs d'upload que 40 étape pour un truc à chaque fois ;)


@+
Je ne savais pas qu'on pouvais faire 2 upload en même temps,

Je vais me renseigner dessus et mettre le formulaire sur le forum

Merci beaucoup

@+

Re: Afficher les données d'une page dans un autre

Posté : 22 janv. 2014, 17:02
par moogli

Re: Afficher les données d'une page dans un autre

Posté : 22 janv. 2014, 19:26
par ISoon
Est ce qu'avec votre exemple, nous pouvez enregistrer les images dans la base de donnée?

Merci beaucoup

Re: Afficher les données d'une page dans un autre

Posté : 23 janv. 2014, 14:22
par ISoon

C'est bon j'ai trouver la réponse :
 
<form method="post" action="creabattle.php?page=page2" enctype="multipart/form-data">
 
 

 <input type="hidden" name="MAX_FILE_SIZE" value="300000" >
 <input type="file" id="file" name="image"><br/>
  <input type="file" id="file" name="image2">
 <input type="submit" name="envoyer" value="Ajouter">
 </li>
 </ul>
</form>

<?php

// ***** ici on récupère les données et on les stocke dans mysql

 
//******* On renomme l'image de manière aléatoire pour éviter un conflit dans le dossier (2 fois le même nom par exemple
$dir = 'upload/1/';
$ext = strtolower( pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION) );
$file=uniqid().'.'.$ext;

$dir2 = 'upload/2/';
$ext2 = strtolower( pathinfo($_FILES['image2']['name'], PATHINFO_EXTENSION) );
$file2=uniqid().'.'.$ext2;
 //**** on bouge l'image
move_uploaded_file($_FILES['image']['tmp_name'], $dir.$file);
move_uploaded_file($_FILES['image2']['tmp_name'], $dir2.$file2); 


$photo1 = $file;
$photo2 = $file2;

echo'http://localhost/TBP/'.$dir.''.$file.'<br/>';
echo'http://localhost/TBP/'.$dir2.''.$file2.'<br/>';

 
?>	


Merci beaucoup :)