Enregistrer les caractéristiques d'une image dans une bdd
Max23
-
Max 23 -
Max 23 -
Bonjour,
J'ai creer un petit formulaire qui permet d'uploader des images et j'aimerais enregistrer dans ma bdd les information consernant l'image (nom, taille, sujet, emplacement de l'upload...)
Mon code fonctionne correctement, l'image s'upload bien, mais rien ne s'inscrit dans ma table "images".
Voici mon code:
Voila, merci de m'apporter un peu de votre lumière.
Cho cho.
J'ai creer un petit formulaire qui permet d'uploader des images et j'aimerais enregistrer dans ma bdd les information consernant l'image (nom, taille, sujet, emplacement de l'upload...)
Mon code fonctionne correctement, l'image s'upload bien, mais rien ne s'inscrit dans ma table "images".
Voici mon code:
<html> <head> <title>formulaire billet</title> <link href="formulaire billet.css" rel="stylesheet" type="text/css"/> </head> <body> <p><h1 id="titre">Ajouter un sujet</h1></p> <form action="" method="post" enctype="multipart/form-data"> <fieldset> <table id="tform"> <tr> <td><label>Sujet:</label></td> <td><input id="sujet" type="text" name="sujet"/></td> </tr> <tr> <td><label>Message:</label></td> <td><textarea id="message" name="message"></textarea></td> </tr> <tr> <td><label>Votre image:</label></td> <td><input type="file" name="image" value="parcourir"/></td> </tr> </table> </fieldset> <input type="submit" value="Envoyer" name="valider"/> </form> <br/><br/><br/><br/> <a href="monblog.php">Retourner à la page d'acceuil</a> </body> <?php try { $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', ''); } catch (Exception $e) { die ('erreur: ' .$e->getMessage()); } $req = $bdd->prepare('INSERT INTO billet(titre, contenu, date_creation) VALUES(:titre, :contenu, NOW())'); $req->execute(array( 'titre' => $_POST['sujet'], 'contenu' => $_POST['message'] )); $req->closeCursor(); //----------------------------Enregistrement de l'image------------------------------ $req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, type, emplacement, date) VALUES(:nom, :sujet, :description, :taille, :type, :emplacement, NOW())'); $req->execute(array( 'nom' => $_FILES['image']['name'], 'sujet' => $_POST['sujet'], 'taille' => $_FILES['image']['size'], 'type' => $_FILES['image']['extension'], 'emplacement' => 'images/' )); $req->closeCursor(); //--------------------------------------------------------------------------------------- if (isset($_FILES['image']) AND $_FILES['image']['error'] == 0) { if ($_FILES['image']['size'] <= 10485760) { $infosfichier = pathinfo($_FILES['image']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { move_uploaded_file($_FILES['image']['tmp_name'], 'images/' . basename($_FILES['image']['name'])); echo "L'envoi a bien été effectué !"; } } } ?> </html>
Voila, merci de m'apporter un peu de votre lumière.
Cho cho.
A voir également:
- Enregistrer les caractéristiques d'une image dans une bdd
- Audacity enregistrer son pc - Guide
- Comment enregistrer une conversation - Guide
- Légender une image - Guide
- Comment enregistrer une video youtube - Guide
- Créer une image iso - Guide
7 réponses
Re,
Il manque des petits / , et je ne comprends pas tout à fait le debut de l'expression : ^0[^0] -> qu'est ce que tu cherches à faire ici?
Essai comme ça, ça vérife les num : 0x xx xx xx xx
if (preg_match('/^0[1-9]{1}[0-9]{8}$/', $_POST['tel']))
Il manque des petits / , et je ne comprends pas tout à fait le debut de l'expression : ^0[^0] -> qu'est ce que tu cherches à faire ici?
Essai comme ça, ça vérife les num : 0x xx xx xx xx
if (preg_match('/^0[1-9]{1}[0-9]{8}$/', $_POST['tel']))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah mais carrément , lool. Ca m'étais pas arrivée ça encore.
Je suis vraiment pas réveillée, un café s'impose.
Résolu? ===> [RESOLU]
Je suis vraiment pas réveillée, un café s'impose.
Résolu? ===> [RESOLU]
Dans ta requête il y a 6 colonnes précisées pour 7 values :
$req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, type, emplacement, date) VALUES(:nom, :sujet, :description, :taille, :type, :emplacement, NOW())');
$req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, type, emplacement, date) VALUES(:nom, :sujet, :description, :taille, :type, :emplacement, NOW())');
oui en fait j'ai déja corrigé cette erreur, j'ai supprimé :description
mais ça ne fonctionne toujours pas. J'ai fait un print_r de $_FILES['image'], voici ce que ça donne:
Array
(
[name] => Photo0295.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpvp2amZ
[error] => 0
[size] => 2464989
)
tout à l'air normal, je comprend pas pourquoi ça marche pas
mais ça ne fonctionne toujours pas. J'ai fait un print_r de $_FILES['image'], voici ce que ça donne:
Array
(
[name] => Photo0295.jpg
[type] => image/jpeg
[tmp_name] => /Applications/MAMP/tmp/php/phpvp2amZ
[error] => 0
[size] => 2464989
)
tout à l'air normal, je comprend pas pourquoi ça marche pas
Pour vérifier déjà que la requête passe, fais un echo de la requête avant de la soumettre pour vérifier déjà que les champs soient bien là, et copie colle la directement dans phpmyadmin pour voir le retour.
Bien je viens de tester mon code sur pc avec WAMP.
Tout ce passe comme sous mac et mamp sauf que cette fois ci j'ai ce message qui apparait dans mon navigateur:
( ! ) Notice: Undefined index: extension in C:\wamp\www\blog\formulaire billet.php on line 56
Call Stack
# Time Memory Function Location
1 0.0010 381512 {main}( ) ..\formulaire billet.php:0
Je ne sais pas ce que ça veut dire, pour rappel voici le code en question:
Encore une fois, merci de votre aide
Tout ce passe comme sous mac et mamp sauf que cette fois ci j'ai ce message qui apparait dans mon navigateur:
( ! ) Notice: Undefined index: extension in C:\wamp\www\blog\formulaire billet.php on line 56
Call Stack
# Time Memory Function Location
1 0.0010 381512 {main}( ) ..\formulaire billet.php:0
Je ne sais pas ce que ça veut dire, pour rappel voici le code en question:
//----------------------------Enregistrement de l'image------------------------------ $req = $bdd->prepare('INSERT INTO images(nom, sujet, taille, type, emplacement, date) VALUES(:nom, :sujet, :description, :taille, :type, :emplacement, NOW())'); $req->execute(array( 'nom' => $_FILES['image']['name'], 'sujet' => $_POST['sujet'], 'taille' => $_FILES['image']['size'], ligne 56 'type' => $_FILES['image']['extension'], 'emplacement' => 'images/' )); $req->closeCursor(); //---------------------------------------------------------------------------------------
Encore une fois, merci de votre aide
Ok, l'ai compris, en fait il me dit que le paramètre $_FILES['image']['extension'] n'existe pas
pourtant, quand je fait un print_r il apparait bien.
J'ai essayé de supprimer la ligne ainsi que les champs qui lui son associer; et ça fonctionne parfaitement, les données sont bien enregistrées dans la table.
Ce que j'aimerais savoir, c'est pourquoi il me dit que $_FILES['image']['extension'] n'existe pas?
pourtant, quand je fait un print_r il apparait bien.
J'ai essayé de supprimer la ligne ainsi que les champs qui lui son associer; et ça fonctionne parfaitement, les données sont bien enregistrées dans la table.
Ce que j'aimerais savoir, c'est pourquoi il me dit que $_FILES['image']['extension'] n'existe pas?