taha221

Inscris le 11/09/2013 à 21:46
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    1
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
taha221
le 26/08/2014 à 18:15
Problème sur la gestion d'amis
Bonjour,

Comme le nom de mon sujet l'indique, j'aimerais faire une gestion d'amis sur mon site, j'ai également créer une table :
CREATE TABLE `forum_amis` (
`ami_from` int(11) NOT NULL,
`ami_to` int(11) NOT NULL,
`ami_confirm` enum('0','1') collate latin1_general_ci NOT NULL,
`ami_date` int(11) NOT NULL,
PRIMARY KEY (`ami_to`,`ami_from`)
)


et pour ma page d'amis :

<?php
switch($action)

{
case "add": //On veut ajouter un ami
if (!isset($_POST['pseudo']))
{
echo '<form action="amis.php?action=add" method="post">
<p><label for="pseudo">Entrez le pseudo</label>
<input type="text" name="pseudo" id="pseudo" />
<input type="submit" value="Envoyer" />
</p></form>';
}

else
{
$pseudo_d = $_POST['pseudo'];
//On vérifie que le pseudo renvoit bien quelque chose :o

$query=$db->prepare('SELECT id, COUNT(*) AS nbr FROM membre
WHERE LOWER(login) = :pseudo GROUP BY login');
$query->bindValue(':pseudo',strtolower($pseudo_d),PDO::PARAM_STR);
$query->execute();
$data = $query->fetch();
$pseudo_exist = $data['nbr'];
$i = 0;
$id_to=$data['id'];
if(!$pseudo_exist)
{
echo '<p>Ce membre ne semble pas exister<br />
Cliquez <a href="amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
$query->CloseCursor();
$query = $db->prepare('SELECT COUNT(*) AS nbr FROM amis
WHERE ami_from = :id AND ami_to = :id_to
OR ami_from = :id AND ami_to = :id_to');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':id_to', $id_to, PDO::PARAM_INT);
$query->execute();
$deja_ami=$query->fetchColumn();
$query->CloseCursor();

if ($deja_ami != 0)
{
echo '<p>Ce membre fait déjà parti de vos amis ou a déjà proposé son amitié :p<br />
Cliquez <a href=amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
if ($id_to == $id)
{
echo '<p>Vous ne pouvez pas vous ajouter vous même<br />
Cliquez <a href="amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
if ($i == 0)
{
$query=$db->prepare('INSERT INTO amis (ami_from, ami_to, ami_confirm, ami_date)
VALUES(:id, :id_to, :conf, :temps)');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':id_to', $id_to, PDO::PARAM_INT);
$query->bindValue(':conf','0',PDO::PARAM_STR);
$query->bindValue(':temps', time(), PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
echo '<p><a href="profile.php?id='.$data['id'].'">'.stripslashes(htmlspecialchars($pseudo_d)).'</a>
a bien été ajouté à vos amis, il faut toutefois qu il donne son accord.<br />

Cliquez <a href="amis.php">ici</a> pour retourner à la page de gestion des amis</p>';
}
}
?>
<?php
case "check":
$add = (isset($_GET['add']))?htmlspecialchars($_GET['add']):0;
if (empty($add))
{
$query = $db->prepare('SELECT ami_from, ami_date, login FROM amis
LEFT JOIN membre ON id = ami_from
WHERE ami_to = :id AND ami_confirm = :conf
ORDER BY ami_date DESC');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','0',PDO::PARAM_STR);
$query->execute();

echo '<table align="center"><tr>
<th class="pseudo"><strong>Pseudo</strong></th>
<th class="inscrit"><strong>Date d ajout</strong></th>
<th><strong>Action</strong></th></tr>';

if ($query->rowCount() == 0)
{
echo '<td colspan="3" align="center">Vous n avez aucune proposition</td>';
}
while ($data = $query->fetch())
{
echo '<tr><td><a href="profile.php?id='.$data['ami_from'].'&amp;action=consulter">'.stripslashes(htmlspecialchars($data['login'])).'</a></td>
<td>'.date('d/m/Y',$data['ami_date']).'</td>
<td><a href="amis.php?action=check&amp;add=ok&amp;m='.$data['ami_from'].'">Accepter</a> -
<a href="amis.php?action=delete&amp;m='.$data['ami_from'].'">Refuser</a>
</td></tr>';
}
$query->CloseCursor();
}
else
{
$membre = (int) $_GET['m'];
$query = $db->prepare('UPDATE amis SET ami_confirm = :conf
WHERE ami_from = :membre AND ami_to = :id');
$query->bindValue(':conf','1',PDO::PARAM_STR);
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();
echo '<p>Le membre a bien été ajouté à votre liste d ami<br />
Cliquez <a href="amis.php">ici</a> pour retourner à la liste des amis';
}
break;
?><?php
case "delete":
$membre = (int) $_GET['m'];
if (!isset($_GET['ok']))
{
echo '<p>Etes vous certain de vouloir supprimer ce membre ?<br />
<a href="amis.php?action=delete&amp;ok=ok&amp;m='.$membre.'">oui</a> - <a href="amis.php">non</a></p>';
}
else
{
$query = $db->prepare('DELETE FROM amis WHERE ami_from = :membre AND ami_to = :id');
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();

$query = $db->prepare('DELETE FROM amis WHERE ami_to = :membre AND ami_from = :id');
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();

echo '<p>Membre correctement supprimé :D <br />
Cliquez <a href="amis.php">ici</a> pour retourner à la liste des amis</p>';
}
break;
?><?php
default:

$query = $db->prepare('SELECT (ami_from + ami_to - :id) AS ami_id, ami_date, login
FROM amis
LEFT JOIN membre ON id = (ami_from + ami_to - :id)

WHERE (ami_from = :id OR ami_to = :id) AND ami_confirm = :conf ORDER BY login');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','1',PDO::PARAM_STR);
$query->execute();

echo '<table align="center"><tr>
<th class="pseudo"><strong>Pseudo</strong></th>
<th class="inscrit"><strong>Date d ajout</strong></th>
<th><strong>Action</strong></th>
<th><strong>Connecté</strong></th></tr>';

if ($query->rowCount() == 0)
{
echo '<td colspan="4" align="center">Vous n avez aucun ami pour l instant</td>';
}
while ($data = $query->fetch())
{
echo '<tr><td><a href="profile.php?id='.$data['ami_id'].'&amp;action=consulter">'.stripslashes(htmlspecialchars($data['login'])).'</a></td>
<td>'.date('d/m/Y',$data['ami_date']).'</td>
<td><a href="new_pm.php">Envoyer un MP</a><br />
<a href="amis.php?action=delete&m='.$data['ami_id'].'">Supprimer</a></td>';
echo '<td>Non</td>';
echo '</tr>';
}
echo '</table>';
$query->CloseCursor();

//On compte le nombre de demande en cours et on met quelques liens
$query=$db->prepare('SELECT COUNT(*) FROM amis
WHERE ami_to = :id AND ami_confirm = :conf');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','0', PDO::PARAM_STR);
$query->execute();
$demande_ami=$query->fetchColumn();

//Cette ligne va permettre d'afficher 0 plutôt qu'un vide
if (empty($demande_ami)) {
$demande_ami=0;

echo '<br /><ul>
<li><a href="amis.php?action=add">Ajouter un ami</a></li>
<li><a href="amis.php?action=check">Voir les demandes d\'ajout ('.$demande_ami.')</a></li></ul>';
break;
}
}
?>


Alors quant j'ajoute un ami, ça s’enregistre dans la base de donné normal, mais l'ami que j'ai ajouté ne reçois pas d'invitation, j'ai vérifier sur la base de donné tout est bon, l'invitation s'est bien envoyé au bon membre, mais ne s'affiche pas dans la page, l'ami ne reçois rien, aussi même si le membre en personne à des amis, ils ne s'affiche pas aussi dans la liste, je ne sais pas ou est le problème, alors si vous pouvez m'aidez je vous remercie d'avance ;)

Ses derniers messages sur les forums

forum
taha221
le 26/08/2014 à 18:15
Problème sur la gestion d'amis
Bonjour,

Comme le nom de mon sujet l'indique, j'aimerais faire une gestion d'amis sur mon site, j'ai également créer une table :
CREATE TABLE `forum_amis` (
`ami_from` int(11) NOT NULL,
`ami_to` int(11) NOT NULL,
`ami_confirm` enum('0','1') collate latin1_general_ci NOT NULL,
`ami_date` int(11) NOT NULL,
PRIMARY KEY (`ami_to`,`ami_from`)
)


et pour ma page d'amis :

<?php
switch($action)

{
case "add": //On veut ajouter un ami
if (!isset($_POST['pseudo']))
{
echo '<form action="amis.php?action=add" method="post">
<p><label for="pseudo">Entrez le pseudo</label>
<input type="text" name="pseudo" id="pseudo" />
<input type="submit" value="Envoyer" />
</p></form>';
}

else
{
$pseudo_d = $_POST['pseudo'];
//On vérifie que le pseudo renvoit bien quelque chose :o

$query=$db->prepare('SELECT id, COUNT(*) AS nbr FROM membre
WHERE LOWER(login) = :pseudo GROUP BY login');
$query->bindValue(':pseudo',strtolower($pseudo_d),PDO::PARAM_STR);
$query->execute();
$data = $query->fetch();
$pseudo_exist = $data['nbr'];
$i = 0;
$id_to=$data['id'];
if(!$pseudo_exist)
{
echo '<p>Ce membre ne semble pas exister<br />
Cliquez <a href="amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
$query->CloseCursor();
$query = $db->prepare('SELECT COUNT(*) AS nbr FROM amis
WHERE ami_from = :id AND ami_to = :id_to
OR ami_from = :id AND ami_to = :id_to');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':id_to', $id_to, PDO::PARAM_INT);
$query->execute();
$deja_ami=$query->fetchColumn();
$query->CloseCursor();

if ($deja_ami != 0)
{
echo '<p>Ce membre fait déjà parti de vos amis ou a déjà proposé son amitié :p<br />
Cliquez <a href=amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
if ($id_to == $id)
{
echo '<p>Vous ne pouvez pas vous ajouter vous même<br />
Cliquez <a href="amis.php?action=add">ici</a> pour réessayer</p>';
$i++;
}
if ($i == 0)
{
$query=$db->prepare('INSERT INTO amis (ami_from, ami_to, ami_confirm, ami_date)
VALUES(:id, :id_to, :conf, :temps)');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':id_to', $id_to, PDO::PARAM_INT);
$query->bindValue(':conf','0',PDO::PARAM_STR);
$query->bindValue(':temps', time(), PDO::PARAM_INT);
$query->execute();
$query->CloseCursor();
echo '<p><a href="profile.php?id='.$data['id'].'">'.stripslashes(htmlspecialchars($pseudo_d)).'</a>
a bien été ajouté à vos amis, il faut toutefois qu il donne son accord.<br />

Cliquez <a href="amis.php">ici</a> pour retourner à la page de gestion des amis</p>';
}
}
?>
<?php
case "check":
$add = (isset($_GET['add']))?htmlspecialchars($_GET['add']):0;
if (empty($add))
{
$query = $db->prepare('SELECT ami_from, ami_date, login FROM amis
LEFT JOIN membre ON id = ami_from
WHERE ami_to = :id AND ami_confirm = :conf
ORDER BY ami_date DESC');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','0',PDO::PARAM_STR);
$query->execute();

echo '<table align="center"><tr>
<th class="pseudo"><strong>Pseudo</strong></th>
<th class="inscrit"><strong>Date d ajout</strong></th>
<th><strong>Action</strong></th></tr>';

if ($query->rowCount() == 0)
{
echo '<td colspan="3" align="center">Vous n avez aucune proposition</td>';
}
while ($data = $query->fetch())
{
echo '<tr><td><a href="profile.php?id='.$data['ami_from'].'&amp;action=consulter">'.stripslashes(htmlspecialchars($data['login'])).'</a></td>
<td>'.date('d/m/Y',$data['ami_date']).'</td>
<td><a href="amis.php?action=check&amp;add=ok&amp;m='.$data['ami_from'].'">Accepter</a> -
<a href="amis.php?action=delete&amp;m='.$data['ami_from'].'">Refuser</a>
</td></tr>';
}
$query->CloseCursor();
}
else
{
$membre = (int) $_GET['m'];
$query = $db->prepare('UPDATE amis SET ami_confirm = :conf
WHERE ami_from = :membre AND ami_to = :id');
$query->bindValue(':conf','1',PDO::PARAM_STR);
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();
echo '<p>Le membre a bien été ajouté à votre liste d ami<br />
Cliquez <a href="amis.php">ici</a> pour retourner à la liste des amis';
}
break;
?><?php
case "delete":
$membre = (int) $_GET['m'];
if (!isset($_GET['ok']))
{
echo '<p>Etes vous certain de vouloir supprimer ce membre ?<br />
<a href="amis.php?action=delete&amp;ok=ok&amp;m='.$membre.'">oui</a> - <a href="amis.php">non</a></p>';
}
else
{
$query = $db->prepare('DELETE FROM amis WHERE ami_from = :membre AND ami_to = :id');
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();

$query = $db->prepare('DELETE FROM amis WHERE ami_to = :membre AND ami_from = :id');
$query->bindValue(':membre',$membre,PDO::PARAM_INT);
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->execute();
$query->closeCursor();

echo '<p>Membre correctement supprimé :D <br />
Cliquez <a href="amis.php">ici</a> pour retourner à la liste des amis</p>';
}
break;
?><?php
default:

$query = $db->prepare('SELECT (ami_from + ami_to - :id) AS ami_id, ami_date, login
FROM amis
LEFT JOIN membre ON id = (ami_from + ami_to - :id)

WHERE (ami_from = :id OR ami_to = :id) AND ami_confirm = :conf ORDER BY login');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','1',PDO::PARAM_STR);
$query->execute();

echo '<table align="center"><tr>
<th class="pseudo"><strong>Pseudo</strong></th>
<th class="inscrit"><strong>Date d ajout</strong></th>
<th><strong>Action</strong></th>
<th><strong>Connecté</strong></th></tr>';

if ($query->rowCount() == 0)
{
echo '<td colspan="4" align="center">Vous n avez aucun ami pour l instant</td>';
}
while ($data = $query->fetch())
{
echo '<tr><td><a href="profile.php?id='.$data['ami_id'].'&amp;action=consulter">'.stripslashes(htmlspecialchars($data['login'])).'</a></td>
<td>'.date('d/m/Y',$data['ami_date']).'</td>
<td><a href="new_pm.php">Envoyer un MP</a><br />
<a href="amis.php?action=delete&m='.$data['ami_id'].'">Supprimer</a></td>';
echo '<td>Non</td>';
echo '</tr>';
}
echo '</table>';
$query->CloseCursor();

//On compte le nombre de demande en cours et on met quelques liens
$query=$db->prepare('SELECT COUNT(*) FROM amis
WHERE ami_to = :id AND ami_confirm = :conf');
$query->bindValue(':id',$id,PDO::PARAM_INT);
$query->bindValue(':conf','0', PDO::PARAM_STR);
$query->execute();
$demande_ami=$query->fetchColumn();

//Cette ligne va permettre d'afficher 0 plutôt qu'un vide
if (empty($demande_ami)) {
$demande_ami=0;

echo '<br /><ul>
<li><a href="amis.php?action=add">Ajouter un ami</a></li>
<li><a href="amis.php?action=check">Voir les demandes d\'ajout ('.$demande_ami.')</a></li></ul>';
break;
}
}
?>


Alors quant j'ajoute un ami, ça s’enregistre dans la base de donné normal, mais l'ami que j'ai ajouté ne reçois pas d'invitation, j'ai vérifier sur la base de donné tout est bon, l'invitation s'est bien envoyé au bon membre, mais ne s'affiche pas dans la page, l'ami ne reçois rien, aussi même si le membre en personne à des amis, ils ne s'affiche pas aussi dans la liste, je ne sais pas ou est le problème, alors si vous pouvez m'aidez je vous remercie d'avance ;)

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours