Afficher le profil d'un membre si pas de connexion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Afficher le profil d'un membre si pas de connexion

Re: Afficher le profil d'un membre si pas de connexion

par moogli » 26 févr. 2014, 22:46

ne te fie pas au nombres de champs des tables membre ou document ils sont indicatifs.

je te conseil de voir ce que sont mcd / mpd, bref la modélisation d'une base de données via la méthode merise (et plus particulièrement le modèle entité / association de cette méthode).
par exemple http://merise.developpez.com/faq/?page=MCD

@+

Re: Afficher le profil d'un membre si pas de connexion

par nico44530 » 26 févr. 2014, 18:37

8-|
Je n'arrive pas vraiment à comprendre le MCD et le MDP.
J'essaye quand même de résumé dans le MCD :

- La table `membre` contient 2 champs (idmembre, nom)
- La table `membre` appartient à la table `document` qui contient 2 champs (iddocument, nom)
- La table `publicationtype` attribut un type de publication au champ de la table `document`

Je n'arrive pas à comprendre les modèles de MCD ou MDP :(

Re: Afficher le profil d'un membre si pas de connexion

par moogli » 26 févr. 2014, 17:44

si tu veux le faire par item il te faut gérer cela d'abord dans le modèle de ta base.
c'est a dire qu'il te faut une "visibilité" par item (doucement par la suite).
et bien sur gérer les liens entre les gens.

il faut que tu pense à avoir une visibilité par défaut (oui je me répète mais c'est important).
Perso je mettrais privé par défaut, cela évite les publication non voulus etc (et pas moins de soucis du reste comme ça c'est forcément l'utilisateur qui à demander la publication ;) ).

pour modéliser la chose tu trouveras en pièces jointes un MCD exemple ainsi que le mdp correspondant.
mcd_nico44.png
mpd_nico44.png
pour le code SQL tu devrais pouvoir le retrouver seul ainsi que les requêtes qui vont bien (c'est simple).

@+

Re: Afficher le profil d'un membre si pas de connexion

par nico44530 » 26 févr. 2014, 16:57

Et si je veux gérer unitairement ?
Parce que pour le premier cas, je sais comment faire :

- Créer une table `diffusion` avec :
- l'id du membre
- type_diffusion ENUM('Amis','Public','Prive')

Et donc si la diffusion est privé, aucune donnée personnelle n'est affichée pour tous le monde.
Si c'est amis, c'est affiché pour les amis uniquement.
Si c'est public, c'est pour tous le monde.

Mais si je veux que chaque infos contient un paramètre ?
Et comment faire en SQL et PDO, parce que je ne trouve pas sur internet ce genre de script :(

Merci d'avance

Re: Afficher le profil d'un membre si pas de connexion

par moogli » 26 févr. 2014, 16:14

salut,

il te faut :
- Gérer cela coté utilisateur.
Ensuite il faut voir comment tu veux gérer ces droits :
- globalement (donc copains, les autres)
- unitairement : la photo de maman pour tout le monde et la vidéo avec ta chéri que pour les potes mais celle de l'anniv de l'arrière grand mère pour tout le monde (ou l'inverse ^^).
Dans le premier cas tu ajoute une table qui référence ces choix (et si le choix n'est pas présent dans cette table pour un utilisateur c'est pas grave c'est le choix par défaut de ta politique de confidentialité (public / privé / coupaing au choix).

ensuite il faut que tu récupère ce paramétrage a l'affichage du profil pour conditionner les parties à l'affichage en fonction de la personne qui est connectée (il te faut donc aussi gérer la "parenté" entre le profile visité et celui qui "visite").

@+

Afficher le profil d'un membre si pas de connexion

par nico44530 » 25 févr. 2014, 23:30

Bonjour,

Je voudrais que la page de profil des membres soit accessible aux public (sans connexion ou inscription) mais que leurs données soient privée.

Je ne sais pas comment faire pour afficher ou cacher les infos des membres.
J'aimerais que les membres puissent choisir comment cacher leurs infos : amis / public / Moi

Voici la page profil.php :
<?php
session_start();
require('../include/config.inc.php');
include('../functions/global.func.php');
if(!isset($_SESSION['pseudo']) && !isset($_COOKIE['persistent'])){
	header('location: ../login.php?login_error=1');
	exit();
}
if(!isset($_GET['pseudo']) == ($profil['pseudo'])) {
	header('Location: ../home?404_error=1');
	exit();
}
if(empty($_GET['pseudo'])){
	header('location: ../home?profile_error=1');
	exit();
} else {
?>
<!DOCTYPE html>
<html lang="fr" class="no_js sidebar" id="home">
<head>
	<meta charset="utf-8" />
	<title><?php echo utf8_maj_fr($profil['prenom']); ?> <?php echo utf8_maj_fr($profil['nom']); ?></title>
	<meta name="description" content="Retrouvez tout le web de l'astronomie, partagez vos photos et observations... Faites connaissance avec des passionnés ou professionnels de l'astronomie." />
	<?php include('../include/head.inc.php'); ?>
</head>
<body>
	<?php include('../include/sidebar.inc.php'); ?> 
	<?php include('../include/header.inc.php'); ?> 
	<div id="content">
		<div class="container">
			<div id="cover">
				<?php if(file_exists($profil_cover)){ ?><div class="cover"><a href="#" class="coverImg"><img src="users/upload/<?php echo $profil['folder']; ?>/cover.jpg" height="310" width="981" class="coverLoad" alt="" /></a></div><?php } else { ?> 
				<div class="notCover"></div>
				<?php } ?> 
				<div class="menuCover">
					<div class="avatar">
						<a href="<?php echo $profil['pseudo']; ?>" class="avatarLink">
							<?php if(file_exists($profil_member)){ ?><img src="users/upload/avatars/<?php echo $profil['id']; ?>.jpg" height="160" width="160" alt="" /><?php } else { ?><img src="<?php echo $profil_defaut; ?>" height="160" width="160" alt="" /><?php } ?>
						</a>
					</div>
					<div class="name">
						<a href="<?php echo $profil['pseudo']; ?>" class="nameLink"><?php echo utf8_maj_fr($profil['prenom']); ?> <?php echo utf8_maj_fr($profil['nom']); ?></a>
					</div>
					<div class="menuProfil">
						<a href="<?php echo $profil['pseudo']; ?>" class="menuProfilLink active">Journal<span class="wa05df6"></span></a>
						<a href="<?php echo $profil['pseudo']; ?>/about" class="menuProfilLink">À propos<span class="wa05df6"></span></a>
						<a href="<?php echo $profil['pseudo']; ?>/photos" class="menuProfilLink">Photos<span class="wa05df6"></span></a>
						<a href="<?php echo $profil['pseudo']; ?>/friends" class="menuProfilLink">Amis<span class="wa05df6"></span></a>
						<a href="<?php echo $profil['pseudo']; ?>/events" class="menuProfilLink">Évènements<span class="wa05df6"></span></a>
					</div>
					
				</div>
			</div>
			<div id="sidebarProfil" class="rfloat">
				<?php if(($_GET['pseudo']) == ($data['pseudo'])){ ?><div class="bloc">
					<div class="blocTitle">
						<h1>Statistiques</h1>
					</div>
					<div class="blocContent">
					<?php 
						$dossier = 'upload/'.$data['folder'];
						if(size_readable(dirsize($dossier)) == 1024){
							$prefix = 'Go';
						} else {
							$prefix = 'Mo';
						}
						if(size_readable(dirsize($dossier), 'Mo') < 1024){
							echo '<div class="circleProgress tooltip_top" title="Espace disque de vos photos" data-dimension="100" data-text="'.size_readable(dirsize($dossier)).' '.$prefix.'" data-fontsize="15" data-width="10" data-border="inline" data-percent="'.size_readable(dirsize($dossier)).'" data-fgcolor="#0b7baa" data-bgcolor="#d7d8d9" data-fill="#fff"></div>';
						} else {
							echo 'Espace disque insuffisant !';
						}
					?> 
					</div>
				</div><?php } ?> 
				<div class="bloc">
					<div class="blocTitle">
						<h1>À propos</h1>
					</div>
					<div class="blocContent">
					
					</div>
				</div>
				<div class="bloc">
					<div class="blocTitle">
						<h1>Photos</h1>
					</div>
					<div class="blocContent">
						
					</div>
				</div>
				<div class="bloc">
					<div class="blocTitle">
						<h1>Amis</h1>
					</div>
					<div class="blocContent">
					
					</div>
				</div>
				<?php include('../include/footer.inc.php'); ?> 
			</div>
		</div>
	</div>
</body>
</html>
<?php } ?>
Merci d'avance