Insertion de données dans une table en PHP
Ekom
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
S'il vous plaît, je suis un débutant en PHP. Je fais une requête d'insertion de données dans une table en PHP. Mon objectif est que le client joint 1 ou plusieurs images en plus les autres entrées.
Quant j'exécute la requête, une page vide s'affiche. Les images ne sont pas uploadées et toutes les données ne sont pas non plus insérées dans la table.
Veuillez m'assister, s'il vous plaît.
Voici mon code PHP:
$db_host = "localhost"; $db_username = "root"; $db_password = ""; $db_name = "my_database"; $conn = new mysqli($db_host, $db_username, $db_password, $db_name); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $utilisateur = filter_input(INPUT_POST, 'user', FILTER_SANITIZE_STRING); $titre = filter_input(INPUT_POST, 'titre', FILTER_SANITIZE_STRING); $type = filter_input(INPUT_POST, 'type', FILTER_SANITIZE_STRING); $disponibilite = filter_input(INPUT_POST, 'disponibilite', FILTER_SANITIZE_STRING); $prix = filter_input(INPUT_POST, 'price', FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); $devise = filter_input(INPUT_POST, 'devise', FILTER_SANITIZE_STRING); $detail = filter_input(INPUT_POST, 'detail', FILTER_SANITIZE_STRING); $cat = (int) $_POST['cat']; // Chemin de sauvegarde des images $target_dir = "../images/avatars/"; // Upload et insertion de chaque image dans la base de données for ($i = 1; $i <= 6; $i++) { $avatar_name = "avatar" . $i; // Vérifier si l'utilisateur a sélectionné une image if ($_FILES[$avatar_name]['name'] !== '') { $target_file = $target_dir . basename($_FILES[$avatar_name]["name"]); $uploadOk = 1; $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); // Vérifier si le fichier image est réellement une image if (isset($_POST["envoyer"])) { $check = getimagesize($_FILES[$avatar_name]["tmp_name"]); if ($check !== false) { $uploadOk = 1; } else { $uploadOk = 0; } } // Vérifier si le fichier existe déjà if (file_exists($target_file)) { $uploadOk = 0; } // Vérifier la taille du fichier if ($_FILES[$avatar_name]["size"] > 18000000) { $uploadOk = 0; } // Si toutes les vérifications sont valides, uploader le fichier image if ($uploadOk == 1) { if (move_uploaded_file($_FILES[$avatar_name]["tmp_name"], $target_file)) { // Insertion de l'image dans la base de données $query = "INSERT INTO annonce_table (annonce_cat_id, utilisateur, type, titre, disponibilite, prix, devise, detail, avatar1, avatar2, avatar3, avatar4, avatar5, avatar6, date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW()) ON DUPLICATE KEY UPDATE avatar" . $i . "=?"; $stmt = $conn->prepare($query); $stmt->bind_param("ssssssssssssss", $cat, $utilisateur, $type, $titre, $disponibilite, $prix, $devise, $detail, $avatar1, $avatar2, $avatar3, $avatar4, $avatar5, $avatar6); ${"avatar_position" . $i} = $target_file; $stmt->bind_param("s", ${"avatar_position" . $i}); if ($stmt->execute()) { echo "<button type='button' class='btn btn-success toastrDefaultSuccess'> Votre annonce est publiée avec succès </button>"; $url = "../Espace_perso.php"; if (!headers_sent()) { header('Location: ' . $url); exit; } else { echo "<script type='text/javascript'>"; echo "window.location.href='" . $url . "';"; echo "</script>"; exit; } echo "Image uploadée avec succès."; } else { echo "Erreur d'insertion image: " . $conn->error; } $stmt->close(); } else { echo "Erreur d'upload d'image."; } } } }
A voir également:
- Insertion de données dans une table en PHP
- Fuite données maif - Guide
- Table ascii - Guide
- Insertion table des matières word - Guide
- Supprimer les données de navigation - Guide
- Touche insertion clavier - Guide
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
pour éviter d'afficher une page blanche, ajoute des echo dans ton code, pour t'assurer de toujours afficher un texte qui te permettra de comprendre le comportement de ton code.
Bonjour,
Pense aussi à activer l'affichage des erreurs php
Bonjour yg_be,
Merci pour ton apport.
J'ai inséré des echo comme tu pouvais le voir, mais mon code ne marche toujours pas. La page blanche ou vide s'affiche toujours.
S'il vous plaît, pouvez-vous jeter un coup d'oeil sur mon code et me corriger ce qui ne va pas?
Si ta page est blanche, c'est qu'il y a des cas où il manque des echo.