Partage
  • Partager sur Facebook
  • Partager sur Twitter

[REGEX] Choisir ce qu'il y a après

De l'aide s'il vous plait :)

    3 mai 2006 à 19:30:14

    Bonsoir à tous,
    J'aimerais rajouter une fonction à mon t'chat, c'est à dire, si la personne tappe /t <quelque chose> ça ne prenne en compte que le <quelque chose> Je sais déjà faire pour vérifier si la chaîne commence par /t mais après, je ne vois pas comment faire.
    Merci de votre aide :) .
    • Partager sur Facebook
    • Partager sur Twitter
      3 mai 2006 à 19:36:05

      $texte = str_replace('\\t', '', $texte);

      je pense que ton problème devrait être résolu grâce à cela ! ;)
      • Partager sur Facebook
      • Partager sur Twitter
        3 mai 2006 à 19:38:27

        preg_replace_callback('`^\\t<(.+)>`isU', 'fonction', $texte) ;
        • Partager sur Facebook
        • Partager sur Twitter
          3 mai 2006 à 19:39:49

          Juste un truc :
          if (preg_match("!^/t!", "$message") AND $totoche['admin'] == 1 OR $totoche['modo'] == 1)

          C'ets bon ou il faut que je rajoute encore une fois le preg_match après le OR ?
          • Partager sur Facebook
          • Partager sur Twitter
            3 mai 2006 à 19:42:05

            if (preg_match("!^/t!", "$message") AND ($totoche['admin'] == 1 OR $totoche['modo'] == 1))

            il suffit de rajouter des parenthèses ! ;)
            • Partager sur Facebook
            • Partager sur Twitter
              3 mai 2006 à 20:10:25

              Quand je note ceci :
              if ($voirtotoche['timestamp'] - 600 = time() OR $voirtotoche3['sanction'] == 0)
              et bien j'ai ceci en erreur : Parse error: parse error, unexpected '=' in /var/www/sdb/c/b/frutianimation/minichat.php on line 31
              • Partager sur Facebook
              • Partager sur Twitter
                3 mai 2006 à 20:16:03

                premièrement : tu ne peux pas faire d'opération dans un if()

                deuxièmement : tu devrais mettre deux signes =, non ?
                • Partager sur Facebook
                • Partager sur Twitter
                  3 mai 2006 à 20:33:25

                  Merci, sinon, ça veut dire quoi ça :o Parse error: parse error, unexpected $ in /var/www/sdb/c/b/frutianimation/minichat.php on line 126
                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 mai 2006 à 20:38:59

                    fais voir les lignes 125 à 130 stp
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      3 mai 2006 à 20:42:37

                      Citation : Sitevolution

                      if (preg_match("!^/t!", "$message") AND ($totoche['admin'] == 1 OR $totoche['modo'] == 1))


                      il suffit de rajouter des parenthèses ! ;)



                      pour obtimisation je ferai
                      if (($totoche['admin'] == 1 OR $totoche['modo'] == 1) and (preg_match("!^/t!", "$message") )

                      parce que ca évite de devoir faire tout le temps preg_match qui doit prendre du temp .
                      La comme ca tu le zap quand c'est pas un admin ou un modo qui est connecter (gain de temps)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 mai 2006 à 20:43:30

                        Bah le problème, c'est que la ligne 126 c'est la dernière, voici le script :
                        <?php
                        //Ne pas oublier de mettre le session_start()
                        session_start();
                        if (isset($_SESSION['logged']) && $_SESSION['logged'] == true)
                        {
                        include('haut2.php');
                        if (isset($_POST['message'])) // Si les variables existent
                        {
                                // D'abord, on se connecte à MySQL
                                mysql_connect("sql.free.fr", "*", "*");
                                mysql_select_db("*");
                                        $totochation = mysql_query("SELECT pseudo, admin, modo FROM membres WHERE pseudo = '" . $_SESSION['pseudo'] . "'");
                                        $totoche = mysql_fetch_array($totochation);
                                                $message = htmlentities ($_POST['message']);

                            if ($_POST['message'] != NULL) // Si on a quelque chose à enregistrer
                            {
                        if (preg_match("!^/t!", $message) AND ($totoche['admin'] == 1 OR $totoche['modo'] == 1))
                        {
                        $message = str_replace('/t', '', $message);
                        $message = '<em> ' . $message . ' a été totoché !</em>';
                        mysql_query("INSERT INTO minichat VALUES('', '', '$message', 'time()', '')");
                        mysql_query("INSERT INTO sanction VALUES('', '$message', 'time()'");
                        }
                        else
                        {
                                        $voirtotoche4 = mysql_query("SELECT COUNT(*) AS sanction FROM sanction WHERE pseudo = '" . $_SESSION['pseudo'] . "'");
                                        $voirtotoche3 = mysql_fetch_array($voirtotoche4);
                                        $voirtotoche2 = mysql_query("SELECT * FROM sanction WHERE pseudo = '" . $_SESSION['pseudo'] . "'");
                                        $voirtotoche = mysql_fetch_array($voirtotoche2);
                                        $time = $voirtotoche['timestamp'] - 600;
                        if ($time == time() OR $voirtotoche3['sanction'] == 0)
                        {
                                   
                                // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table
                                $pseudo = $_SESSION['pseudo'];
                                        $timestamp = time();

                                // Ensuite on enregistre le message
                                mysql_query("INSERT INTO minichat VALUES('', '$pseudo', '$message', '$timestamp')");

                                // On se déconnecte de MySQL
                                mysql_close();
                                        }
                                        else
                                        {
                                        }
                            }
                        }


                        // Que l'on ait enregistré des données ou pas...
                        // On affiche le formulaire puis les 10 derniers messages

                        // Tout d'abord le formulaire :
                        ?>


                        <h1>Le t'chat</h1>
                        <form action="minichat.php" method="post">

                        <p>
                        Message :  <input type="text" name="message" /><br />

                        <input type="submit" value="Envoyer" />
                        </p>

                        </form>



                        <?php

                        // Maintenant on doit récupérer les 10 dernières entrées de la table
                        // On se connecte d'
                        abord à MySQL :
                        mysql_connect("sql.free.fr", "*", "*");
                        mysql_select_db("*");

                        // On utilise la requête suivante pour récupérer les 10 derniers messages :
                        $reponse = mysql_query("SELECT * FROM minichat ORDER BY ID DESC LIMIT 0,10");
                        $suppr_mess = mysql_query("SELECT pseudo, admin, modo FROM membres WHERE pseudo = '" . $_SESSION['pseudo'] . "'");
                                        $suppr = mysql_fetch_array($suppr_mess);

                        // On se déconnecte de MySQL
                        mysql_close();

                        // Puis on fait une boucle pour afficher tous les résultats :
                        if ($suppr['admin'] == 1 OR $suppr['modo'] == 1)
                        {
                        while ($donnees = mysql_fetch_array($reponse) )
                        {
                        ?>

                        [<?php echo date('H:i:s', $donnees['timestamp']);?>] <strong><?php echo $donnees['pseudo']; ?></strong><?php echo $donnees['point']; ?> <?php echo $donnees['message'];?> <em><a href="suppr.php?id=<? echo $donnees['ID'];?>">Supprimer</a></em><br />



                        <?php
                        }
                        }
                        else
                        {
                        while ($donnees = mysql_fetch_array($reponse) )
                        {
                        ?>

                        <strong><?php echo $donnees['pseudo']; ?></strong> : <?php echo $donnees['message']?><br /><?php; ?>



                        <?php
                        }
                        }
                        // Fin de la boucle, le script est terminé !
                        ?>
                        <?php
                        }
                        else
                        {
                        include('haut.php');
                        echo '<h1>ERREUR</h1>Vous devez être connecté pour lire cette page !';
                        }
                        ?>
                        <?php
                        include("bas.php");
                        ?>
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 mai 2006 à 20:54:51

                          tu as oublié de refermer l'accolade du tout premier if(), il te suffit de rajouter une accolade juste avant le dernier else et c'est bon ! ;) @++
                          • Partager sur Facebook
                          • Partager sur Twitter

                          [REGEX] Choisir ce qu'il y a après

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown