Rechercher : dans
Par :

PHP $_files, enctype et $_session

Dernière réponse le 14 mai 2009 à 10:43:45 fredericsonnet, le 11 mai 2009 à 11:55:30 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Opera 9.64

Meilleures réponses pour « PHP $_files, enctype et $_session » dans :
[PHP] Upload de fichiers Voir Le langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
Télécharger PHP Edit VoirPHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de fonctionnalités permettant de développer plus efficacement : Coloration syntaxique Auto-complétion des fonctions Débuggeur...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

Yaninho, le 11 mai 2009 à 13:43:08

Et si tu nous donnait un peu de code Fredo ;)^^ Fier d'être Normand!

Répondre à Yaninho

2

fredericsonnet, le 11 mai 2009 à 14:11:59

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>
//--------------------------------------------------------------------------------------------

Répondre à fredericsonnet

3

fredericsonnet, le 12 mai 2009 à 17:47:26

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'";
		}

Répondre à fredericsonnet

4

fredericsonnet, le 13 mai 2009 à 09:13:29
  • +1

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> 
//--------------------------------------------------------------------------------------------

Répondre à fredericsonnet

5

fredericsonnet, le 14 mai 2009 à 10:41:39

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

Répondre à fredericsonnet

6

 Yaninho, le 14 mai 2009 à 10:43:45

Ayez confiance, c'est bon, jlé dl c'est une vidéo. ;) Fier d'être Normand!
95% of bugs are between keyborad & chair

Répondre à Yaninho
Collection CommentÇaMarche.net