Gestion d'images dans une news

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 : Gestion d'images dans une news

Re: Gestion d'images dans une news

par franckyffa » 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']));
        }
 
     
         
        ?>

Gestion d'images dans une news

par franckyffa » 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>