Voilà,bonjour à tous j'ai suivi le tuto "Gérer une news" et "créer une galerie en php" et j'ai voulu dans une
partie "admin" faire en sorte que l'administrateur puisse ajouter une image correspondant à chaque billet.
L'idée est simple, je veux utiliser la fonction "rename" pour que le nom de l'image soit
renommée et prenne pour valeur l'id de la news et à la fin .png ensuite j'afficherai l'image avec l'id, je reçois un message d'erreur certainement dû à mon incompétence :P, ça sera plus clair avec le code :P .
Merci, si vous pouvez m'aider et même si vous pouvez pas.

Page index :

<?php
$sql= "SELECT * FROM news"; 
$req= mysql_query($sql) or die ('ERREUR ! <br />'.$sql.mysql_error()); 
while($data=mysql_fetch_assoc($req)){
    ?>
<h1><a href="index.php?id=<?php echo $data'id']; ?>"><?php echo '<div                         
id="titre1">'.$data'titre'].'</div>'; ?></a></h1>
<?php if (is_file("images/" . $data"id"] . ".png")) {
echo '<img src="images/'. $data"id"].'.png ">';
} ?>
<p><?php echo $data'description']; ?></p>
<?php echo"<p align\"right\">".date("j/n/Y G:i",strtotime($data"date"]))."</p>";
                    } } ?>

page de traitement :

<?php 
require "../config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
extract($_POST);
$sql="INSERT INTO news(titre,description,contenu) VALUES ('$titre','$description','$contenu')";
$req= mysql_query($sql) or die ('ERREUR ! <br />'.$sql.mysql_error()); 
    if(isset($_GET'id'])){
                    $id=intval(htmlentities($_GET'id']));
                    if ($id !=0) {
    $id=intval(htmlentities($_GET'id']));
    $sql='SELECT * FROM news WHERE id='.$id.'';
    $req= mysql_query($sql) or die ('ERREUR ! <br />'.$sql.mysql_error());
    $data=mysql_fetch_assoc($req);
}}

if (!empty($_FILES)) { 
    $img= $_FILES'img'];
    $ext = strtolower(substr($img'name'],-3));
    $allow_ext = array("jpg",'png','gif');
    if(in_array($ext,$allow_ext)){  
        move_uploaded_file(($img'tmp_name']), "images/".$img'name']);
        rename($img'name'],$id);
    }

                    }
    else{
    echo "Mauvais fichier";
            }

 $dos = "images";
 $dir = opendir($dos);
while ($file = readdir($dir)){
 $allow_ext = array("jpg",'png','gif');
 $ext = strtolower(substr($file,-3));
 if(in_array($ext,$allow_ext)){ 
    ?>
  <?php
  echo $file;
    }
}
?>

3 réponses


Quel est ton message d'erreur ?

Lordo
Auteur

C'est le message d'erreur que j'ai :

Notice: Undefined variable: id in C:\wamp\www\Youcoproject\news\admin\create.php on line 29
Warning: rename(Ex_Contour.png,) [function.rename]: Invalid argument in C:\wamp\www\Youcoproject\news\admin\create.php on line 29.

On dirait qu'il ne trouve pas l'id de la news et quand je mets une chaine de caractère à la place de l'id il me met ce message d'erreur:

Warning: rename(Diffdetaille.png,chaine) [function.rename]: Le fichier spécifié est introuvable. (code: 2) in C:\wamp\www\Youcoproject\news\admin\create.php on line 29

Bien alors je te propose quelque chose de beaucoup plus simple, à mes yeux.
Tu as ta page dans laquelle tu crées ta news admettons qu'elle s'appelle create.php , dans laquelle il y a les champs pour le titre de la news, le contenu, etc.. Plus un input de type files pour gérer les images. Donc dans ta page create.php tu aurais 2 formulaires, un pour l'upload de l'image et l'autre pour la création de ta news. Le formulaire pour la news pointerai vers create.php et le formulaire vers une autre page appelée par exemple upload.php

Compris ?

Ps : si quelqu'un a une meilleure idée allez y.. Comme tu es débutant je propose ça, c'est assez simple !