[PHP]Fonction rechercher

nhea Messages postés 55 Statut Membre -  
nhea Messages postés 55 Statut Membre -
Bonjour,
je cherche une fonction qui remplace des ligne de code par des images, par example

si quelqu'un écrit (:rire:) sur le forum, sa va afficher un bonhomme sourire.

Merci de vos réponse d'avance
Configuration: Windows vista et XP
Linux Ubuntu

14 réponses

  1. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    bonsoir,

    je ne sais pas si cette fonction existe en php mais peut être pouvez vous en créer une.
    0
  2. Atropa Messages postés 2051 Statut Membre 274
     
    il faut le faire avec str_replace()

    par exemple : $string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);
    0
    1. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
       
      bonne idée.
      0
  3. nhea Messages postés 55 Statut Membre
     
    ok, merci je vais essayer tantôt, la je doit faire autre chose.
    0
  4. nhea Messages postés 55 Statut Membre
     
    2 question:

    ou faut que je place la ligne de code que tu m'a donné, voici mon code si sa peut t'aider a m'indiquer ou:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="fr-ca"><head></head>
    <body style="background-image: url(arrplan.jpg);">
    <div style="text-align: center;">
    <div style="text-align: center;">
    <img style="width: 990px; height: 255px;" alt="" src="header.png">
    <?php
    if (!isset($_GET['id_sujet_a_lire'])) {
    echo 'Sujet non défini.';
    }
    else {
    ?>
    <table width="500" border="1"><tr>
    <td>
    Auteur
    </td><td>
    Messages
    </td></tr>
    <?php
    // on se connecte à notre base de données
    mysql_connect ('localhost', 'root', '*******************');
    mysql_select_db ('forum');
    // on prépare notre requête
    $sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE
    correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC';
    // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    // on va scanner tous les tuples un par un
    while ($data = mysql_fetch_array($req)) {
    // on décompose la date
    sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour,
    $heure, $minute, $seconde);
    // on affiche les résultats
    echo '<tr>';
    echo '<td>';
    // on affiche le nom de l'auteur de sujet ainsi que la date de la réponse
    echo htmlentities(trim($data['auteur']));
    echo '<br />';
    echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute;
    echo '</td><td>';
    // on affiche le message
    echo nl2br(htmlentities(trim($data['message'])));
    echo '</td></tr>';
    }
    // on libère l'espace mémoire alloué pour cette reqête
    mysql_free_result ($req);
    // on ferme la connection à la base de données.
    mysql_close ();
    ?>
    <!-- on ferme notre table html -->
    </table>
    <br /><br />
    <!-- on insère un lien qui nous permettra de rajouter des réponses à ce sujet -->
    <a href="./insert_reponse.php?numero_du_sujet=<?php echo $_GET['id_sujet_a_lire']; ?>
    ">Répondre</a>
    <?php
    }
    ?>
    <br /><br />
    <!-- on insère un lien qui nous permettra de retourner à l'accueil du forum -->
    <a href="./index.php">Retour à l'accueil</a>
    </body></html>

    2iemement quand je le met avant d'afficher le message, sa me donne l'erreur suivent:
    Notice: Undefined variable: string in C:\Program Files\EasyPHP 3.0\www\test\forum\lire_sujet.php on line 43
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Atropa Messages postés 2051 Statut Membre 274
     
    l'idéale serait de le faire à l'enregistrement dans la db ça n'utiliserait qu'une fois la fonction au lieu de le faire à chaque affichage.

    quand je fais ce genre de chose je fais une fonction dans un sens et une fonction dans l'autre et j'utilise la premier avant l'enregistrement et la seconde avant la modification parce que logiquement on enregistre et on modifie moins qu'on affiche... à part peut être si on a affaire à des personnes très lunatique.
    0
  7. nhea Messages postés 55 Statut Membre
     
    Et ou je le mets le code que tu m'a donné($string = str_replace(':rire:','<img src="./img.jpg" alt="sourire" />',$string);)?
    0
  8. Atropa Messages postés 2051 Statut Membre 274
     
    et bien juste avant d'enregistrer dans ta base de donnée

    juste après htmlentities() par exemple

    mais htmlentities() tu devrais le mettre aussi à l'enregistrement parce que comme je disais tu n'enregistre qu'une fois tes pages... alors que le but c'est qu'elles soient affichées le plus possible !!!

    et il vaut mieux se protéger avant d'enregistrer !

    au debut de chacune de mes pages je mets :

    function ProtectArray($item) {
    		$item = array_map('htmlentities',$item);
    		if (@mysql_real_escape_string('b')) return array_map('mysql_real_escape_string',$item);
    		else return $item;
    	}
    
    if (isset($_GET)) $GET = ProtectArray($_GET);
    if (isset($_POST)) $POST = ProtectArray($_POST);
    if (isset($_COOKIE)) $COOKIE = ProtectArray($_COOKIE);


    mais il faut le mettre après la connexion à mysql...

    de cette manière tu es sur que tout ce qui entre dans tes scripts est protégé
    0
  9. nhea Messages postés 55 Statut Membre
     
    Sais que a la base s'est un forum. il y a 4 partie:
    -index.php
    -lire_sujet.php
    -insert_sujet.php
    -insert_reponse.php

    si tu veut les script des 4 dit moi le
    0
  10. Atropa Messages postés 2051 Statut Membre 274
     
    je ne comprend pas le sens de ton dernier post
    0
  11. nhea Messages postés 55 Statut Membre
     
    Bon je vais dire clairement mon projet.
    Je fait un Forum qui compose 4 page: index.php, insert_sujet.php, insert_reponse.php et lire_sujet.php dans sa, j'aimerais ajouter une fonction qui permet les smileys d'etre afficher.
    0
  12. Atropa Messages postés 2051 Statut Membre 274
     
    et bien tu mets tes traitements de chaines là ou tu les enregistres dans la base de donnée donc dans insert_sujet.php je suppose...

    et pour rajouter des smiley tu fais ça avec des str_replace() ou plutôt des array dans str_replace()

    https://www.php.net/str_replace

    voilà la doc de la fonction
    0
  13. nhea Messages postés 55 Statut Membre
     
    Je pensait qu'il fallait mettre sa dans lire_sujet.php vis que sais la qu'il doit lire les sujet et les modifier au fure et a mesure qu'il lit le code
    0
  14. Atropa Messages postés 2051 Statut Membre 274
     
    tout dépend comment tu as codé le truc
    0
  15. nhea Messages postés 55 Statut Membre
     
    Bref, je regarderais sa demain et je te donne des nouvelle, il est asser tard.
    0