Page 1 sur 1

Enregistrement lien dans base de donnée

Posté : 17 déc. 2018, 13:36
par crysal
Bonjour à tous, j'ai besoin d'aide pour pouvoir enregistrer le lien d'un fichier qui aura été préalablement Uploader dans un dossier.

Pour uploader dans un dossier aucun souci seulement la suite ne marche pas... (je suis débutant php)

Voici le code du formulaire d'abord puis de la page php :

<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

Puis de la page upload.php :

<?php
$dossier = 'upload/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.pdf');
$extension = strrchr($_FILES['avatar']['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 uploader un fichier de type png, gif, jpg, jpeg, txt, pdf ou doc...';
}
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['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
// connexion à la base
$db = mysql_connect('netcoopfrnbdd.mysql.db', 'netcoopfrnbdd', "mot de passe") or die('Erreur de connexion '.mysql_error());
// sélection de la base, le mot de passe est bien sur renseigné dans mon code...

mysql_select_db('netcoopfrnbdd',$db) or die('Erreur de selection '.mysql_error());

// on écrit la requête sql
$sql = "INSERT INTO 'documents' ('name')
VALUES ('$fichier')";

// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';

mysql_close(); // on ferme la connexion
?>

Merci d'avance pour votre aide

Re: Enregistrement lien dans base de donnée

Posté : 18 déc. 2018, 09:25
par Spols
Vérifie en premier lieu que tu affiche tous les messages d'erreur.

Ensuite les fonction mysql_* sont déprécié, elles ne fonctionne peut être plus dans ton environnement php. passe plutot au fonction mysqli_* ou à PDO.