8791 sujets

Développement web côté serveur, CMS

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


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

Modifié par morroko (15 May 2009 - 10:16)
Hello morroko et bienvenue Smiley smile ,

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace après le crochet ouvrant).

upload/1-code.gif

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile
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


Bon un peu de 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> 
//--------------------------------------------------------------------------------------------

Modifié par morroko (13 May 2009 - 09:25)
J'ai du mal à comprendre comment fonctionne ton script, un coup de ventilo ne ferait pas de mal Smiley ohwell
Mais la globale $_FILES pointe vers un fichier temporaire par conséquent ce fichier est supprimé à la fin de l'exécution de ton script. Si ça peut aider.
Modifié par CesarX (13 May 2009 - 12:24)
ha bon je ne savais pas pour $_files.
Tu dit que $_files n'existe plus a la fin du script?

Le principe et simple, je veux ajouter un article, on peut le previsualiser et le modifier.
Lorsqu"on prévisualise, les image ne s'affiche pas.

Mon ventilo est -il assez efficace ? ^^
lol ouai j'avais compris le but... si tu arrives à ravoir tes images c'est que tu ré-expédies les $_POST de ton formulaire donc moi je vois deux solutions à ça soit tu fais envoyer les images qu'une fois que le post est confirmé, soit une fois prévisualisé. Donc en gros, deux formulaires. L'un pour le contenu du post l'autre pour la ou les images. Après j'ai pas lu en détail ton code donc te dire si il y a une erreur jsais vraiment pas. C'était surtout pour te prévenir pour le $_FILES Smiley langue
Modifié par CesarX (13 May 2009 - 14:52)
oui ok mais dans ce cas comment je fait pour prévisualiser l'articles?
Ton idée est interessante, mais j'envoi les image quand je prévisualise et juste kan je publie l'article.
Aurais tu un exemple avec les 2 formulaire stp ?
Merci de ton aide
Salut,

une solution pourrait être de sauvegarder les fichiers temporaires : il suffit soit de les renommer, soit de les déplacer dans un autre dossier.

Un exemple dans ce post.
Heyoan a écrit :
Salut,

une solution pourrait être de sauvegarder les fichiers temporaires : il suffit soit de les renommer, soit de les déplacer dans un autre dossier.

Un exemple dans ce post.


merci jv tester ta solution
Modifié par morroko (13 May 2009 - 15:26)
Heyoan a écrit :
Salut,

une solution pourrait être de sauvegarder les fichiers temporaires : il suffit soit de les renommer, soit de les déplacer dans un autre dossier.

Un exemple dans ce post.


Oui mais quel interet puisque je travail en local et c toujours le meme dossier ?
morroko a écrit :
Oui mais quel interet puisque je travail en local et c toujours le meme dossier ?
Eh bien comme j'ai lu ton sujet un peu en diagonale je pensais qu'il y avait un souci qui était du au ré-upload des images. Donc je te suggérais, pour ne pas avoir à les ré-uploader, soit de les renommer dans le répertoire temporaire, soit de les copier dans un dossier à toi. Il suffit ensuite de sauvegarder ce nouveau chemin dans une variable de session et les images sont toujours disponibles même si tu modifies l'article...
Merci de ta reponse je vais essayer, mais je reste douteux.

Car la ce que je fait c'est que je me sert uniquement du nom de l'image pour aller la chercher dans un dossier, ya pas d'upload, enfin pas de coppie de fichier, si tu veut quand je choisi le fichier c juste pour recuperer le nom.
Ensuite je sauvegarde le nom dans une variable de session.
Et si on change d'image, je rempalce le nom par le nouveau.

En théorie sa devrait marcher non ?
morroko a écrit :
En théorie sa devrait marcher non ?
Oui. Je n'avais pas compris que c'est ce que tu voulais dire par "je suis en local".


Edit: euh en fait non : il y a forcément upload puisque tu utilises un INPUT file et ce n'est pas juste un lien vers l'image...
Modifié par Heyoan (14 May 2009 - 11:26)
Oui donc c'est bien ce que CesarX et moi te disions : lorsque tu cliques sur modifier il ne faut pas revenir à ton premier formulaire car dans ce cas il aura perdu le chemin vers les images. Il faut sauvegarder $_FILES (et éventuellement les autres variables) dans une session et proposer un nouveau formulaire qui ne permet de modifier que les champs textuels.

Et comme tu es en local (et en fonction du paramétrage ?) il suffit peut-être pour l'instant de sauvegarder le chemin vers les images (mais j'en doute) alors que sur un serveur en ligne tu devras les copier dans un fichier pour ne pas les perdre...
OK merci bien de votre aide.
J'ai modifier la vidéo a 10h58 car j'avais fait une betise.
Sa vous ennuie pas de re tester avant que je donne une reponse ?

Merci bien les gars
morroko a écrit :
J'ai modifier la vidéo a 10h58 car j'avais fait une betise.
Ben je confirme : soit on clique sur publier et il n'y a pas de problème (traitement classique), soit on clique sur prévisualiser et ça t'oblige à :
1) stocker (ou renommer tes images) pour ne pas les perdre à la fin du script.
2) sauvegarder le nouvel emplacement ou le nouveau nom dans des variables de session.
3) proposer un formulaire qui ne fait qu'afficher les images sauvegardées et permet de modifier les autres.
4) etc...
Ok!!!
Donc si je fait 2 formulaires, un pour modifier le texte, et un autre pour modifier que les images, normalement sa devrai etre bon?
morroko a écrit :
Donc si je fait 2 formulaires, un pour modifier le texte, et un autre pour modifier que les images, normalement sa devrai etre bon?
Ben rien ne t'empêche de tout mettre sur un seul formulaire : les images actuelles sont sauvegardées quelque part mais tu peux permettre de les supprimer ou de les changer (nouveaux INPUT file et remplacement)
Pages :