Maison développement back-end Problème PHP Comment implémenter la fonction ajouter un ami en php

Comment implémenter la fonction ajouter un ami en php

Apr 25, 2023 pm 06:19 PM

Ces dernières années, les réseaux sociaux sont devenus partie intégrante du quotidien des gens. Dans le même temps, les relations amicales, en tant qu’élément important des réseaux sociaux, font également l’objet de plus en plus d’attention dans leur mise en œuvre. Cet article explique comment utiliser PHP pour implémenter la fonction d'ajout d'amis.

1. Conception de la base de données

Dans le processus de mise en œuvre de la fonction d'ajout d'amis, une table de relations entre amis doit être conçue. Le tableau doit contenir au moins les champs suivants :

  1. friend_id : l'identifiant unique de la table de relation amicale
  2. user_id1 : l'identifiant utilisateur de la partie de la relation amicale 1
  3. user_id2 : l'identifiant utilisateur de la partie de la relation amie 2
  4. statut : le statut de la relation amie, qui peut être Les valeurs de sélection incluent "1" (déjà un ami), "0" (en attente) et "-1" (rejeté).

2. Pour ajouter des amis

Lors de l'ajout d'amis en PHP, vous devez suivre les étapes suivantes :

  1. Vérifiez si l'identifiant saisi par l'utilisateur existe dans la base de données
  2. Vérifiez si l'ami à ajouter ; est déjà ami de l'utilisateur ;
  3. S'il n'y a pas de relation amicale entre les deux utilisateurs, ajoutez un nouvel enregistrement de relation amie avec le statut "0" (en attente)
  4. Si les deux utilisateurs sont déjà amis, aucune opération ne sera effectuée ; .

Ce qui suit est un exemple de code PHP simple pour implémenter la fonction d'ajout d'amis :

<?php
// 连接数据库
$con = mysqli_connect("localhost","root","mypassword","mydatabase");

// 获取用户输入
$user_id1 = $_POST[&#39;user_id1&#39;];
$user_id2 = $_POST[&#39;user_id2&#39;];

// 验证用户输入是否合法
if(!is_numeric($user_id1) || !is_numeric($user_id2)) {
    echo "Error: 用户ID必须为数字";
    exit();
}

// 检查要添加的好友是否已经是用户的好友
$sql = "SELECT * FROM friend_relation WHERE ((user_id1 = $user_id1 AND user_id2 = $user_id2) OR (user_id2 = $user_id1 AND user_id1 = $user_id2)) AND status = 1";
$result = mysqli_query($con,$sql);

if(mysqli_num_rows($result) > 0) {
    echo "该用户已经是您的好友!";
    exit();
}

// 如果两个用户之间没有好友关系,则添加一条新的好友关系记录,其中状态为“0”(待处理)
$sql = "INSERT INTO friend_relation (user_id1,user_id2,status) VALUES ($user_id1,$user_id2,0)";
if(mysqli_query($con,$sql)) {
    echo "添加好友请求已经发送!";
} else {
    echo "Error: " . mysqli_error($con);
}

mysqli_close($con);
?>
Copier après la connexion

Dans le code ci-dessus, nous avons utilisé l'extension mysqli pour nous connecter à la base de données MySQL et obtenu les identifiants des deux utilisateurs via la méthode POST Ensuite, une vérification des entrées et des relations amicales ont été effectuées. Si l'ami à ajouter est déjà un ami de l'utilisateur, un message d'invite est généré ; s'il n'y a pas de relation d'ami entre les deux utilisateurs, un nouvel enregistrement de relation d'ami est ajouté à la base de données et un message d'invite de réussite est généré.

3. Traitement des demandes d'amis

Dans la fonction d'ajout d'amis, il est également nécessaire de mettre en œuvre le traitement des demandes d'amis. Lorsqu'un utilisateur envoie une demande d'ami à un autre utilisateur, l'utilisateur demandé doit effectuer le traitement correspondant, notamment accepter ou rejeter la demande.

Dans la conception de la base de données, nous définissons le statut de la relation d'ami (statut) à "0" pour indiquer que la demande d'ami n'a pas été traitée, à "1" pour indiquer que l'ami est déjà un ami et à "-1". " pour indiquer que la demande d'ami a été rejetée. . Par conséquent, dans la fonction de traitement des demandes d'amis, nous devons ajouter le code de mise à jour du statut correspondant.

Ce qui suit est un exemple de code PHP simple pour traiter les demandes d'ami :

<?php
// 连接数据库
$con = mysqli_connect("localhost","root","mypassword","mydatabase");

// 获取用户输入
$user_id1 = $_POST[&#39;user_id1&#39;];
$user_id2 = $_POST[&#39;user_id2&#39;];
$action = $_POST[&#39;action&#39;]; // 操作类型,可选值包括“accept”和“reject”

// 验证用户输入是否合法
if(!is_numeric($user_id1) || !is_numeric($user_id2)) {
    echo "Error: 用户ID必须为数字";
    exit();
}

// 更新好友关系状态
if($action == "accept") {
    $sql = "UPDATE friend_relation SET status = 1 WHERE user_id1 = $user_id1 AND user_id2 = $user_id2";
    if(mysqli_query($con,$sql)) {
        echo "您已经同意该好友请求!";
    } else {
        echo "Error: " . mysqli_error($con);
    }
} else if($action == "reject") {
    $sql = "UPDATE friend_relation SET status = -1 WHERE user_id1 = $user_id1 AND user_id2 = $user_id2";
    if(mysqli_query($con,$sql)) {
        echo "您已经拒绝了该好友请求!";
    } else {
        echo "Error: " . mysqli_error($con);
    }
} else {
    echo "Error: 请输入正确的操作类型!";
}

mysqli_close($con);
?>
Copier après la connexion

Dans le code ci-dessus, nous avons obtenu les identifiants et les types d'opération de deux utilisateurs via la méthode POST, "accepter" signifie accepter la demande d'ami, "Rejeter" signifie rejeter la demande d’ami. Ensuite, nous avons mis à jour le statut de la relation amie via l'instruction UPDATE et affiché les informations d'invite correspondantes.

Avec l'exemple de code PHP ci-dessus, nous pouvons facilement implémenter les fonctions d'ajout d'amis et de traitement des demandes d'amis. En développement réel, il peut être modifié de manière appropriée en fonction de besoins spécifiques et optimisé en termes de sécurité et de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN

Comment récupérer les données d'une base de données à l'aide de PHP? Comment récupérer les données d'une base de données à l'aide de PHP? Mar 20, 2025 pm 04:57 PM

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

See all articles