IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

inserer un lien vers une image dans une news


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 59
    Points : 43
    Points
    43
    Par défaut inserer un lien vers une image dans une news
    bonjour,

    j'ai créé un site pour un vendeur de voitures...

    Seulement, il rencontre des problèmes pour mettre des images en ligne.

    j'ai alors voulu le faire via un formulaire avec un input type="file"...

    j'ai, à la base utilisé un script de news afin de mettre facilement des annonces en ligne, et j'ai rajouté alors un script que j'ai trouvé sur un forum afin d'uploader une image dans un dossier du site...

    je vous donne le code de ma page "rediger_news.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Rédiger une annonce</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h3, form
            {
                text-align:center;
            }
    		body
    		{
    			background-image: url("../images/fond-francais-allemand.jpg");
    		}
    		.titre
    		{
    		color: rgb(43, 72, 123);
    		font-weight: bold;
    		}
    		.contenu
    		{
    		color: rgb(43, 72, 123);
    		font-weight: bold;
    		}
            </style>
        </head>
     
        <body>
    <h3><a href="../annonces.php">Retour à la liste des annonces</a></h3>
    <?php
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("balcicars_be");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
    {
        // On protège la variable "modifier_news" pour éviter une faille SQL
        $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
        // On récupère les infos de la news correspondante
        $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'') or die(mysql_error());
        $donnees = mysql_fetch_array($retour);
     
        // On place le titre et le contenu dans des variables simples
        $titre = stripslashes($donnees['titre']);
        $contenu = stripslashes($donnees['contenu']);
    	$photo = stripslashes($donnees['photo']);
        $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rédige une nouvelle news
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
        $titre = '';
        $contenu = '';
        $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
    <form action="administration.php" method="post">
    <p class="titre">Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p class="contenu">
        Contenu :<br />
        <textarea name="contenu" cols="50" rows="10">
        <?php echo $contenu; 
    	echo "Marque : ";
    	echo "Type : ";
    	echo "Année : ";
    	echo "Cylindrée : ";
    	echo "Puissance : ";
    	echo "Kilomètrage : ";
    	echo "Prix : ";
    	echo "Options : ";
    	?>
        </textarea><br />
    	Photo 1 (Max 10Mo) : <input type="file" name="photo1"/>
        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>
    </body>
    </html>
    ainsi que celui de ma page "administration.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
       <head>
           <title>Balcicars Bütgenbach</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            body
    		{
    		background-image: url("../images/fond-francais-allemand.jpg");
    		}
    		h2, th, td, h3
            {
                text-align:center;
            }
            table
            {
                border-collapse:collapse;
                border:2px solid black;
                margin:auto;
            }
            th, td
            {
                border:1px solid black;
            }
            </style>
        </head>
     
        <body>
     
    <h2><a href="rediger_news.php">Ajouter une annonce</a></h2>
    <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3>
    <?php
    $i = 0;
     
    $poid_max_avatar = 10000000;
    $largeur_max_avatar = 100000000000000000;
    $longeur_max_avatar = 100000000000000000;
     
            //On définit les variables :
            $maxsize = $poid_max_avatar; //Poid de l'image
            $maxwidth = $largeur_max_avatar; //Largeur de l'image
            $maxheight = $longeur_max_avatar; //Longueur de l'image
            $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides
     
            if ($_FILES['photo1']['error'] > 0)
            {
                    $i++;
     
            }
     
            if ($_FILES['photo1']['size'] > $maxsize)
            {
                    $i++;
     
            }
     
            $image_sizes = getimagesize($_FILES['photo1']['tmp_name']);
            if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
            {
                    $i++;
     
            }
     
            $extension_upload = strtolower(substr(  strrchr($_FILES['photo1']['name'], '.')  ,1));
            if (!in_array($extension_upload,$extensions_valides) )
            {
                    $i++;
     
            }
     
    if ($i == 0)
        {
    		//On déplace l'avatar
    		$avatar = time();
    		$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
    		$avatar = "./upload-admin/".str_replace(' ','',$avatar).".".$extension_upload;
    		move_uploaded_file($_FILES['photo1']['tmp_name'],$avatar);
        }
    	?>
    <?php
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("balcicars_be");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['titre']) AND isset($_POST['contenu']))
    {
        $titre = addslashes($_POST['titre']);
        $contenu = addslashes($_POST['contenu']);
        // On vérifie si c'est une modification de news ou pas
        if ($_POST['id_news'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query('INSERT INTO news(titre, contenu) VALUES(\''. $titre. '\', \''. $contenu.'\')')or die(mysql_error());
        }
        else
        {
            // On protège la variable "id_news" pour éviter une faille SQL
            $_POST['id_news'] = addslashes($_POST['id_news']);
            // C'est une modification, on met juste à jour le titre et le contenu
            mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'")or die(mysql_error());
        }
    }
     
    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------
    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
        // Alors on supprime la news correspondante
        // On protège la variable "id_news" pour éviter une faille SQL
        $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
        mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
    ?>
    <table><tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Titre</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC')or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr>
    <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="administration.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news
    ?>
    </table>
    </body>
    </html>
    j'aimerais, à partir de la page rediger_news.php, dans laquelle j'ai un champ pour ajouter une image, que cette image s'uploade dans un dossier "upload-admin" qui se trouve dans le même répertoire que la page administration.php et la page rediger_news.php.

    Il ne me reste alors qu'a insérer un lien vers cette image dans la page dans laquelle s'affiche la news. C'est ma page annonces.php que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Balcicars Annonces Angebote</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h1
            {
                text-align:center;
    			color: rgb(168, 0, 8);
    			text-decoration: underline;
            }
            h3
            {
    			text-align: center;
                background-color: black;
                color: white;
                font-size: 0.9em;
                margin-bottom: 0px;
            }
            .news p
            {
                background-color:#CCCCCC;
                margin-top:0px;
            }
            .news
            {
                width:70%;
                margin:auto;
            }
    		body
    		{
    		width: 800px;
    		margin: auto;
    		margin-top: 10px;
    		margin-bottom: 10px;
    		background-image: url("images/fond-francais-allemand.jpg");
    		}
    		.retour-fr
    		{
    		color: rgb(43, 72, 123);
    		font-weight: bold;
    		}
    		.retour-de
    		{
    		color: rgb(43, 72, 123);
    		font-weight: bold;
    		}
    		a
    		{
    		color: red;
    		font-weight: bold;
    		}
     
            </style>
        </head>
     
        <body>
    <h1>Annonces.</h1>
    <h1>Angebote.</h1>
     
     
    <?php
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("balcicars_be");
    // On récupère les 5 dernières news
    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 1000')or die(mysql_error());
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>
    <div class="news">
        <h3>
            <?php echo $donnees['titre']; ?>
        </h3>
     
        <p>
        <?php
        // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
        $contenu = nl2br(stripslashes($donnees['contenu']));
        echo $contenu;
        ?>
    	<br/>
     
        </p>
    </div>
    <?php
    } // Fin de la boucle des news
    ?>
    <p class="retour-fr">Veuillez cliquer <a href="francais.html">ICI</a> pour retourner à la page d'acceuil en français.</p>
    <p class="retour-de">Klicken Sie bitte <a href="allemand.html">HIER</a> um zur Deutschen Hauptseite zu gelangen.</p>
    </body>
    </html>
    Je ne sais pas comment insérer un lien vers l'image uploadée auparavent dans la news. et je ne vois pas ce qui cloche lors de l'upload de l'image...

    Merci beaucoup

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta declaration de formulaire n'est pas bonne pour un upload :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="administration.php" method="post" enctype="multipart/form-data">
    Tu peux ensuite enregistrer dans ta table news, le nom de l'image et le relire quand tu affiches la news.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 59
    Points : 43
    Points
    43
    Par défaut
    ah oui, je n'avait pas pensé à la déclaration du formulaire... Merci beaucoup, maintenant, ça fonctionne.

    Mais si je stocke le nom (qui au passage à été changé lors de l'upload) dans ma table news, et que je l'affiche dans ma news, ce ne sera pas un lien cliquable... Si ?

    sinon, comment faire ? je crée une nouvelle entrée dans ma table news... de quel type ?

    Merci beaucoup

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Une image dans une image (image map?)
    Par oklama dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 14h13
  3. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2006, 18h40
  4. Réponses: 3
    Dernier message: 30/10/2006, 11h21
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo