Précédent   Forum du club des développeurs et IT Pro > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/12/2012, 10h24   #1
stella83
Invité de passage
 
Femme
Ressources humaines
Inscription : décembre 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ressources humaines
Secteur : Santé

Informations forums :
Inscription : décembre 2012
Messages : 2
Points : 0
Points : 0
Par défaut afficher le lien vers un document- php/mysql

Bonjour à tous,

J'ai créé une page administrateur pour que des personnes puissent télécharger des documents sur mon site et une page ou s'affichent les données de la base sql.
Tout fonctionne, le titre, la date etc... rentre bien dans ma base sql. J'ai bien le fichier qui s'est téléchargé dans un dossier "upload".
Par contre, dans ma page où s'affichent les données le lien vers le fichier pdf n'apparaît pas. je pense qu'il doit y avoir un script spécial pour afficher un lien provenant d'une base sql. J'ai aussi dans ma table , dans la colonne "fichier" [BLOB-Oo], comme si le lien n'était pas rentré et pourtant le fichier est bien téléchargé dans le dossier upload... Je n'ai aucun message d'erreur.
Est-ce que quelqu'un peut m'aider ?

Je vous remercie d'avance
Une novice sur ce forum
stella83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 10h35   #2
jreaux62
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 3 657
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 46
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 3 657
Points : 7 535
Points : 7 535
Envoyer un message via Skype™ à jreaux62
Bonjour,
à vue de nez (compte tenu que tu ne nous donnes pas de code...) :
Citation:
dans la colonne "fichier" [BLOB-Oo], comme si le lien n'était pas rentré
1/ la colonne (ou plutôt "champ") doit être de type VARCHAR (pas BLOB)
2/ Il faut penser à ENREGISTRER le NOM du FICHIER dans ce champ.

Ceci pourrait t'intéresser : Système de Gestion-Affichage de Nouvelles
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
"Quand le sage montre la lune, le sot regarde le doigt."
Confucius, Homme d'Etat et philosophe chinois (551-479 av. J.-C).
Site perso Mes tutos DVP
Gestion-Affichage de Nouvelles Affichage en tableau HTML Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2012, 12h57   #3
stella83
Invité de passage
 
Femme
Ressources humaines
Inscription : décembre 2012
Messages : 2
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ressources humaines
Secteur : Santé

Informations forums :
Inscription : décembre 2012
Messages : 2
Points : 0
Points : 0
Merci Jérôme,

J'ai regardé le module que tu me proposes, il est complet et complexe, je te remercie pour tout ce travail. Cependant j'étais arrivé presque au bout de ma page administrateur alors si tu peux me dire ce qui cloche dans mon code, ce serait très gentil !

Nom de la Table : "document"
colonne
id : mediumint(8),unsigned,auto-increment, primary key
date_doc : timestamp, current_timestamp,on update current_timestamp
rubrique :varchar(255)
fichier : blob,binary (j'ai essayé avec varchar, le lien vers le fichier ne rentre pas non plus dans la base, mais le fichier se télécharge bien dans mon dossier upload)
MAX_FILE_SIZE,int(255)

Code de la page gestion_document.php
<body>
<div id="listing">
</td>
<td class="contenu">
<h1>Administration des documents</h1>
<br /><br />

<form action="administration.php" method="post" name="doc" id="doc" enctype="multipart/form-data" >
<table border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Rubrique :</strong></td>
<td>
<select name="rubrique" class="form_select" id="rubrique">
<option value='compte_rendu'>Compte rendu</option>
<option value='programme'>Programme</option>
</select>
</td>
</tr>
<tr>
<td width="80"><strong>Titre :</strong> </td>
<td><input name="titre" type="text" class="form_champ" id="titre" value="" style="width:300px;" /></td>
</tr>
<tr>
<td width="80"><strong>Fichier :</strong> </td>
<td><input name="fichier" type="file" class="form_champ" id="fichier" >
<input type="hidden" name="MAX_FILE_SIZE" value="200000"><!--limitation du fichier à 200 ko-->

</tr>
<tr>
<td><strong> Date :</strong></td>
<td> <input type="date" name="date_doc" id="date_doc" disabled="true" value=<?php $date=date("d-m-Y");Print("$date");?>></td>




</tr>

<tr align="center">
<td colspan="2"><input name="submit" type="submit" class="form_bouton" id="submit" value="Valider" />
&nbsp;&nbsp;&nbsp;
<input name="cancel" type="button" class="form_bouton" id="cancel" value="Annuler" onclick="javascript:window.location.href='gestion_document.php';" /></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</div>

</body>

code de la page administration.php
<?php
$dossier = 'upload/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 200000;
$taille = filesize($_FILES['fichier']['tmp_name']);
$extensions = array('.pdf');
$extension = strrchr($_FILES['fichier']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez télécharger un fichier de type pdf';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'téléchargement effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de du téléchargement !';
}
}
else
{
echo $erreur;
}
?>


<?php

include ("config.php");

$req=$bdd->prepare('INSERT INTO document(rubrique,titre,fichier,MAX_FILE_SIZE) VALUES(?,?,?,?)');


$req->execute(array(
mysql_real_escape_string(strtoupper(($_POST['rubrique']))),
mysql_real_escape_string($_POST['titre']),
mysql_real_escape_string($_POST['fichier']),
mysql_real_escape_string($_POST['MAX_FILE_SIZE'])));

header('Location:gestion_document.php');


?>

code de la page CR.php (où s'affichent les données)
<div id="listing">
<h3>Compte rendu</h3>

<?php
include ("config.php");


$req = $bdd->query('SELECT rubrique,titre,fichier,DATE_FORMAT(date_doc,\'%d/%m/%Y\') AS date_doc_fr FROM document ORDER BY date_doc DESC');

while ($donnees = $req->fetch())
{
?>

<strong> Date : </strong>
<?php echo $donnees['date_doc_fr'];?><br/>
<strong>Rubrique : </strong>
<?php echo htmlspecialchars($donnees['rubrique']);?>&nbsp;&nbsp;&nbsp;&nbsp;
<strong>Titre : </strong>
<?php echo htmlspecialchars($donnees['titre']);?><br/>
<strong> Fichier : </strong>
<?php echo htmlspecialchars($donnees['fichier']);?>&nbsp;&nbsp;&nbsp;&nbsp;

<br/><hr />

<?php
}


?>
</div>

Donc toutes les données s'affichent sauf le lien vers le fichier acrobat qui est dans le dossier "upload" et qui est rentré dans la base dans la colonne "fichier"

Si tu trouves où ça cloche, ce serait génial !
JKe te souhaite de joyeuses fêtes de fin d'année et merci déjà de m'avoir répondu !
stella83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h08.


 
 
 
 
Partenaires

Hébergement Web