Besoin d'avis pour un espace membre PHP/MySQL

WRInaute occasionnel
Bonjour,

Je souhaite que mes membres puissent présenter 10 sites dans l'espace membre de mon site. Il faut aussi que je valide les sites. Et niveau de la base de donnée, je ne sais pas comment faire? Mettre 10 fois url1, ulr2... avec etat1, etat2... ou etat designe l'état du site (validé ou en attente). N'y aurait-il pas plus simple? Pourriez vous me donner vos avis?

Merci.
 
WRInaute passionné
Plus simple :

idmembre (index)
url
etat

C'est tout. Ensuite tu vérifies pour ne pas dépasser les 10 adresses pour chacun des membres.
 
WRInaute occasionnel
Mais comment dois-je faire? Il faut mettre plusieurs site dans URL et plusieur état dans etat? Et comment savoir quel etat correspont à quel site?
Merci.
 
WRInaute passionné
Tu crées une table URL avec les champs :
- idmembre
- url
- etat

Pour chaque url d'un membre, tu ajoutes un enregistrement.
 
WRInaute occasionnel
Je vais utiliser cette methode pour mon site.
J'utilise ce code pour afficher les sites :
Code:
<?php
for($i=0; $i<count($mbsites); $i++)
        echo '
<tr align="center">
<td width="8%"><a href='.$mbsites[$i][url].' target="_blank">'.$mbsites[$i][url].'</a></td>
<td width="8%">'.$mbsites[$i][etat].'</td>
<td width="8%">
<form action="supprimer-site.php" method="post" name="site" id="Supprimer">
<div align="center"> 
<input name="image" type="image" src="../images/cancel.png">
<input name="idsite" type="hidden" value="' .$mbsites[$i][url]. '" />
<input name="idmembre" type="hidden" value="' . $userid . '" /> 
</form>
</td>
</tr>
';
?>
La fonction mbsites est la suivante :
Code:
}
function getmbsites($userid)
{
        $result = mysql_query("SELECT url, etat, id FROM demo_a_sites WHERE id='$userid';");
        for($i=0; $row=mysql_fetch_array($result); $i++)
        {
                $list[$i]=$row;
        }
        return $list;
Comment faire pour afficher un bouton (formulaire) selon l'état du site? Que si le site est actvé, apparraisse un bouton pour le désactiver et si il est désactivé, un bouton pour l'activer?
Merci.
 
WRInaute passionné
Dans ton formulaire, tu fais une condition sur l'état

if($mbsites[$i][etat] == "valide") echo "ton bouton desactiver";
else "ton bouton activer";


Mais au lieu de créer un formulaire pour supprimer/activer/désactiver les urls, un lien html sur une petite image serait beaucoup plus approprié.

Exemple :
<a href=supprimer-site.php?url=$mbsites[$i]><img src=croix.gif /></a> <a href...peux supprimer ou modifier l'état simplement.
 
WRInaute occasionnel
Merci pour les idées, je vais essayer la première solution. J'ai mis ce code, mais le "if" n'est pas pris en compte.
Code:
<?php
for($i=0; $i<count($mbsites); $i++)
        echo '
<tr align="center">
<td width="8%"><a href='.$mbsites[$i][url].' target="_blank">'.$mbsites[$i][url].'</a></td>
<td width="8%">'.$mbsites[$i][etat].'</td>
<td width="8%">
<form action="supprimer-site.php" method="post" name="site" id="Supprimer">
<div align="center"> 
<input name="image" type="image" src="../images/cancel.png">
<input name="idsite" type="hidden" value="' .$mbsites[$i][url]. '" />
<input name="idmembre" type="hidden" value="' . $userid . '" /> 
</form>


if('.$mbsites[$i][etat].' == "Validé") echo "
<form action="desactiver-site.php" method="post" name="site" id="Desactiver">
<div align="center"> 
<input name="image" type="image" src="../images/desactiver.png">
<input name="idsite" type="hidden" value="' .$mbsites[$i][url]. '" />
<input name="idmembre" type="hidden" value="' . $userid . '" /> 
</form>
"; 
else "
<form action="activer-site.php" method="post" name="site" id="Activer">
<div align="center"> 
<input name="image" type="image" src="../images/activer.png">
<input name="idsite" type="hidden" value="' .$mbsites[$i][url]. '" />
<input name="idmembre" type="hidden" value="' . $userid . '" /> 
</form>"; 
</td>
</tr>
';
?>
Pourriez-vous m'aider?
Merci.
 
WRInaute passionné
Code:
if('.$mbsites[$i][etat].' == "Validé")

FAUX

Code:
if($mbsites[$i][etat] == "Validé")

Correct

Fais attention dans tes copier-coller.


J'espère que ton site n'a pas un énorme traffic car il y a pas mal d'optimisations à réaliser.
 
WRInaute occasionnel
Du coup, j'ai pris la première possibilitée.
Mais je n'arrive pas à supprimer un site, mon fichier supprimer-site.php a le code suivant :
Code:
<?php 
require('../prepend.inc.php');
$a = $_SERVER['HTTP_REFERER'];
$idmembre = $_POST['idmembre'];
$site = $_POST['site'];
mysql_query("DELETE FROM demo_a_sites WHERE id = '$idmembre' AND url = '$site'");
header("Location: $a");
?>
Savez-vous où il y a une erreur?
Merci.
 
WRInaute accro
Ce serait plus facile si tu indiquais quelle erreur SQL tu obtiens.
Tu peux par exemple écrire ceci pour obtenir l'erreur :
Code:
mysql_query("DELETE FROM demo_a_sites WHERE id = $idmembre AND url = '$site'") or die ("Erreur SQL : ".mysql_error());
 
WRInaute passionné
Et ton fichier supprimer-site.php n'est pas du tout sécurisé !


Comment cela se fait-il que tu ne puisses récupérer l'id par session ?
Tu n'utilises pas de sessions pour ton espace membres ?
 
Discussions similaires
Haut