Posez votre question Signaler

PHP $_files, enctype et $_session [Résolu]

fredericsonnet 9Messages postés 11 mai 2009Date d'inscription - Dernière réponse le 14 mai 2009 à 10:43
Bonjour,
Je cherche desesperemment mon erreur depuis 3 jours et je n'en peut plus sonc j'aimerais bien avoir un peu d'aide si possible.
J'explique mon problème :
J'ai une page pour deposer un article sur un site web, j'ai une image principale et 2/3 vignettes.
Tout se passe bien, j'ai le choix entre une page de prévisu et publier l'aricle.
Lorsque je prévisu tout va nikel.
Ensuite sur la page de prévisu, g le choix entre modifier et publier.
L'article ne me convient pas donc j'ai envie de modifier, mais voila le probleme, mes image ne s'affiche pas !!!!!
J'utilise le enctype dans ma page pour deposer, comme sa il s'affiche a chaque fois que je prévisualise.
Mais l'autre soucis c que quand je modifie mon artcle, je doit pouvoir changer les images,
sans le enctype, elle s'affiche mais je peut pas les changer,
et avec je peut changer mais elle s'affiche pas...
Pourriez vous m'aider svp
dans ma page de modif seul les varibles de session sont utilisées
Lire la suite 

PHP $_files, enctype et $_session »

6 réponses
Réponse
+1
moins plus
Bon un peu de code ^^ :
//--------------------------------------------------------------------------------------------
// Fichier deposer
//--------------------------------------------------------------------------------------------
<form method="post" name="formulaire" enctype="multipart/form-data">
.....
Des Champs
........
<input type="Button" name="bt_ok" onclick="window.document.formulaire.action='scripts/ajout_article.php';window.document.formulaire.submit();" value="Publier l'article">

<input type="Button" name="preview" onclick="window.document.formulaire.action='preview.php';window.document.formulaire.submit();" value="Prévisualiser l'article">
</form>
//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------
// Fichier previsu
//--------------------------------------------------------------------------------------------
// Image Principale
if (isset($_FILES['img_principale']['name'])){
$img = $_FILES['img_principale']['name'];
}
else if (isset($_FILES['file']['name'])){ // Nouvelle Image
$img = $_FILES['file']['name'];
}

// Première Vignette
if (isset($_FILES['vignette1']['name'])){
$vignette1 = $_FILES['vignette1']['name'];
}
else if (isset($_FILES['newv1']['name'])){ // Nouvelle Vignette 1
$vignette1 = $_FILES['newv1']['name'];
}

<form name="publier" method="post">
<input type="button" name="publier" value="Publier" onclick="window.document.publier.action='scripts/post_ok.php';window.document.publier.submit();"/>
<input type="button" name="return" value="Modifier" onclick="window.document.publier.action='modifier.php';window.document.publier.submit();" />
<input type="button" name="save" value="Enregistrer en brouillon" onclick="window.document.publier.action='scripts/save.php';window.document.publier.submit();" />
</form>
//--------------------------------------------------------------------------------------------

//--------------------------------------------------------------------------------------------
// Fichier Modif
//--------------------------------------------------------------------------------------------
<form method="post" name="formmodif">
Image actuelle :<br />
<input type="text" name="img_principale" value="<?php echo $_SESSION['imgprincipale']; ?>" style="width:100px"/>
Vignette N°1:<br />
<input type="text" name="vignette1" value="<?php
if(isset($_SESSION['vignette1']))
echo $_SESSION['vignette1']; ?>" style="width:300px"/>
<input type="button" name="bt_ok" onclick="window.document.formmodif.action='scripts/ajout_article.php';window.document.formmodif.submit();" value="Publier l'article" />
<input type="button" name="preview" onclick="window.document.formmodif.action='preview.php';window.document.formmodif.submit();" value="Prévisualiser l'article" />
</form>
//--------------------------------------------------------------------------------------------
fredericsonnet- 12 mai 2009 à 17:47
Bon j'ai un peu changer de méthode,
Pour déposer, mon formulaire,
a la prévisu, si la page précédente et "deposer", j'insert mon formulaire dans ma bdd, j'ai une table temp qui contient l'article en cours; Sinon si la page précédente est "modifier", je met a jour l'article dans la table avec des updates.

et dans modifier je fait un select de la table temp et j'affiche les champ.

le probleme c'est que quand je prévisu une fois c'est bon mais des que je remodifie je ne voit plus les images.
Mais mnt je peut les remettres ou les changer , choses que je ne pouvais pas faire avant.

Voici le code :

Fichier Déposer :
<form method="post" name="formulaire" enctype="multipart/form-data">
....
champs
....
  <input type="Button" name="bt_ok" onclick="window.document.formulaire.action='scripts/ajout_article.php';window.document.formulaire.submit();" value="Publier l'article">
			<input type="Button" name="preview" onclick="window.document.formulaire.action='preview.php';window.document.formulaire.submit();" value="Prévisualiser l'article">
</form>



Fichier Modif:

// Connexion a la base
	mysql_select_db($mabasededonnee) or die ("pas de connection");
	$req = "SELECT * FROM temp LIMIT 1" ;
	$i = 0;
	$result = mysql_query($req);
	$nb_result = mysql_num_rows($result);
	if($nb_result!=0){
		while($nb_result>$i){
			$data = mysql_fetch_object($result);
			if(isset($data->img))
				$_SESSION['temp-img'] = $data->img;
			if(isset($data->rubrique))
				$_SESSION['temp-rubrique'] = $data->rubrique;
			if(isset($data->horiz))
				$_SESSION['temp-horiz'] = $data->horiz;
			if(isset($data->verti))
				$_SESSION['temp-verti'] = $data->verti;
			if(isset($data->titre))
				$_SESSION['temp-titre'] = $data->titre;
			if(isset($data->soustitre))
				$_SESSION['temp-soustitre'] = $data->soustitre;
			if(isset($data->entete))
				$_SESSION['temp-entete'] = $data->entete;
			if(isset($data->description))
				$_SESSION['temp-description'] = $data->description;
			if(isset($data->texte))
				$_SESSION['temp-texte'] = $data->texte;
			if(isset($data->vignette1))
				$_SESSION['temp-vignette1'] = $data->vignette1;
			if(isset($data->vignette2))
				$_SESSION['temp-vignette2'] = $data->vignette2;
			if(isset($data->vignette3)
				$_SESSION['temp-vignette3'] = $data->vignette3;
			if(isset($data->client))
				$_SESSION['temp-client'] = $data->client;
			if(isset($data->produit))
				$_SESSION['temp-produit'] = $data->produit;
			$i++;
		}
	}
	mysql_close($connection);

 <form method="post" name="formmodif" enctype="multipart/form-data">
...
afffichage
...
	<input type="text" name="img_principale" value="<?php if(isset($_SESSION['temp-img'])){ echo $_SESSION['temp-img']; } ?>" style="width:100px"/>
 <input type="button" name="bt_ok" onclick="window.document.formmodif.action='scripts/ajout_article.php';window.document.formmodif.submit();" value="Publier l'article" />
			<input type="button" name="preview" onclick="window.document.formmodif.action='preview.php';window.document.formmodif.submit();" value="Prévisualiser l'article" />
</form>     


Fichier previsu:
$nom = $_SESSION['identifiant'];
	$date = date('d-m-Y');	
	$url = basename($_SERVER['HTTP_REFERER']);

// Image Principale
	if (isset($_FILES['img_principale']['name'])){
		$img = $_FILES['img_principale']['name'];
	}
	else if (isset($_FILES['file']['name'])){		// Nouvelle Image
		$img = $_FILES['file']['name'];
	}

// Première Vignette
	if (isset($_FILES['vignette1']['name'])){
		$vignette1 = $_FILES['vignette1']['name'];
	}	
	else if (isset($_FILES['newv1']['name'])){		// Nouvelle Vignette 1
		$vignette1 = $_FILES['newv1']['name'];
	}

	if($url == "deposer.php"){
		if($_SESSION['categorie'] == "agence"){
			$req = "INSERT INTO temp(img,nom_img,titre,description,vignette1,nom_v1,vignette2,nom_v2,brouillon,auteur,client,date,produit) VALUES('$img','$img','$titre','$description','$vignette1','$vignette1','$vignette2','$vignette2','0','$nom','$client','$date','$produit')";
		}

else if($url == "modifier.php"){
		if($_SESSION['categorie'] == "agence"){
			$req = "UPDATE temp SET img='$img', nom_img='$img', titre='$titre', description='$description', vignette1='$vignette1', nom_v1='$vignette1', vignette2='$vignette2', nom_v2='$vignette2', date='$date', produit='$produit', brouillon='0', auteur='$nom', client='$client' WHERE id!='0'";
		}
fredericsonnet- 13 mai 2009 à 09:13
Modification du code :
//---------------------------------------------------------- ---------------------------------- 
// Fichier deposer 
//---------------------------------------------------------- ---------------------------------- 
<form method="post" name="formulaire" enctype="multipart/form-data"> 
..... 
Image principale:<br />
<input type="file" name="img_principale" /><br /><br /> 

Vignette N°1:<br />
<input type="checkbox" name="activ_v1" id="activ_v1" onClick="GereControle('activ_v1', 'vignette1', '0');" />
<input type="file" name="vignette1" id="vignette1" disabled="disabled" /><br /><br />
........ 
<input type="Button" name="bt_ok" onclick="window.document.formulaire.action='scripts/ajout_article.php';window.document.formulaire.submit();" value="Publier l'article"> 

<input type="Button" name="preview" onclick="window.document.formulaire.action='preview.php';window.document.formulaire.submit();" value="Prévisualiser l'article"> 
</form> 
//-------------------------------------------------------------------------------------------- 


//-------------------------------------------------------------------------------------------- 
// Fichier previsu 
//-------------------------------------------------------------------------------------------- 
$nom = $_SESSION['identifiant'];
    $date = date('d-m-Y');    
    $url = basename($_SERVER['HTTP_REFERER']);

// Image Principale 
if (isset($_FILES['img_principale']['name'])){ 
$img = $_FILES['img_principale']['name']; 
} 
else if (isset($_FILES['file']['name'])){     // Nouvelle Image 
$img = $_FILES['file']['name']; 
}
if(isset($img))
$_SESSION['imgprincipale'] = $img;

// Première Vignette 
if (isset($_FILES['vignette1']['name'])){ 
$vignette1 = $_FILES['vignette1']['name']; 
}    
else if (isset($_FILES['newv1']['name'])){     // Nouvelle Vignette 1 
$vignette1 = $_FILES['newv1']['name']; 
} 
if(isset($vignette1))
$_SESSION['vignette1'] = $vignette1;

if($url == "deposer.php"){
        if($_SESSION['categorie'] == "agence"){
            $req = "INSERT INTO temp(img,nom_img,titre,description,vignette1,nom_v1,vignette2,nom_v2,brouillon,auteur,client,date,produit) VALUES('$img','$img','$titre','$description','$vignette1','$vignette1','$vignette2','$vignette2','0','$nom','$client','$date','$produit')";
        }

else if($url == "modifier.php"){
        if($_SESSION['categorie'] == "agence"){
            $req = "UPDATE temp SET img='$img', nom_img='$img', titre='$titre', description='$description', vignette1='$vignette1', nom_v1='$vignette1', vignette2='$vignette2', nom_v2='$vignette2', date='$date', produit='$produit', brouillon='0', auteur='$nom', client='$client' WHERE id!='0'";
        }

.....
Affichage de l'article
......

<form name="publier" method="post"> 
<input type="button" name="publier" value="Publier" onclick="window.document.publier.action='scripts/post_ok.php';window.document.publier.submit();"/> 
<input type="button" name="return" value="Modifier" onclick="window.document.publier.action='modifier.php';window.document.publier.submit();" /> 
<input type="button" name="save" value="Enregistrer en brouillon" onclick="window.document.publier.action='scripts/save.php';window.document.publier.submit();" /> 
</form> 
//-------------------------------------------------------------------------------------------- 


//-------------------------------------------------------------------------------------------- 
// Fichier Modif 
//-------------------------------------------------------------------------------------------- 
<form method="post" name="formmodif">    
......
Récuperation des champs de la table temp
.......
Image actuelle :<br /> 
<input type="text" name="img_principale" value="<?php echo $_SESSION['imgprincipale']; ?>" style="width:100px"/> 
Vignette N°1:<br /> 
<input type="text" name="vignette1" value="<?php 
if(isset($_SESSION['vignette1'])) 
echo $_SESSION['vignette1']; ?>" style="width:300px"/> 
<input type="button" name="bt_ok" onclick="window.document.formmodif.action='scripts/ajout_article.php';window.document.formmodif.submit();" value="Publier l'article" /> 
<input type="button" name="preview" onclick="window.document.formmodif.action='preview.php';window.document.formmodif.submit();" value="Prévisualiser l'article" /> 
</form> 
//--------------------------------------------------------------------------------------------
Ajouter un commentaire
Réponse
+0
moins plus
Et si tu nous donnait un peu de code Fredo ;)^^
Ajouter un commentaire
Réponse
+0
moins plus
tenez je vien de faire une vidéo de mon problème :
http://so-fred.fr/fichiers/pb.exe

C'est un exe mais fait avec Screen2Exe,
c pas un virus ;)
Yaninho- 14 mai 2009 à 10:43
Ayez confiance, c'est bon, jlé dl c'est une vidéo. ;)
Ajouter un commentaire
Ce document intitulé « PHP $_files, enctype et $_session » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?