pb modif image dans bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb modif image dans bdd

par soulvision » 23 juin 2005, 15:54

pourtant le même script est utilisé pour l'ajout de l'image et ne pose pas de problème...

par mere-teresa » 23 juin 2005, 15:50

à première lecture, j'ai pensé qu'il y avait une erreur dans le script, une virgule mal placée :

Warning: rename(,img/)

par soulvision » 23 juin 2005, 15:47

ce repertoire existe puisque les images y ont été uploadées une premiere fois.. C'est leur moficiation qui pose problème.. enfin je vais regarder ça..
merci en tout cas..

par mere-teresa » 23 juin 2005, 15:45

Relis bien les tutos (notamment celui de PHPFrance), car il est important pour toi de comprendre le mécanisme du file upload : tu comprendras mieux à quoi sont dues les erreurs.

Dans ce cas, le script te dit quoi faire :
- vérifie que le répertoire img existe à l'endroit indiqué
- vérifie que le script peut écrire dedans (droits Unix)

par soulvision » 23 juin 2005, 15:42

Je ne suis pas sure de l'avoir placé au bon endroit.. Toujours est-il que j'ai cette erreur:

Warning: rename(,img/): No such file or directory in /home/soulvisi/public_html/wir/modif-news.php on line 30
Le déplacement du fichier temporaire a échoué vérifiez l'existence du répertoire img/

par mere-teresa » 23 juin 2005, 15:34

Et si tu utilisais $_FILES['monfichier'] comme tableau...
et que tu demandais :

echo $_FILES['monfichier']['name'] pour savoir...
et dans un elan, tu pourrais même remplacer toutes les occurences de $monfichier par $_FILES['monfichier']

par soulvision » 23 juin 2005, 15:31

Oki, la variable semble rien contenir car ceci apparaît :

mon fichier contient :
Le fichier n'a pas été uploadé (trop gros ?)

par mere-teresa » 23 juin 2005, 15:28

suis sans doute pas très douée (enfin nan ça c une certitude) mais ça ne fait rien quand je met la ligne echo $monfichier...
Est-ce que ça signifie que $monfichier contient rien ou que je me suis mal débrouillée?
merki..
cela signifierait soit :
- que ta variable est vide, d'où l'erreur
- que ton script n'arrive mm pas à cette ligne

Pour en être certain(e), fais donc :
echo "mon fichier contient :".$monfichier."<br />";

par soulvision » 23 juin 2005, 15:22

suis sans doute pas très douée (enfin nan ça c une certitude) mais ça ne fait rien quand je met la ligne echo $monfichier...
Est-ce que ça signifie que $monfichier contient rien ou que je me suis mal débrouillée?
merki..

par mere-teresa » 23 juin 2005, 15:17

Hum je voulais dire :
fais un echo $monfichier pour voir ce qu'elle contient réellement juste avant le if(isset...

par soulvision » 23 juin 2005, 14:54

Humm
$monfichier contient le chemin et le nom du fichier (par exemple : mg/couv1.jpg)..

Comment puis-je faire pour que mon fichier soit 'set' ?
merci pour le coup de main.

par mere-teresa » 23 juin 2005, 12:31

Que contient $monfichier ?

Car ton message d'erreur provient du fait que $monfichier n'est pas set (voir PHP)
    if (isset($monfichier)) {

pb modif image dans bdd

par soulvision » 22 juin 2005, 15:30

Bonjour, j'ai créé un formulaire permettant d'entrer des news et une image, le tout stoké dans une bdd (le chemin de l'image uniquement est stoké) et j'ai ensuite créé la page modif pour gerer les news. J'arrive a modifier des champs textes dans problèmes mais si je veux remplacer l'image par une autre, cela ne marche pas. L'ancienne est effacée et la nouvelle n'est pas uploadée et le message d'erreur suivant apparait:
Le fichier n'a pas été uploadé (trop gros ?)
Je ne vois pas du tout d'ou vient l'erreur car je me suis inspirée du code pour l'ajout des news et de l'image qui marche super bien..

Merci de votre aide..

Voici mon code pour la modif des news (je l'ai fait à partir d'un tutorial dans un bouquin sur php/mysql) :
<?php
//INFORMATION ENVOYEE PAR URL (GET)
if(isset($_GET['id'])) $id=$_GET['id']; else $id=0;
// INITIALISATION DES VARIABLES
if(isset($_POST['auteur'])) $auteur=$_POST['auteur']; else $auteur="";
if(isset($_POST['titre'])) $titre=$_POST['titre']; else $titre="";
if(isset($_POST['date'])) $date=$_POST['date']; else $date="";
if(isset($_POST['news'])) $news=$_POST['news']; else $news="";
if(isset($_POST['image'])) $monchemin=$_POST['image']; else $monchemin="";
if(isset($_POST['action'])) $action=$_POST['action']; else $action="";
if(isset($_POST['idform'])) $idform=$_POST['idform']; else $idform=0;


//CONNEXION ET SÉLECTION DE LA BASE
require_once('maconnexion.php');
mysql_select_db($db_maconnexion, $connexionwir);

//TESTE SI ENVOI DEPUIS FORMULAIRE
if($action=="modif") {
    $repertoireDestination = "img/";
    $nomDestination        = $monfichier_name;
	$chemin= $repertoireDestination.$nomDestination;
    // Pour raison de sécurité nous ajouterons aux fichiers
    // portant une extension .php .php3, l'extension .txt
    
    if (isset($monfichier)) {
        if (rename($monfichier,
                   $repertoireDestination.$nomDestination)) {
            echo "Le fichier temporaire ".$monfichier.
                 " a été déplacé vers ".$repertoireDestination.$nomDestination;
        } else {
            echo "Le déplacement du fichier temporaire a échoué".
                 " vérifiez l'existence du répertoire ".$repertoireDestination;
       }          
    } else {
       echo "Le fichier n'a pas été uploadé (trop gros ?)";
    
    }
//REQUETE SQL
$updatenewsbox = "UPDATE newsbox SET
auteur='".$auteur."',
titre='".$titre."',
date='".$date."',
image='".$chemin."',
news='".$news."'
WHERE id=".$idform ;
//SOUMISSION REQUETTE
mysql_query($updatenewsbox, $connexionwir) or die(mysql_error());

}
//RECUPÉRATION DES VALEURS INITIALES DES CHAMPS
$query_rsListenewsbox = "SELECT * FROM newsbox WHERE id=".$id." ORDER BY id";
$rsListenewsbox = mysql_query($query_rsListenewsbox, $connexionwir) or die(mysql_error());
$row_rsListenewsbox = mysql_fetch_assoc($rsListenewsbox);
?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Modification de News</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>
<form action="modif-news.php" method="post" name="form-news" id="form-news">
  <p>MODIFICATION DES NEWS   
  <p><a href="ajout-news.php">Ajout de News  </a>
  <p><a href="gestion-news.php">Gestion de News  
  </a>
  <table width="400" border="0">
    <tr>
      <td>Auteur</td>
      <td><input type="text" name="auteur" id="auteur" value="<?php echo $row_rsListenewsbox['auteur'];?>"></td>
    </tr>
    <tr>
      <td>Titre</td>
      <td><input type="text" name="titre" id="titre" value="<?php echo $row_rsListenewsbox['titre'];?>"></td>
    </tr>
    <tr>
      <td>Date</td>
      <td><input name="date" type="text" maxlength="10" id="date" value="<?php echo $row_rsListenewsbox['date'];?>"></td>
    </tr>
    <tr>
      <td>News</td>
      <td><input name="news" type="text" id="news" value="<?php echo $row_rsListenewsbox['news'];?>" size="100"></td>
    </tr>
    <tr>
      <td>Photo</td>
      <td><input type="hidden" name="MAX_FILE_SIZE" value="10000000" /><input name="monfichier" type="file" id="monfichier" value="<?php echo $row_rsListenewsbox['image'];?>"/></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="action" type="hidden" id="action" value="modif">
        <input name="idform" type="hidden" id="idform" value="<?php echo $row_rsListenewsbox['id'];?>" >
        <input type="submit" name="envoyer" value="Envoyer"></td>
    </tr>
  </table>
  <p>    
  <p>
    <br>
  <p>    <br>
<br>
<br>
    <br>
  </p>
</form>
</body>
</html>