Gestion d'images dans une news

Petit nouveau ! | 2 Messages

24 sept. 2014, 15:49

Bonjour a tous.

Je m'appelle Franck et je me suis mis au php depuis quelques temp.

Je suis en train de réaliser un site pour un ami et je lui a fait une section "news" et j'ai rajouté la possibilité d'uploader une image. Le problème que je rencontre est que je n'arrive pas a faire en sorte d'afficher les news avec et sans images a la fois, soit cela m'affiche soit toutes les news sans images, soit avec images et donc ça bug pour les news qui n'ont pas d'image.

Ma table est structuré de cette manière, "id, titre, img_news, texte, date news"

Je vous mets donc le code de la page news, avec mon dernier essai en date et le boute de code du formulaire e la page admin.

Si vous pouviez au moins me donné la direction a prendre pour trouvé la solution car la j'avoue que je galere un peu :)

Merci a tous,

Franck
<?php include("../../include/topsite.php"); ?>
         
        <div id="Menu">
         
                 
                <?php include("../../include/menu.php"); ?>
                 
                 
 
                </div>
                 
            <?php include("../../include/localhost.php"); ?>
         
        <div id="Menu3">
        <h2>Un peu de Moi </h2>
         
        </div>
         
        <div id="whoiam_center">
         
         
         
         
             
             
            <p class="pages">
       
     
    <?php
 
include("../../include/localhost.php");
  
    
    $nombreDeMessagesParPage = 10; //
    $reponse = $bdd->query('SELECT COUNT(*) AS nb_messages FROM leanews ');
    $nbre_message = $reponse->fetch();
    $totalmessage = $nbre_message['nb_messages'];
    $nombreDePages  = ceil($totalmessage / $nombreDeMessagesParPage);
     
     
?>
 
 
   
</p>
 
<?php
     
   
if (isset($_GET['page']))
{
        $page = $_GET['page'];
}
else
{
        $page = 1;
}
   
 
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
   
$req = $bdd->query('SELECT titre, img_news, texte, DATE_FORMAT(datenews, \'%d/%m/%Y\') AS datenews FROM leanews ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
 
   
while ($donnees = $req->fetch())
 
if (isset($_POST['titre']) AND isset($_POST['img_news']) AND isset($_POST['texte']))
{
    
 
    echo '<p><span class="date">le' . $donnees['datenews'] . '</span><span class="titrebillet"> : ' . $donnees['titre'] . ' </span></p><img src="../../admin/admwhoiam/img_news/mini/' . $donnees['img_news'] . '.jpg" alt="img_news" /><p><span class="textewhoiam">' . $donnees['texte'] . '</span></p>
        <p><img src="../images/demark.jpg" alt="demarquation"/><p>';
         
             
}
 
    else
    {
   echo '<p><span class="date">le' . $donnees['datenews'] . '</span><span class="titrebillet"> : ' . $donnees['titre'] . ' </span></p><p><span class="textewhoiam">' . $donnees['texte'] . '</span></p>
        <p><img src="../images/demark.jpg" alt="demarquation"/><p>';
      
    }
  
  
 
   
  
?>
<?php
    echo '<span class="date">Page : </span>';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="leanews.php?page=' . $i . '">' . $i . '</a> ';
}
?>
             
         
 
 
         
        </div>
        <div id="footer">
         
 
                 
             
                </div>
                 
         
         
 
         
 
         
        </body>
</html>

Petit nouveau ! | 2 Messages

24 sept. 2014, 15:50

et voici le code du formulaire dans la section Admin.
 <form action="index.php" method="post" enctype="multipart/form-data">
     
    <label for="repertoirethumb">Image news :</label> <input type="file" name="mon_image" /> <br />
     <input type="submit" name="go" value="Envoyer" />
     </form>
     <?php
 
 
/
 
     
     $dir_mini = 'img_news/mini/';
 
 
 
 
 
 
         
     
    $dir = 'img_news/photos/';
     
     
     
    $ratio = 200;
 
     
    if (isset($_POST['go'])) {
     
    if (empty($_FILES['mon_image']['tmp_name'])) {
    
    $erreur = 'Aucun fichier envoyé.';
    }
    else {
  
    $tableau = @getimagesize($_FILES['mon_image']['tmp_name']);
    if ($tableau == FALSE) {
    
    unlink($_FILES['mon_image']['tmp_name']);
    $erreur = 'Votre fichier n\'est pas une image.';
    }
    else {
    
    if ($tableau[2] == 2 || $tableau[2] == 3) {
    
    if (is_file('../pics/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name'];
    else $file_upload = $_FILES['mon_image']['name'];
 
     
     
    copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload);
 
  
 
    
    if ($tableau[2] == 2) {
     
    $src = imagecreatefromjpeg($dir.'/'.$file_upload);
    
    if ($tableau[0] > $tableau[1]) {
    $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
    imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
    }
    else {
    $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
    imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
    }
     
    imagejpeg ($im, $dir_mini.'/'.$file_upload);
    }
    elseif ($tableau[2] == 3) {
    $src = imagecreatefrompng($dir.'/'.$file_upload);
    if ($tableau[0] > $tableau[1]) {
    $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
    imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
    }
    else {
    $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
    imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
    }
    imagepng ($im, $dir_mini.'/'.$file_upload);
    }
    
    header('location: index.php');
    exit();
    }
    else {
     
    unlink($_FILES['mon_image']['tmp_name']);
    $erreur = 'Votre image est d\'un format non supporté.';
    }
    }
    }
    }
 
   
    if (isset($_GET['del'])) {
    if (empty($_GET['del'])) {
     
    $erreur = 'Aucune image à supprimer';
    }
    else {
    $pic_a_zapper = $_GET['del'];
    
    if (is_file('../mini/'.$pic_a_zapper) && is_file('../pics/'.$pic_a_zapper)) {
    unlink('../mini/'.$pic_a_zapper);
    unlink('../pics/'.$pic_a_zapper);
    }
 
    else {
    $erreur = 'Image non reconnue';
    }
    }
    }
    ?>
      
      
     <form action="liste_news2.php" method="post" >
    <label for="titre">Titre de la news : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /><br >
    <label for="img_news">nom de l'image : <input type="text" size="30" name="img_news" value="<?php echo $img_news; ?>" /><br >
    <label for="Contenu"> Texte de la news :<br />
    <textarea name="texte" cols="50" rows="10">
    <?php echo $contenu; ?>
    </textarea><br />
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" name="go" value="Envoyer" />
    </form>
     
 
    <?php
if ( !empty($_POST['titre']) AND !empty($_POST['img_news']) AND !empty($_POST['texte']) AND !empty($_POST['id_news']) ){
        $req = $bdd->prepare('INSERT INTO leanews (titre, img_news, texte, datenews) VALUES(?, ?, ?, now())');
        $req->execute(array($_POST['titre'], $_POST['img_news'], $_POST['texte'], $_POST['id_news']));
        }
 
     
         
        ?>