[RESOLU] Htaccess, page profile.php

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 : [RESOLU] Htaccess, page profile.php

Re: Htaccess, page profile.php

par nico44530 » 10 mars 2013, 00:35

J'installe tout (système d'amis compris) et j'te redis par MP quand j'ai terminé, et on verra après pour afficher les infos du membre seulement aux amis
Merci beaucoup :)

Re: Htaccess, page profile.php

par two3d » 09 mars 2013, 05:11

id
id_du_membre
id_de_amis
oui c'est déjà une bonne base, ensuite tu va voir (comme tu le fait pour le pseudo) si l'id du pseudo est dans la table "amis", si il y est, tu vérifiensuite si l'id du visiteur (qui doit être connecté) est inséré dans la table amis) :wink:

Re: Htaccess, page profile.php

par nico44530 » 09 mars 2013, 03:44

Merci beaucoup,

Dans le cas où il y a un choix dans le select "Amis" avec comme valeur 2 (visible juste par les amis)
Je n'ai pas crée de système d'amis, mais peux-tu m'expliquer comment faire pour que les infos soit visible juste par les amis du membre ?

Ça sera 70 % du site fonctionnel :)

A partir d'une table mysql : "amis" avec :

id
id_du_membre
id_de_amis

ou autre colonnes, je sais pas :?

Re: Htaccess, page profile.php

par two3d » 08 mars 2013, 19:06

Ce sera le dernier problème ^^ tu dois en avoir marre de me donner des solutions ^^ lol :roll:
si je te répond c'est que j'en ai pas marre

pour faire une mise à jour du champ afficher_infos, c'est simple (on dit tjrs ça quand ont sais ^^)

la partie HTML:
<form action="tapagedemodif.php" method="post">
	<select name="choix">
		<option value="1"<?php echo $InfosDuMembre['afficher_infos'] == 1 ? ' selected="selected"' : ''; ?>>Je souhaite afficher mes infos au public</option>
		<option value="0"<?php echo $InfosDuMembre['afficher_infos'] == 0 ? ' selected="selected"' : ''; ?>>Je ne souhaite pas afficher mes infos au public</option>
	</select>
	<br />
	<input type="submit" value="Modifier" />
</form>
la partie:

Code : Tout sélectionner

<?php echo $InfosDuMembre['afficher_infos'] == 1 ? ' selected="selected"' : ''; ?>
permet de mettre automatiquement le sélecteur sur l'ancien choix du membre

et la partie PHP:
<?php
if(isset($_POST['choix'])) {
	// on vérifie les données séléctionnées:
	if(!preg_match("#^(1|0)$#",$_POST['choix'])) { // si le visiteur à séléctionné soit oui, soit non (ne jamais faire confiance en ce que l'utilisateur peut entré dans un formulaire, c'est la règle de base !)
		// notre preg_match demande simplement si le choix est de 1 ou 0, si c'est autre chose, on affiche un message qui dit que le choix est incorrect:
		echo "<p>Choix incorrect.</p>";
	} else {
		// si le choix est correct, on met à jour ce choix dans la BDD comme ceci:
		if(mysql_query("UPDATE membres SET afficher_infos = ".." WHERE pseudo = '".htmlentities($_GET['pseudo'], ENT_QUOTES)."'")) {
			echo "Votre choix à été sauvegardé !";
		} else {
			echo "Une erreur s'est produite. Choix non sauvegardé.";
			// possibilité d'afficher pourquoi il y a eu une erreur mais c'est toutes déconseiller de l'afficher au membre
			// mais plutôt d'envoyer un mail à l'admin avec à l'intérieur l'erreur
			
			// donc on peut l'afficher comme ceci:
			echo "Erreur retournée: ".mysql_error();
		}
	}
}

Re: Htaccess, page profile.php

par nico44530 » 08 mars 2013, 15:36

Merci j'ai bien compris cette partie.
Ensuite la dernière chose, c'est le formulaire en php du select pour modifier la valeur du champ.
Je fais une requête update pour mettre à jour la valeur ? Comment dois-je procéder ?

Ce sera le dernier problème ^^ tu dois en avoir marre de me donner des solutions ^^ lol :roll:

Re: Htaccess, page profile.php

par two3d » 08 mars 2013, 07:18

fait comme ceci:

on suppose que la colonne (colonne/champ, pareille pour moi) qui dit "oui ou non je souhaite afficher mes infos" s'appelle "afficher_infos" et le non de ta table mysql où sont inscrits tes membres s'appelle "membres"

donc, on récupère la valeur de afficher_infos comme ceci:
<?php
$Req = mysql_query("SELECT * FROM membres WHERE pseudo = '".htmlentities($_GET['pseudo'], ENT_QUOTES)."'");
// on vérifie si ce membre existe (si il est inscrit dans la table mysql):
if(mysq_num_rows($Req) == 0) { // on part du principe que un seul pseudo preille peut être créé, il ne peut y avoir de doublon (donc si = non trouvé, elese, (1) = trouvé, on affiche donc ses infos (si il le souhaite bien entendu))
	echo "Membre non inscrits";
} else {
	// on récupére les infos:
	$InfosDuMembre = mysql_fetch_assoc($Req);
	// maintenant on récupère notre fameuse valeur "afficher_infos":
	if($InfosDuMembre['afficher_infos'] == 0) { // si 0, soit "non, je souhaite pas afficher mes infos"
		echo "Ce membre ne souhaite pas afficher ces informations personnelles.";
	} else { // si 1, soit "oui, je souhaite afficher mes infos"
		// on affiche les infos du membre:
		?>
		<ul>
			<li>Pseudo: <?php echo htmlentities($_GET['pseudo'], ENT_QUOTES); ?></li>
			<li>Nom: <?php echo $InfosDuMembre['nom'] ; ?></li>
			<li>Prénom: <?php echo $InfosDuMembre['prenom'] ; ?></li>
			<li>etc...</li>
		</ul>
		<?php
	}
}
en espérant que ce code t'aidera à comprendre la façon de procéder (parmi d'autre bien sur)

Re: Htaccess, page profile.php

par nico44530 » 08 mars 2013, 05:38

J'ai crée la colonne.

Un exemple avec l'email :

Dans la page profil.php, l'email est affiché : [email protected]

A coté de l'email, j'afficherais si le membre veut l'afficher ou non au public.
J'utilise un select pour savoir qui peut voir mes infos (Comme sur Facebook) :

- Public → Valeur 1
- Mes amis → Valeur 2
- Moi uniquement → Valeur 0

Ensuite créer la requête et comment afficher la valeur avec ou sans la fonction caché, je ne saurais pas comment faire :cry:

Bien sur ce n'est qu'un exemple pour comprendre, je ne copie pas sur Facebook :wink:

Merci de ton aide

Re: Htaccess, page profile.php

par two3d » 08 mars 2013, 05:10

dans ta table membres tu ajoute un champ que tu nomme "afficher_infos", tu le met en TINYINT => valeur par défaut: 0

tu ira ensuite cherche cette valeur et si le contenu et 0, tu n'affiche pas les infos, si la valeur est 1, tu affiche les infos.

as tu compris ?

Re: Htaccess, page profile.php

par nico44530 » 08 mars 2013, 03:49

Aurais tu un exemple, je n'ai pas trop compris comment faire :?
Il faut que je mets quoi comme colonne, et quelle requête faire en php

Re: Htaccess, page profile.php

par two3d » 07 mars 2013, 04:14

si tu veux cacher ou modifier un champ en particulier, tu peu faire avec une seule colonne et récupérer les valeurs via un explode en PHP, genre:

Code : Tout sélectionner

0:0:1:0:1:1:1:0:
le séparateur serait en fait le deux points (:) et les 1 ou 0 correspondrait à oui ou non je veux afficher certaines valeur.

je pense que le plus simple est de faire un champ pour chaque valeur sauf si tu "oui ou non" je souhaite afficher mes infos, pour cela, une colonne suffira et comme valeur elle aura 0 (pour ne pa afficher) et 1 (pour les afficher)

Re: Htaccess, page profile.php

par nico44530 » 07 mars 2013, 02:43

Merci pour ton message !

Il faut obligatoirement créer une colonne par infos qu'on souhaite cacher ?
Parce que je vais permettre au membre de cacher :

Son prénom, nom, age, email, ville, date de naissance ...

On pourrait juste créer 2 colonnes :

- active (Les infos sont visibles)
- noactive (Le contraire)

Sinon j'ai plutôt redirigé les internautes non connectés qui visitent le profil d'un membre vers la page de connexion, j'ai pas le temps de modifier la page profil (peut-être un jour).
Ensuite j'ai supprimé une des 2 requêtes et j'ai fais les modifs avec mysql_fetch_assoc pour alléger le serveur :wink:

Je sais pas ce que je ferais sans toi :priere: lol

Re: Htaccess, page profile.php

par two3d » 06 mars 2013, 16:04

re

pour que tu veuille que d'autre personne puisse accéder à cette page, il te faut enlever la condition du "si t'es pas connecté, tu est rediriger vers ../index.php", soit cette partie:
if (!isset($_SESSION['pseudo'])) {
        header('Location: ../index.php');
        exit();
}
ensuite, je comprend ceci: (deux foix la même requête)
$sql = connect_sql();
$pseudo = htmlentities($_GET['pseudo'], ENT_QUOTES);
$query = mysql_query("SELECT * FROM wa_communaute WHERE pseudo='".mysql_real_escape_string($pseudo)."'");
$result = mysql_fetch_array ($query);
mysql_close();

if(mysql_num_rows($query)==0) {
        header('Location: ../index.php');
        exit();
} else {

$sql = connect_sql();
$pseudo = htmlentities($_GET['pseudo'], ENT_QUOTES);
$requete =  mysql_query('SELECT * FROM wa_communaute WHERE pseudo="'.mysql_real_escape_string($pseudo).'"');
if(mysql_num_rows($requete)>0) {
$result = mysql_fetch_array ($requete);
mysql_close();
tu n'a pas besoin de refaire une requête vue que tu en a faite une auparavant, tu aura juste besoin de faire un mysql_fetch_assoc() après le mysql_num_rows() (si ya plus de 0 résultat, si ya 0 c'est que le membre n'a pas été trouvé donc pas besoin de traiter mysql_fetch_assoc())

PS: utiliser mysql_fetch_assoc() à la place de mysql_fetch_array() est plus rapide (array sert à avoir les résultat via des chiffres à la places des vrais nom, exemple: $result['nom'] pourrait être disponible via $result[0] également mais comme presque jamais ont utilise les chiffres, c'est pourquoi je conseil l'utilisation de assoc)


Pour l'affichage de certaines informations du membre, ou pas:

tu à juste à ajouter des nouvelles colonnes dans la base de données (dans la table des membres) type: afficher_info_nom (En TINYINT ça suffira vue que ce champ comporte seulement 0 ou 1, par défaut, tu lui assigne 0 quand tu l'ajoute à la )table)

ensuite, tu fait un formulaire de modification membre où le membre pourra modifier cette valeur par lui même avec comme choix "oui" ou "non" (soit: 1 ou 0)


Pour afficher ou non la valeur, tu fera une condition en ternaire (plus simple et un poil plus rapide):
echo $result['afficher_info_nom'] == 1 ? "Nom: ".$result['nom'] : "";
Plus d'info sur la condition ternaire: http://php.net/manual/fr/language.opera ... on.ternary

Re: Htaccess, page profile.php

par nico44530 » 06 mars 2013, 14:57

J'ai encore besoin d'aide :

J'aimerais que la page profil soit accessible même si on est pas connecté.
Et que certaines des infos du membre s'affiches (comme sur Facebook)
Je cacherais les infos avec "booléen" : True on affiche, et false on cache et c'est le membre qui choisira :)

Mais comment je fais pour faire ça ? Voici ma page profil.php
<?php
session_start();
require('../include/functions.inc.php');

if (!isset($_SESSION['pseudo'])) {
	header('Location: ../index.php');
	exit();
}
if (!isset($_GET['pseudo'])) {
	header('Location: ../index.php');
	exit();
}

if(empty($_GET['pseudo'])) {
	echo('Erreur : Pseudo non reconnu');
	exit();
} else {

$sql = connect_sql();
$pseudo = htmlentities($_GET['pseudo'], ENT_QUOTES);
$query = mysql_query("SELECT * FROM wa_communaute WHERE pseudo='".mysql_real_escape_string($pseudo)."'");
$result = mysql_fetch_array ($query);
mysql_close();

if(mysql_num_rows($query)==0) {
	header('Location: ../index.php');
	exit();
} else {

$sql = connect_sql();
$pseudo = htmlentities($_GET['pseudo'], ENT_QUOTES);
$requete =  mysql_query('SELECT * FROM wa_communaute WHERE pseudo="'.mysql_real_escape_string($pseudo).'"');
if(mysql_num_rows($requete)>0) {
$result = mysql_fetch_array ($requete);
mysql_close();

$id = $result['id'];
$mail = $result['mail'];
$nom = $result['nom'];
$prenom = $result['prenom'];
$sexe = $result['sexe'];
$temps = $result['temps'];
$Mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
?>
<!DOCTYPE html>
<html lang="fr">
<head>
	<meta charset="utf-8">
	<title><?php echo htmlentities(ucfirst($prenom)); ?> <?php echo htmlentities(ucfirst($nom)); ?></title>
	<meta name="description" content="Web Astronomie vous permet de publier vos articles, photos... avec vos amis et les internautes du site. Inscrivez-vous dès maintenant !" />
	<meta name="keywords" content="Web Astronomie, Web-astronomie, Astronomie, Web-astro, Webastro, Web, Communauté, Réseau, Social" />
	<meta name="google-site-verification" content="MuLDj47hIOGv8WGogFlITztArNdmoZTsgQd1NUpMz7g" />
	<base href="http://www.web-astronomie.fr">
	<link rel="shortcut icon" href="img/favicon.ico" />
	<link rel="stylesheet" href="css/global.css" />
	<script type="text/javascript" src="js/mootools.js"></script>
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/cookie.js"></script>
	<script type="text/javascript" src="js/script.js"></script>
	<script type="text/javascript" src="js/global.js"></script>
</head>
<body>
	<div id="header" class="fixed">
		<div class="container">
<?php include('../include/header.inc.php'); ?>
		</div>
	</div>
	<div id="content">
		<div class="container">
			<div id="server-500"></div>
			<?php if (isset($_COOKIE['alert-cookie'])) { ?>
			<?php } else { ?>
				<div class="alert-info">
					<p>Des perturbations sont en cours sur le site : Mise à jour Version 2.0 | <a href="">En savoir plus</a></p>
					<a class="close-alert tooltip" onclick="return false" href="">x
					<span class="tooltip"><span class="arrow"></span><span class="tip mini">Fermer</span></span></a>
				</div>
			<?php } ?>
			<noscript>
				<div class="alert-error">
					<p>Javascript est désactivé : Certaines fonctionnalités ne pourraient pas fonctionner, activez-le dans votre navigateur</p>
				</div>
			</noscript>
			<div id="rightCol" class="float-r">
<?php include('../include/sidebar-r.inc.php'); ?>

			</div>
			<div id="cover">
				<div class="bloc-data" id="img-couverture">
				
				</div>
			</div>
			<div id="leftCol" class="float-l">
				<div class="bloc-data">
					
				</div>
			</div>
			<div id="content-userArea" class="float-l">
				<div class="bloc-data">
					
				</div>
			</div>
		</div>
	</div>
</body>
</html>
<?php } } } ?>
Merci de votre aide :)

Re: Htaccess, page profile.php

par two3d » 01 mars 2013, 23:09

un de mes tout premier espace membre :D

Re: Htaccess, page profile.php

par nico44530 » 01 mars 2013, 22:05

Oui mon espace membre est basé sur un script qui est téléchargeable sur http://scripts.toocharger.com/fiches/sc ... e/3317.htm

Je lui ai ajouté beaucoup de fonctionnalité :wink:
Mais j'ai encore besoin d'aide pour les faire fonctionner ^^ notamment sur les forum