IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

téléverser un fichier pdf depuis un formulaire


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2022
    Messages : 6
    Par défaut téléverser un fichier pdf depuis un formulaire
    Bonjour et meilleurs voeux à vous tous,

    Je souhaite créer un formulaire pour permettre aux personnes de téléverser un fichier pdf ou autre. Pour l'instant, je travaille sur des fichiers jpg, png, jpeg, je n'ai pas ajouter l'extension pdf, je ne sais si c'est possible comme ça.
    Mon erreur est celle-ci : Erreur, Veuillez inserer une image svp

    Je n'ai rien dans mon dossier recru. Eest-ce que vous voyez une erreur dans mon code ?
    je ne récupère rien dans la bdd non plus (nom, prénom..)

    Merci beaucoup pour votre aide

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <?php
    include('connexion.php');
     
    if(isset($_POST['sub']))
    {
    	$id=$_POST['id'];
    	$nom=$_POST['nom'];
    	$prenom=$_POST['prenom'];
     
    	if(isset($_FILES['fichier']) and $_FILES['fichier']['error']==0)
    	{
    		$dossier= 'recru/';
    		$temp_name=$_FILES['fichier']['tmp_name'];
    		if(!is_uploaded_file($temp_name))
    		{
    			exit("le fichier est introuvable");
    		}
    		if ($_FILES['fichier']['size'] >= 1000000)
    		{
    			exit("Erreur, le fichier est volumineux");
    		}
    		$infosfichier= pathinfo($_FILES['fichier']['name']);
    		$extension_upload= $infofichier['extension'];
     
    		$extension_upload= strtolower($extension_upload);
    		$extensions_autorisees=array('png','jpeg','jpg');
    		if (!in_array($extension_upload, $extensions_autorisees))
    		{
    			exit("Erreur, Veuillez inserer une image svp (extensions autorisées: png)");
    		}
    		$nom_photo=$id.".".$extension_upload;
    		if(!move_uploaded_file($temp_name,$dossier.$nom_photo))
    		{
    			exit("Probleme  dans le telechargement de l'image, Reessayez");
    		}
    		$ph_name=$nom_photo;
    	}
    	else 
    	{
    		$ph_name="inconnu.jpg";	
    	}
     
    	$requete="INSERT INTO recru VALUES('$id', '$nom', '$prenom','$ph_name')";
    	$resultat=mysqli_query($link,$requete);
    	header('location:Formulaire.php');
     
    }
     
    ?>
     
     
     
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Document sans titre</title>
    </head>
     
    <body>
     
    	<form method="post" id="monform" action="formulaire.php" enctype="multipart/form-data">
     
    		<input name="prenom" title="prenom" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>" type="text" tabindex="4" onFocus="this.select()"/>
     
    		<br />
     
    		<input name="nom" title="nom" value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>" type="text" tabindex="4" onFocus="this.select()"/>
     
    		<br />
     
    		<input type="file" name="fichier" size="30"><br/>
    		<input type="submit" name="sub" value="Valider">
     
     
    	</form>
     
     
     
     
     
    </body>
    </html>

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    d'où vient ce code que vous utilisez actuellement ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2022
    Messages : 6
    Par défaut
    d'un tuto sur youtube pourquoi ?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Septembre 2022
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Septembre 2022
    Messages : 6
    Par défaut
    Sinon personne pour m'aider ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    J'ai envie de dire: encore un vieux code (20 ans), et qui plus est vulnérable. Pas de validation des données introduites, plus le potentiel pour une injection SQL
    A vue de nez, il y a plus d'une façon d'exploiter ce script et donc hacker votre site.

    Je n'ai pas essayé de le faire tourner mais il semble y avoir un typo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		$infosfichier= pathinfo($_FILES['fichier']['name']);
    		$extension_upload= $infofichier['extension'];
    Regardez bien le nom de la variable $infosfichier il n'est pas identique sur les deux lignes. Et donc, le contrôle de l'extension ne se fera pas correctement.
    Je pense même que ce code aurait dû crasher.

    Pour débugger ce genre de souci, la technique la plus simple est de mettre des print pour vérifier que les variables sont bien alimentées et que le contenu est conforme à ce qui est attendu.
    Si vous affichez $extension_upload, ça devrait être vide et vous mettre la puce à l'oreille.

    Je n'ai pas fait le tour de tout le reste mais je vous décourage fortement d'utiliser ce code.
    Documentez-vous sur les injections SQL, et aussi les pièges des file uploads.
    Pour le premier point, vous pouvez utiliser des requêtes paramétrées ou des libs comme PDO. Pour le deuxième il existe des classes permettant de gérer l'upload de manière plus safe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Afficher un fichier pdf depuis un formulaire Access 2010
    Par Khask dans le forum Access
    Réponses: 13
    Dernier message: 13/08/2017, 03h57
  2. Ouvrir un fichier PDF depuis un formulaire
    Par yao67 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/06/2007, 09h40
  3. généré un fichier excel depuis un formulaire php
    Par wadoux dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 08/03/2007, 17h12
  4. visualiser un document PDF depuis un formulaire
    Par Anathole dans le forum Access
    Réponses: 2
    Dernier message: 26/04/2006, 14h26
  5. [Stratégie] Afficher des fichiers PDF depuis une base Oracle
    Par tetram51 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 20/12/2005, 09h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo