Insertion lien image php base mysql
Résolu/Ferméjordane45 Messages postés 38269 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 novembre 2024 - 11 juil. 2022 à 18:36
- Insertion lien image php base mysql
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Verifier un lien - Guide
- Image iso - Guide
- Alert php ✓ - Forum PHP
7 réponses
10 juil. 2022 à 13:01
Bonjour
Cela indique que le répertoire dans lequel tu veux déplacer l'image n'existe pas, où ne se trouve pas à l'emplacement que tu penses, ou qui ne dispose pas des droits en écriture.
Commence parfaire un écho de tes variables $dossier_photos.$photo1
Et avant le move,
Test si le répertoire $dossier_photos existe .(via l'instruction file_exists)
10 juil. 2022 à 18:17
Les variables sont bonnes, le répertoir destination existe !!!??
10 juil. 2022 à 18:29
Tu montres le code modifié qui intègre les corrections que je t'ai demandé ?
Sinon .. impossible pour moi de savoir si tu l'as bien fait.
Et au passage ( pour la cinquantième fois...), l'extension mysql_* est OBSOLETE !
Il faut réécrire ton code en PDO ou MYSQLI
Actuellement, la majorité des serveurs web fonctionnent avec php 7 voir php 8 .. autant dire que ton code n'y fonctionnera pas...(si tu ne fais pas la correction que je t'ai déjà plusieurs fois indiqué )
10 juil. 2022 à 18:38
Je n'ai pas modifié grand chose dans mon code
<?php include ('../connexion/connexion.php'); $id=$_GET['id']; $photo1=$_GET['photo1']; $descript_chat=$_GET['descript_chat']; //*** description du chat *** $descript_chat = stripslashes($descript_chat); //----pour éviter les \ ds le descript_chat-------------- $descript_chat = mysql_real_escape_string($descript_chat); $descript_chat = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\">\\1://\\2\\3</A>",$descript_chat); //*** Insertion photo1 **** $dossier = '../images/chats'; $photo1 = basename($_FILES['photo1']['name']); //echo $photo1 ; //exit; if (!empty($photo1)) { $photo1 = strtr($photo1,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $photo1 = preg_replace('/([^.a-z0-9]+)/i', '_', $photo1); ::$photo1 = "$id$photo1"; move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier.$photo1); $resultY=mysql_query("UPDATE liste_chats SET photo1='$dossier$photo1' WHERE id='$id'"); } $result=mysql_query("UPDATE liste_chats SET descript_chat='$descript_chat' WHERE id='$id'"); header("Location: ../index.php?page=liste_chats"); mysql_close(); exit; ?>
Et chez Free, leur serveur n'utilise pas MYSQLI.
10 juil. 2022 à 18:57
En fait, l'image est enregistrée dans le dossier précédent, soit "images", alors que je demande le dossier "images/chats".
Et pour $descript_chat, il n'est pas enregistré dans la base !!
10 juil. 2022 à 19:15
Où sont les modifications que je t'ai demandé pour vérifier que le chemin de destination existe ?
Surtout que je t'ai donné un lien qui t'explique comment utiliser la fonction...
Pour Free, il me semble bien qu'on peut paramétrer une version de PHP plus élevée ce qui implique que tu auras au moins PDO.. voir même mysqli.
11 juil. 2022 à 09:32
Salut jordane45.
J'ai fait les tests comme tu me l'avais expliqué, et ils étaient tous positif. C'est vrai que je ne les ais pas laissé dans le script ..............
Pour MYSQLI, pour maintenant, je reste sur mysql. De toute façon, après ce site, j'arrête !!!! :o)
11 juil. 2022 à 10:02
Si tu ne veux pas les remettre et me les montrer.. j'en resterai là....
Bonne journée
11 juil. 2022 à 10:39
Au passage, modifie
$photo1 = "$id$photo1";
Par
$photo1 = $id . $photo1;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question11 juil. 2022 à 14:30
Voilà le code
<?php include ('../connexion/connexion.php'); $id=$_GET['id']; $photo1=$_GET['photo1']; $descript_chat=$_POST['descript_chat']; //*** description du chat *** $descript_chat = stripslashes($descript_chat); //----pour éviter les \ ds le descript_chat-------------- $descript_chat = mysql_real_escape_string($descript_chat); $descript_chat = eregi_replace("([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])","<A HREF=\"\\1://\\2\\3\" TARGET=\"_blank\">\\1://\\2\\3</A>",$descript_chat); //*** Insertion photo1 **** $dossier = '../images/chats'; $photo1 = basename($_FILES['photo1']['name']); //echo $photo1 ; //echo $dossier; //exit; if (!empty($photo1)) { $photo1 = strtr($photo1,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $photo1 = preg_replace('/([^.a-z0-9]+)/i', '_', $photo1); if (file_exists($dossier)) { echo "Le fichier $dossier existe."; } else { echo "Le fichier $dossier n'existe pas."; } exit; move_uploaded_file($_FILES['photo1']['tmp_name'], $dossier . $photo1); //$result=mysql_query("UPDATE liste_chats SET photo1='$dossier.$photo1' WHERE id='$id'"); } if (!empty($photo1) || !empty($descript_chat)) { $result=mysql_query("UPDATE liste_chats SET photo1='$dossier$photo1', descript_chat='$descript_chat' WHERE id='$id'"); } //$result=mysql_query("UPDATE liste_chats SET descript_chat='$descript_chat' WHERE id='$id'"); header("Location: ../index.php?page=liste_chats"); mysql_close(); exit; ?>
Donc, la photo s'enregistre dans ../images, alors que je demandais ../images/chats.
L'écriture dans la base ne se fait pas !?
11 juil. 2022 à 14:40
Faudrait peut être retirer le exit..... Ou le mettre dans le else
11 juil. 2022 à 16:15
J'ai mis le exit en commentaire.....
J'ai comme message retour :
Le fichier ../images/chats existe.
Warning: Cannot modify header information - headers already sent by (output started at /mnt/168/sda/5/0/th1/tatachat/connexion/connexion.php:2) in /mnt/168/sda/5/0/th1/tatachat/gestion/add_chat.php on line 40
L'image n'est toujours pas dans le bon fichier (mais ça ce n'est pas trop grave). Et il n'y a pas eu d'inscription dans la base.
11 juil. 2022 à 18:04
Tu n'aurais pas oublié de mettre un slash à la fin du nom de ton dossier ?
11 juil. 2022 à 18:26
Merci ! C'est exact ! Mon image se trouve maintenant dans le bon dossier.....
Reste le move qui ne fonctionne pas ..............
Et le header. Pour ça, j'avais déjà eu le tour. Faut que je retrouve la solution. Il me semble qu'il fallait faire une redirection avec du javascript.
11 juil. 2022 à 18:36
Le move fonctionne.. sinon ton image ne serait pas dans le bon répertoire......
Et pour le header, il faut enlever le echo du if file_exists (ne garder que celui du else éventuellement)