PHP $_files, enctype et $_session

Résolu/Fermé
Utilisateur anonyme - 11 mai 2009 à 11:55
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 - 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
A voir également:

3 réponses

Utilisateur anonyme
11 mai 2009 à 14:11
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>
//--------------------------------------------------------------------------------------------
1
Utilisateur anonyme
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'";
		}
0
Utilisateur anonyme > Utilisateur anonyme
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> 
//--------------------------------------------------------------------------------------------
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
11 mai 2009 à 13:43
Et si tu nous donnait un peu de code Fredo ;)^^
0
Utilisateur anonyme
14 mai 2009 à 10:41
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 ;)
0
Yaninho Messages postés 484 Date d'inscription jeudi 19 mars 2009 Statut Membre Dernière intervention 30 août 2010 63
14 mai 2009 à 10:43
Ayez confiance, c'est bon, jlé dl c'est une vidéo. ;)
0