PHP

Détecter un lien (dans un chat)

Non Résolu

Bonjour, je voudrai savoir comment on fait pour détecter un lien ou des mots spéciaux dans un chat comme sur discord par exemple.

570 vues
26 mars 2020 à 18:38 (Édité)
Cette pub permet au site de vivre ...

9 commentaires

Re:


Pour quelles raisons ton site serait bloqué ? 🤔 Tu n'avais pas travaillé en local avant ? 🤔

Pour la petite histoire, les hébergeurs payants sont mieux et tu n'auras pas ce genre de problème si et seulement si tu respectes leur CGU...

Sinon il existe un autre hébergeur gratuit qui vient d'être créer par des étudiants si tu tiens vraiment à n'utiliser que du gratuit 😉

N'hésite pas à créer d'autres topics pour toute aide et si tu n'as plus de problèmes/questions pensent à mettre tes topics en "Résolu" 😉

Ok @Jerem971,


Merci de ton aide, mais j'abandonne car 000webhost.com ont put*n de bloqué mon site! Et comme je suis pas majeur, ils ne veulent pas me le débloquer... j'ai perdu tt mon code.


++

Re:


Le message d'erreur t'indique que la variable url n'est pas défini. Il faut donc la déclarer dans ton code 😉

Re @Jerem971,


J'ai testé le code que tu m'as donné et ça me fait cette erreur

Notice: Undefined variable: url in /storage/ssd3/887/12772887/public_html/ach/tchat.php on line 25

Re:


Le traitement doit être effectué au moment de l'envoie du message 😉

Si tu observes bien sur Discord, il y a un temps de conversion du lien lorsque qu'un membre envoie son message, tu as juste donc besoin d'appeler la fonction 😉

Re @Jerem971,


Code de l'enregistrement :


<!-- tchat.php -->

<?php
if(isset($_POST['message']) AND !empty($_POST['message'])){
    
    $pseudo = $_SESSION['nom_prenom'];
    $message = htmlspecialchars($_POST['message']);
    
    $insertmsg = $BDD->prepare('INSERT INTO tchat(id_pseudo, message, date_message) VALUES(?, ?, NOW())');
    $insertmsg->execute(array($pseudo, $message));
    
    header("Location: /ach/tchat.php");
    
    exit;
    
}
?>
<form method="POST" action="">
      <textarea type="text" name="message" placeholder="Message..." class="msgsender"></textarea><br>
      <input type="submit" value="Envoyer !" class="send">
    </form>


Code de la sortie :


<!-- tchat.php -->

<div id="messages" class="messages">
            
</div>
        
<script>
  setInterval('load_message()', 500);
    function load_message(){
      $('#messages').load("./charger-messages.php");
    }
</script>

<!-- charger-messages.php -->

<?php
include('db/connexion_db.php');

    $allmsg = $BDD->query('SELECT * FROM tchat ORDER BY id DESC');
    while($msg = $allmsg->fetch()){
        
?>
    <p class="msg">[ <?php echo $msg['date_message'] ?> ] <b><?php echo $msg['id_pseudo']; ?> : </b> <?php echo $msg['message']; ?></p>
<?php
    }
?>

Re:


Montre-nous tes deux codes 😉

Hey @Jerem971,


Oui c'est ça mais je le met dans mon code pour charger les messages ou dans mon code pour envoyer le message ??


Bon confinement à toi.

Hello @CrafterHide,


Si j'ai bien compris, tu souhaites transformer une URL en un lien cliquable ? 🤔


Essaye ce code :


<?php
function lien_cliquable($url)
{
    $in=array(
    '`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
    '`((?<!//)(www\.\S+[[:alnum:]]/?))`si',
    '`([[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]([-_.]?[[:alnum:]])*\.([a-z]{2,4}))`'
    );
    $out=array(
    '<a href="$1">$1</a>',
    '<a href="http://$1">$1</a>',
    '<a href="mailto:$1">$1</a>'
    );
    return preg_replace($in,$out,$url);
}
?>


Tiens-moi au jus 😉

Cette pub permet au site de vivre ...