Forum Rover MG Communauté Francophone
Sections libres => Discussions libres => Discussion démarrée par: max le 02 Avril 2004, 10:26:04
-
voila je t'ecris parce que j'ai un problème.
dans un de mes sites j'ai un module de téléchargements por mon CMS et j'ai un problème.
en gros je mets la description de mon dl, le titre et sois je peux uploader le fichier par IE, soit je peux donner une URL direct si j'ai déjà uploadé le fichier (http...)
ensuite en bas de page je peux mettre une image de preview que en uploadant l'image de mon disque dur, or j'aimerais qu'il me donne la possibilité comme le fichier en dl de rentrer une URL (http...jpg)
<?php
//--------------
//identification
//--------------
session_start();
if (!session_is_registered(SESSION_USER)) {
header("Location: ../outils/erreur.php?ec=2");
exit();
}
/*****************************************************************************************
Artiphp 2.0.0 - module download
copyright : Ronald Guérin - webmaster@artiloo.com
http://www.artiloo.com
Dernière mise à jour : 13 novembre 2003
******************************************************************************************/
/*****************************************************************************************
Artiphp, portail CMS pour la création de sites dynamiques
Copyright (C) 2003 Ronald Guérin - webmaster@artiloo.com
Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier
conformément aux dispositions de la Licence Publique Générale GNU, telle que publiée
par la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix)
toute version ultérieure.
Ce programme est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ;
sans même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION A UN OBJET PARTICULIER.
Pour plus de détail, voir la Licence Publique Générale GNU .
Vous devez avoir reçu un exemplaire de la Licence Publique Générale GNU en même temps que
ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation Inc.,
675 Mass Ave, Cambridge, MA 02139, Etats-Unis.
Pour plus d'informations sur Artiphp :
http://www.artiloo.com - webmaster@artiloo.com
******************************************************************************************/
error_reporting(0);
//----------------------------------------------------------------------
//autorisation d'ouverture de cette page uniquement aux status autorisés
//----------------------------------------------------------------------
if ($SESSION_STATUT!="artadmin") {
header("Location: ../outils/erreur.php?ec=2");
exit();
}
//connection à la base
//--------------------
include("../artzone/connect.php");
include("../artzone/menumod.php");
include("../outils/identification2.php"); // zone membre
include("../outils/foncpost2.php");
//------------------------------------------------
$requete="select nomCategorie from ".$extension."categorieDown where id_categorie=$categorie";
$result=mysql_query($requete, $link);
$catvisu=mysql_fetch_object($result);
$catvisu->nomCategorie = stripslashes($catvisu->nomCategorie);
$modif="Ajoutez un nouveau Fichier dans la categorie : <br><font size=\"2\" style=\"color:red\">".$catvisu->nomCategorie."</font>";
$datedossier= date ("y-m-d H:i:s");
$datevisible= date ("d/m/Y") ;
//--------------------------------
//affichage des données a modifier
//--------------------------------
if ($id_download) {
$requete="select * from ".$extension."download where id_download=$id_download";
$result=mysql_query($requete, $link);
$dossier=mysql_fetch_object($result);
$modif="Modifiez le fichier : <font style=\"color:red\"> ".$dossier->titreDownload."</font> du <font style=\"color:red\">" .$dossier->dateDownvis."</font> dans la categorie : <br><font style=\"color:red\" size=\"2\">".$catvisu->nomCategorie."</font>";
/****suivant le traitement de texte (Ie ou NS)***********/
if($nav=='2') {
$dossier->texteDownload=eregi_replace('<br[[:space:]]*/?[[:space:]]*>', "", $dossier->texteDownload);
}
/********************************************************/
$dossier->chapoDownload=eregi_replace('<br[[:space:]]*/?[[:space:]]*>', "", $dossier->chapoDownload);
// decodage du texte
$dossier->titreDownload = stripslashes($dossier->titreDownload);
$dossier->chapoDownload = stripslashes($dossier->chapoDownload);
$dossier->texteDownload = stripslashes($dossier->texteDownload);
//------------------
if ($dossier->imgDownload !="") {
$formphoto="Image actuelle : <br>";
$formphoto .="<img src=\"../images/".$dossier->imgDownload."\"></p>";
$formphoto .="Changer d'image<br>";
}
}
//----------------------------------------------------
//upload du fichier
//------------------
if ($fichier !=""){
// Security (phpSecure.info)
if ( (isset($_REQUEST["fichier_type"])) OR (isset($_REQUEST["fichier_name"])) ){
die("<br>");
}
// End
$repfichier = "../download/down/";
$tabTypeFichier = split ("/", $fichier_type);
$typeFichier = $tabTypeFichier[1];
if ($typeFichier != "x-zip-compressed" && $typeFichier != "octet-stream") {
$meserreur10 ="<br>Votre fichier image n'est pas un format reconnu (zip, rar)";
} else {
$nomfichier = "".$fichier_name."";
$destination = "../download/down/".$nomfichier."";
if (! move_uploaded_file ($fichier, $destination)) {
$meserreur10 ="<br>Votre fichier n'a pu être transféré !";
} else {
header("Location: downloadsaisie.php");
exit();
}
}
}
//-----------------------------------------------------
//visualisation des fichiers du dossier down
//-----------------------------------------------------
if ($dossier->lienDownload) {
$selected="selected";
$auteurselect[$dossier->lienDownload]=$selected;
}
$page.="<select name=\"lien\" size=\"1\">\n";
$handle=opendir("../download/down/");
while (false!==($file = readdir($handle))) {
if(($file != "..") && ($file != "."))
{
$page.="<option value=\"".$file."\" ".$auteurselect[$file].">".$file."</option>\n";
}
}
$page.="</select>\n";
//-----------------------------------------------------
//--------------------
//formulaire de saisie
//--------------------
//------------------
//upload de la photo
//------------------
if ($image !=""){
// Security (phpSecure.info)
if ( (isset($_REQUEST["image_type"])) OR (isset($_REQUEST["image_name"])) ){
die("<br>");
}
// End
$repimage = "../images/";
$tabTypeImage = split ("/", $image_type);
$typeImage = $tabTypeImage[1];
if ($typeImage != "pjpeg" && $typeImage != "x-jpeg" && $typeImage != "jpeg" && $typeImage != "gif" && $typeImage != "x-png") {
$meserreur2 ="<br>Votre fichier image n'est pas un format reconnu (jpg, png ou gif)";
$insertimage=="";
} else {
$nomimage = "".$image_name."";
$destination = "../images/".$nomimage."";
if (! move_uploaded_file ($image, $destination)) {
$meserreur2 ="<br>Votre fichier image n'a pu être transféré !";
$insertimage=="";
} else {
$insertimage=", imgDownload='$nomimage' ";
}
}
}
//-------------------------
/*si un champ n'est pas renseigné, message d'erreur*/
if (! $titre || ! $texte || ! $categorie || ! $choix || (! $lien && ! $lien2)) {
$meserreur="<font style=\"color:red\"><br>les champs sont obligatoires, sauf l'image</font>";
/*si on recupere id_download, c'est une mise à jour*/
} elseif ($id_download) {
/*******************************************/
if ($nav=='2') {
$texte = nl2br($texte);
}
/*******************************************/
$titre = nl2br($titre);
$chapo = nl2br($chapo);
$texte = doscode($texte);
$titre = addslashes($titre);
$chapo = addslashes($chapo);
$texte = addslashes($texte);
if ($choix=="1") {
$requete="update ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', chapoDownload='$texte', lienDownload='$lien', id_cat='$categorie', dateDownvis='$datevisible' $insertimage where id_download='$id_download'";
} else {
$requete="update ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', chapoDownload='$texte', lienDownload='$lien2', id_cat='$categorie', dateDownvis='$datevisible' $insertimage where id_download='$id_download'";
}
$result=mysql_query($requete, $link);
$titre="";
$lien="";
$datedownload="";
$texte="";
$image="";
header ("Location:downloadconfirm.php?categorie=$categorie");
/*sinon, c'est un ajout*/
} else {
$titre = addslashes($titre);
$chapo = addslashes($chapo);
$texte = addslashes($texte);
$texte = doscode($texte);
/*******************************************/
if ($nav=='2') {
$texte = nl2br($texte);
}
/*******************************************/
$titre = nl2br($titre);
$chapo = nl2br($chapo);
if ($choix=="1") {
$requete="INSERT into ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', dateDownvis='$datevisible', chapoDownload='$texte', lienDownload='$lien', id_cat='$categorie'$insertimage";
} else {
$requete="INSERT into ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', dateDownvis='$datevisible', chapoDownload='$texte', lienDownload='$lien2', id_cat='$categorie'$insertimage";
}
$result=mysql_query($requete, $link);
$titre="";
$lien="";
$datedownload="";
$texte="";
$image="";
header ("Location:downloadconfirm.php?categorie=$categorie");
}
//---------------------------------------------------------------------------
mysql_free_result($result);
//---------------------------------------------------------------------------
//---------------
//champ categorie
//---------------
if ($dossier->id_cat) {
$selected="selected";
$lieuselect[$dossier->id_cat]=$selected;
}
$listecat.="<select name=\"categorie\" size=\"1\">\n";
$requete="select nomCategorie, id_categorie, id_parentcat from ".$extension."categorieDown where id_parentcat='0'";
$result=mysql_query($requete, $link);
while ($cat=mysql_fetch_object($result)) {
$cat->nomCategorie = stripslashes($cat->nomCategorie);
$listecat.="<option value=\"".$cat->id_categorie."\" ".$lieuselect[$cat->id_categorie].">".$cat->nomCategorie."</option>\n";
$sscat=$cat->id_categorie;
$requete="select * from ".$extension."categorieDown where id_parentcat=$sscat order by id_parentcat desc";
$result2=mysql_query($requete, $link);
while ($cat=mysql_fetch_object($result2)) {
$cat->nomCategorie = stripslashes($cat->nomCategorie);
$listecat.="<option value=\"".$cat->id_categorie."\" ".$lieuselect[$cat->id_categorie]."> - ".$cat->nomCategorie."</option>\n";
}
//---------------------------------------------------------------------------
mysql_free_result($result2);
//---------------------------------------------------------------------------
}
$listecat.="</select></p>\n";
//------------
//mise en page
//------------
$milieu="$menumodule";
$milieu .="<p><b><font size=\"2\" color=\"red\">la Gestion des downloads </font></b> [ <a href=\"downloadindex.php\">Accueil download</a> ]<br><hr size=\"1\" color=\"#000080\">\n";
// possibilité de download
$milieu .="<b>Télécharger votre fichier vers votre site</b> (extensions reconnues : zip, rar)\n";
$milieu .="$meserreur10<br>\n";
$milieu .="<form action=\"downloadsaisie.php\" method=\"POST\" enctype=\"multipart/form-data\">\n";
$milieu .="$imgform<br>\n";
//$milieu .="<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1500000\">\n";
$milieu .="<input name=\"fichier\" type=\"file\" size=\"50\"><br>\n";
$milieu .="<input type=\"submit\" value=\"Envoyer\" name=\"B1\"></p>\n";
$milieu .="</form><hr size=1>\n";
//-----------------------------
$milieu .="<p><form NAME=\"form\" method=\"POST\" action=\"downloadsaisie.php\" enctype=\"multipart/form-data\">\n";
$milieu .="<p><strong>$modif</strong>".$meserreur."".$meserreur2."</p><p>\n";
$milieu .="<b>Categorie</b><br>\n";
$milieu .="$listecat<br>\n";
$milieu .="<b>Nom</b><br>\n";
$milieu .="<input type=\"text\" name=\"titre\" value=\"".$dossier->titreDownload."".$titre."\" size=\"50\"></p><p>\n";
/***************************************************/
/** zone de texte **********************************/
/***************************************************/
$nomtxt="<b>Description du fichier</b>"; // nom de la textearea
$texte="$dossier->chapoDownload"; // affichage de texte dans le textearea
$lienNS="downloadsaisie.php?id_download=$dossier->id_download&nav=2"; // lien vers editeur netscape
$lienIE="downloadsaisie.php?id_download=$dossier->id_download"; // lien vers editeur internet explorer
include("../outils/foncpost10.php");
$milieu .="<br>$menu";
/***************************************************/
$milieu .="<input type=\"radio\" name=\"choix\" value=\"1\" checked> \n";
$milieu .="<b>Sélectionner le fichier sur votre site</b><br>\n";
$milieu .="&&&&&&&&\n";
$milieu .="$page<p>\n";
$milieu .="<input type=\"radio\" name=\"choix\" value=\"2\"> \n";
$milieu .="<b>Fichier externe à votre site</b> <br>(http://www.site.com/chemin/nom_fichier.ext)<br>\n";
$milieu .="&&&&&&&&\n";
$milieu .="<input type=\"text\" name=\"lien2\" value=\"".$dossier->lienDownload."".$lien2."\" size=\"50\"></p><p>\n";
$milieu .="<b>Image de présentation </b><br>\n";
$milieu .="$formphoto\n";
$milieu .="<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"150000\">\n";
$milieu .="<input name=\"image\" type=\"file\" size=\"50\" value=\"$image\" ><br>\n";
$milieu .="<input type=\"hidden\" name=\"id_download\" value=\"$dossier->id_download\">\n";
$milieu .="<input type=\"hidden\" name=\"datedownload\" value=\"$dossier->dateDownload\">\n";
$milieu .="<input type=\"hidden\" name=\"nav\" value=\"$nav\">\n";
$milieu .="<input type=\"submit\" value=\"Envoyer\" name=\"B1\">\n";
$milieu .="<input type=\"reset\" value=\"Effacer\" name=\"B2\"></p>\n";
$milieu .="</form>\n";
include("../artzone/modulelien.php"); //module de gestion de lien
//------------
//le template
//------------
include("../templates/temp$SESSION_SKIN.html");
echo $arti;
mysql_close();
?>
-
Ca demande plusieurs modifications :
- Ajouter un champ dans ta base de données (champ url_compl_img)
- Modifier la requête d'affichage des des fichiers dans la partie publique (rajouter, dans le SELECT, tout à la fin avant le FROM, le champ "url_compl_img")
- Modifier ton script d'upload, en ajoutant un champ texte du type :
<input type="text" name="url_compl_img">
- Modifier les requêtes d'insertion / modification de ta partie ADMIN afin de prendre en compte la possibilité de saisir un URL complet.
Comme c'est du code préfabriqué ça peut être un peu chaud mais c'est faisable.
En fait les requêtes de la partie ADMIN sont celles-ci :
if ($choix=="1") {
$requete="update ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', chapoDownload='$texte', lienDownload='$lien', id_cat='$categorie', dateDownvis='$datevisible' $insertimage where id_download='$id_download'";
} else {
$requete="update ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', chapoDownload='$texte', lienDownload='$lien2', id_cat='$categorie', dateDownvis='$datevisible' $insertimage where id_download='$id_download'";
}
pour la modification et
if ($choix=="1") {
$requete="INSERT into ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', dateDownvis='$datevisible', chapoDownload='$texte', lienDownload='$lien', id_cat='$categorie'$insertimage";
} else {
$requete="INSERT into ".$extension."download set titreDownload='$titre', dateDownload='$datedossier', dateDownvis='$datevisible', chapoDownload='$texte', lienDownload='$lien2', id_cat='$categorie'$insertimage";
}
Voila après il suffit d'ajouter le champ là où il faut dans cette page (en dessous de la partie
/***************************************************/
/** zone de texte **********************************/
/***************************************************/
modifier l'affichage partie visiteur et ça devrait être bon.
-
je suis peut etre chiant mais t'a pas un fichier install.php a exécuter pour creer la table ?
signé: le relou 8)
merci a toi c'est sympa
-
- Modifier la requête d'affichage des des fichiers dans la partie publique (rajouter, dans le SELECT, tout à la fin avant le FROM, le champ "url_compl_img")
par exemple la je comprends pas :oops:
je suis trop nul, et ma base SQL je veux pas y toucher pour pas foutre tout en l'air
et aussi je ne comprends pas pourquoi j'irais toucher a quelque chose dans la partie visiteur puisque cette page est dans la partie admin ??
excuze je rame total en PHP
-
j'y arrive pas, je verrais ca lundi...
-
Bé en fait, si tu veux pouvoir ajouter une photo directement à partir d'un URL (sans upload par le script, donc), t'es obligé de modifier ta base de données (et par conséquent, tes scripts PHP) afin de prendre en compte une nouvelle donnée qui est l'URL complet vers ton image. Tu ne peux pas le faire avec le script de base (car le script de base utilise uniquement un nom de fichier et pas un chemin complet)
Pour la partie visiteur, il faut que tu modifies pour prendre en compte justement le nouveau champ de ta base de données, dans lequel tu stockes la fameuse nouvelle adresse.
Je connais pas du tout ce portail préfabriqué donc c'est, à mon avis, la solution la plus envisageable. En fait, ce qu'il faudrait que tu fasses, c'est que tu ouvres un autre compte chez Free, hébergement et base de données, puis que tu y mettes tout ce script avec la BDD, que tu la modifies, modifie également les scripts PHP (visiteur et admin), et que tu testes. Si ça marche, tu pourras appliquer les modifications à ta base de données sur ton site, et envoyer directement les scripts PHP modifiés vers ton site.
C'est pas facile-facile, c'est sûr, surtout quand on ne connait pas beaucoup le langage. Mais faut dire aussi que le code de ce portail, c'est une vraie usine à gaz.
-
ok tu paux juste me redonner le fichier complet modifié stp et je vais creer la ligne moi meme, après c'est bon nan ?