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

Eléphant du PHP | 111 Messages

22 janv. 2014, 15:18

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 janv. 2014, 16:25

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


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

22 janv. 2014, 16:58

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

@+

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 janv. 2014, 17:02

Il en faut peu pour être heureux ......

Eléphant du PHP | 111 Messages

22 janv. 2014, 19:26

Est ce qu'avec votre exemple, nous pouvez enregistrer les images dans la base de donnée?

Merci beaucoup

Eléphant du PHP | 111 Messages

23 janv. 2014, 14:22


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