Aller au menu - Aller au contenu

[TUTO] Espace membre

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3  ...  20  21  22  23  24  25  26  ...  30  31  32  33  Suivante
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page Précédente  1  2  3  ...  20  21  22  23  24  25  26  ...  30  31  32  33  Suivante
Hors ligne mister-cereal # Posté le 08/01/2009 à 13:28:04
Avatar

Reprise du dernier message de la page précédente :
A se demander ce qui peut poser problème ,je pense peut être ma manière de crypter

Image utilisateur
 
Hors ligne LkY # Posté le 08/01/2009 à 17:48:05
Kubuntuuuuu...
Avatar

Lors de ton inscription, tu enregistre le mdp en sha1 ou en md5 dans ta bdd ? :o

Image utilisateur
Un Design Pro, Rapide et... Gratuit !! :waw:
Commande réalisée rapidement et dans la bonne humeur sur Heaven Design ! ;)
Heaven-Design v3 : 50% - Tuto espace membre : 50% (VALIDE !!)
 
Hors ligne mister-cereal # Posté le 08/01/2009 à 18:14:35
Avatar

Oui en sha1
Une erreur de requete peut être ?

Image utilisateur
 
Hors ligne LkY # Posté le 08/01/2009 à 21:02:43
Kubuntuuuuu...
Avatar

Comme je le conseille souvent, isole des parties de codes dont tu n'est pas absolument sûr du résultat, tu ne trouvera l'origine de ton problème que comme ça.

Repose toi, oubli ton script un jour ou deux et relis le d'un œil nouveau, ça aide beaucoup, je rigole pas ! ^^

Image utilisateur
Un Design Pro, Rapide et... Gratuit !! :waw:
Commande réalisée rapidement et dans la bonne humeur sur Heaven Design ! ;)
Heaven-Design v3 : 50% - Tuto espace membre : 50% (VALIDE !!)
 
Hors ligne mister-cereal # Posté le 08/01/2009 à 21:22:22
Avatar

Merci je fais actuellement un test avec une autre requete si ca marche je sauris d'ou ca viens et sinon je verrais dans 2 jours ^^

Image utilisateur
 
Hors ligne mister-cereal # Posté le 09/01/2009 à 14:22:33
Avatar

Hello
Alors j'ai tout testé et j'ai fini par mettre dans mon else 2 echo
1 pour mon mdp en sha1 et l'autre pour celui de la bdd et je n'ai rien en provenance de la BDD donc erreur de requete =)
Édité le 09/01/2009 à 17:50:39 par mister-cereal

Image utilisateur
 
Hors ligne romain1411 # Posté le 09/01/2009 à 20:24:27

Bonsoir, j'ai un problème avec ma page "user.php"..
Ensomme, elle affiche .... RIEN DU TOUT (page blanche)

Voici mon code:
Code : PHP
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
<?php
/*
Neoterranos & LkY
Page index.php

Affichage de profil.

Quelques indications : (Utiliser l'outil de recherche et rechercher les mentions données)

Liste des fonctions :
--------------------------
Aucune fonction
--------------------------


Liste des informations/erreurs :
--------------------------
Le membre n'existe pas
--------------------------
*/

session_start();
header('Content-type: text/html; charset=utf-8');
define(ROOTPATH, 'http://'.$_SERVER['HTTP_HOST'], true);
define(TITRESITE, 'Rscl On Fire', true);
$queries = 0;

/********Actualisation de la session...**********/

function sqlquery($requete, $number)
{
	$query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête
	
	/*
	Deux cas possibles ici :
	Soit on sait qu'on a qu'une seule entrée qui sera
	retournée par SQL, donc on met $number à 1
	Soit on ne sait pas combien seront retournées,
	on met alors $number à 2.
	*/
	
	if($number = 1)
	{
		$query1 = mysql_fetch_assoc($query);
		mysql_free_result($query);
		/*mysql_free_result($query) libère le contenu de $query, je
		le fais par principe, mais c'est pas indispensable.*/
		return $query1;
	}
	
	else if($number == 2)
	{
		while($query1 = mysql_fetch_assoc($query))
		{
			$query2[] = $query1;
			/*On met $query1 qui est un array dans $query2 qui
			est un array. Ca fait un array d'arrays :o*/
		}
		mysql_free_result($query);
		return $query2;
	}
	
	else //Erreur
	{
		exit('Argument de sqlquery non renseigné ou incorrect.');
	}
}

function connexionbdd()
{
	//Définition des variables de connexion à la base de données
	$bd_nom_serveur='**';
	$bd_login='**';
	$bd_mot_de_passe='**';
	$bd_nom_bd='**';

	//Connexion à la base de données
	mysql_connect($bd_nom_serveur, $bd_login, $bd_mot_de_passe);
	mysql_select_db($bd_nom_bd);
	mysql_query("set names 'utf8'");
}

function actualiser_session()
{
	global $queries;
	if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
	{
		//utilisation de la fonction sqlquery, on sait qu'un aura qu'un résultat car l'id d'un membre est unique.
		$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_SESSION['membre_id']), 1);
		$queries++;
		
		//Si la requête a un résultat (id est : si l'id existe dans la table membres)
		if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
		{
			if($_SESSION['membre_mdp'] != $retour['membre_mdp'])
			{
				//Dehors vilain pas beau !
				$informations = Array(/*Mot de passe de session incorrect*/
									true,
									'Session invalide',
									'Le mot de passe de votre session est incorrect, vous devez vous reconnecter.',
									'',
									'./connexion.php',
									3
									);
				
				vider_cookie();
				session_destroy();
				exit();
			}
			
			else
			{
				//Validation de la session.
					$_SESSION['membre_id'] = $retour['membre_id'];
					$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
					$_SESSION['membre_mdp'] = $retour['membre_mdp'];
			}
		}
	}
	
	else //On vérifie les cookies et sinon pas de session
	{
		if(isset($_COOKIE['membre_id']) && isset($_COOKIE['membre_mdp'])) //S'il en manque un, pas de session.
		{
			if(intval($_COOKIE['membre_id']) != 0)
			{
				//idem qu'avec les $_SESSION
				$retour = sqlquery("SELECT membre_id, membre_pseudo, membre_mdp FROM membres WHERE membre_id = ".intval($_COOKIE['membre_id']), 1);
				$queries++;
				
				if(isset($retour['membre_pseudo']) && $retour['membre_pseudo'] != '')
				{
					if($_COOKIE['membre_mdp'] != $retour['membre_mdp'])
					{
						//Dehors vilain tout moche !
						$informations = Array(/*Mot de passe de cookie incorrect*/
											true,
											'Mot de passe cookie erroné',
											'Le mot de passe conservé sur votre cookie est incorrect vous devez vous reconnecter.',
											'',
											'zone-membres/connexion.php',
											3
											);
						require_once('zone-membre/information.php');
						vider_cookie();
						session_destroy();
						exit();
					}
					
					else
					{
						//Bienvenue :D
						$_SESSION['membre_id'] = $retour['membre_id'];
						$_SESSION['membre_pseudo'] = $retour['membre_pseudo'];
						$_SESSION['membre_mdp'] = $retour['membre_mdp'];
					}
				}
			}
			
			else //cookie invalide, erreur plus suppression des cookies.
			{
				$informations = Array(/*L'id de cookie est incorrect*/
									true,
									'Cookie invalide',
									'Le cookie conservant votre id est corrompu, il va donc être détruit vous devez vous reconnecter.',
									'',
									'./connexion.php',
									3
									);
				require_once('zone-membre/information.php');
				vider_cookie();
				session_destroy();
				exit();
			}
		}
		
		else
		{
			//Fonction de suppression de toutes les variables de cookie.
			if(isset($_SESSION['membre_id'])) unset($_SESSION['membre_id']);
			vider_cookie();
		}
	}
}

function vider_cookie()
{
	foreach($_COOKIE as $cle => $element)
	{
		setcookie($cle, '', time()-3600);
	}
}

function age($birth)
{
	$DATE = intArray(explode('/', $birth));
	$try = mktime(0, 0, 0, $DATE[1], $DATE[0], date('Y'));
	if(time() >= $try) $age = date('Y') - $DATE[2];
	else $age = date('Y') - $DATE[2] - 1;

	return $age;	
}
function intArray($Array)
{
	foreach($Array as $cle => $element)
	{
		$Array[$cle] = intval($element);
	}
	
	return $Array;
}



connexionbdd();
actualiser_session();

/********Fin actualisation de session...**********/

/********Gestion avant affichage...***********/
if($_GET['id'] == '') //s'il n'y a pas d'id, on affiche la page du membre connecté...
{
	if(isset($_SESSION['membre_id'])) $id = $_SESSION['membre_id'];
	else $id = -1;
}

else $id = $_GET['id'];

$profil = sqlquery("SELECT * FROM membres
LEFT JOIN connectes
ON connectes_id = membre_id
WHERE membre_id=".intval($id), 1);
if($profil['membre_id'] == '' || $id == -1)
{
	$informations = Array(/*L'id de cookie est incorrect*/
		true,
		'Page membre inconnue',
		'Ce membre n\'existe pas.',
		'',
		'../index.php',
		3
		);
	require_once('../information.php');
	exit();
}
/********Fin gestion avant affichage************/

/********Entête et titre de page*********/

$titre = 'Membre : '.htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES).'';
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
	<head>
<?php	
	/**********Vérification du titre...*************/
	
	if(isset($titre) && trim($titre) != '')
	$titre = $titre.' : '.TITRESITE;
	
	else
	$titre = TITRESITE;
	
	/***********Fin vérification titre...************/
	?>
		<title><?php echo $titre; ?></title>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<meta name="language" content="fr" />
		<link rel="stylesheet" title="Design" href="<?php echo ROOTPATH; ?>/design.css" type="text/css" media="screen" />
	</head>


	<body>
		<div id="banniere">
			<a href="<?php echo ROOTPATH;?>/index.php"><img src="<?php echo ROOTPATH; ?>/images/banniere.png"/></a>
		</div>
		
		<div id="menu">
			<div id="menu_gauche">
			<!-- Vide, mettez-y les liens qui ne dépendent pas du statut
			du membre (connecté ou non) -->
			</div>

		</div>

<?php
/**********Fin entête et titre***********/
?>

		<div id="colonne_gauche">
		<?php
		include('../includes/colg.php');
		?>
		</div>
<!--contenu//-->
		<div id="contenu">
			<div id="map">
				<a href="../index.php">Accueil</a> => <a href="user.php?id=<?php echo intval($profil['membre_id']); ?>">Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></a>
			</div>
			
			<h1>Profil de <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></h1>
			
			<div class="profil_cellule_float">
				<h2>Informations générales</h2>
				
				
				<div class="avatar">
				<?php
				if($profil['membre_avatar'] == '')
				{
					echo 'Pas d\'avatar';
				}
				?>
				</div>
<!--liste//-->
				<ul>
					<li><b>Pseudo :</b> <?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?></li>
					<li><b>Date d'inscription :</b> <?php echo mepd($profil['membre_inscription']); ?></li>
					<li><b>Groupe :</b> <?php if($profil['banni'] == 1) echo 'bannis'; else echo 'membres'; ?></li>
					<li><b>Dernier passage :</b> <?php echo mepd($profil['membre_derniere_visite']); ?></li>
					<li><b>Statut :</b>
					<?php
					if($profil['connectes_id'] == $profil['membre_id'])
					{
					?>
					<span class="actif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est connecté</span>
					<?php
					}
					
					else
					{
					?>
					<span class="inactif"><?php echo htmlspecialchars($profil['membre_pseudo'], ENT_QUOTES); ?> est déconnecté</span></li>
					<?php
					}
					?>
				</ul>
			</div>
<!--infos complémentaires//-->
			<div class="profil_cellule">
				<h2>Informations complémentaires</h2>
				<ul>
					<li><b>Date de naissance :</b> <?php echo $profil['membre_naissance']; ?></li>
					<li><b>Âge :</b> <?php echo age($profil['membre_naissance']); ?>
					<?php
					if(trim($profil['membre_profession']) != '') /*affichage de la profession*/
					{
					?>
					<li><b>Profession :</b> <?php echo htmlspecialchars($profil['membre_profession'], ENT_QUOTES); ?></li>
					<?php
					}
					
					if(trim($profil['membre_localisation']) != '') /*affichage de la ville*/
					{
					?>
					<li><b>Ville :</b> <?php echo htmlspecialchars($profil['membre_localisation'], ENT_QUOTES); ?></li>
					<?php
					}
					?>
				</ul>
			</div>
<!--contact//-->
			<div class="profil_cellule">
				<h2>Comment le joindre</h2>
				<!--
				L'email est généralement une information très privée, pour le moment
				nous ne la protégeons pas, mais très vite nous le ferons.
				//-->
				S'il y a un module de MP sur votre site, ou si vous comptez en mettre un, mettez un lien. :)
				
				<h3>Messageries</h3>
				<ul>
					<li><b>E-Mail :</b> <img src="image.php?tex=<?php echo htmlspecialchars($profil['membre_mail'], ENT_QUOTES); ?>"/></li>
					<?php
					if(trim($profil['membre_msn']) != '')
					{
					?>
					<li><b>MSN :</b> <img src="image.php?tex=<?php echo htmlspecialchars($profil['membre_msn'], ENT_QUOTES); ?>"/></li>
					<?php
					}
					
					if(trim($profil['membre_yahoo']) != '')
					{
					?>
					<li><b>Yahoo :</b> <img src="image.php?tex=<?php echo htmlspecialchars($profil['membre_yahoo'], ENT_QUOTES); ?>"/></li>
					<?php
					}
					
					if(trim($profil['membre_aim']) != '')
					{
					?>
					<li><b>Aim :</b> <img src="image.php?tex=<?php echo htmlspecialchars($profil['membre_aim'], ENT_QUOTES); ?>"/></li>
					<?php
					}
					?>
				</ul>
			</div>
<!--signature et fin//-->
			<div class="profil_ligne">
				<h2>Signature</h2>
				
				<?php echo htmlspecialchars($profil['membre_signature'], ENT_QUOTES); ?>
			</div>
			
			<div class="profil_ligne">
				<h2>Biographie</h2>
				
				<?php echo htmlspecialchars($profil['membre_biographie'], ENT_QUOTES); ?>
			</div>
		</div>
		
		<?php
		include('../includes/bas.php');
		mysql_close();
		?>


merci
Édité le 09/01/2009 à 20:25:11 par romain1411
Hors ligne romain1411 # Posté le 10/01/2009 à 14:23:16

UP ! ^^
Hors ligne mister-cereal # Posté le 10/01/2009 à 14:35:50
Avatar

Bonjour,

J'ai resolu une partie de mon soucis mais maitenant ma page est vide

Image utilisateur
 
Hors ligne naviss # Posté le 10/01/2009 à 22:15:19
I am a geek no nolife
Avatar

Ville : Villeneuve les maguelone
Pays : France métropolitaine
études : ISEN Toulon

Bonjour a vous tous
Et tous d'abord je voudrai dire un grand merci à Neoterranos & LkY votre tuto m'a beaucoup aidé a progressé en php. j'avais déjà fait plusieurs scriptes pour un espace membres mais très basique. Le votre est mille fois mieux.

Je voudrai juste faire une petite remarque : beaucoup de variable ne sont pas vérifier avant de les traité. un petit isset de temps en temps ne ferai pas de mâle car en essayant votre scripte j'ai été submergé de erreur: notice unexpected ....

J'ai vraiment hâte de voir la suite de ce tuto.

Encore une fois merci beaucoup à vous.
 
Hors ligne Neoterranos # Posté le 12/01/2009 à 20:35:09
Oh my god, they killed Kenny !
Avatar

@ naviss : Oui, rigoureusement tu as raison, maintenant ce n'est pas indispensable notice c'est pas une erreur mais une information, suffit de bien paramétrer ton error_reporting.
Mais j'y penserai si je dois faire des modifications. :)

Je ne reprends pas tous les problèmes énoncés, LkY s'en sort plutôt bien, au pire, repostez votre problème, et je me pencherai dessus, mais là, ça ferait trop à lire, sans compter que la plupart des réponses sont déjà dans le topic.

Bon, je vous annonce que ce week end ou le week end prochain, je fais un autre chapitre-TP. :)

Bonne soirée !
Édité le 12/01/2009 à 20:36:27 par Neoterranos

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne Rouky # Posté le 13/01/2009 à 02:23:39
Avatar

Hello, j'ai un petit problème sur ma page qui traite la connexion d'un membre. Le problème est que lorsque j'entre un mauvais mot de passe, il doit y avoir un message m'informant de cette erreur, mais ce n'est pas le cas le message n'apparait pas (la mise en forme HTML toussa oui), même si le membre n'est pas connecté ensuite, je souhaiterais que le message apparaisse. (Pour les membres déjà connectés qui appellent la page, il sort carrément une page blanche) Pour la connexion quand les identifiants sont bons pas de soucis ça fonctionne. J'espère qu'un oeil expérimenté trouvera l'erreur facilement ^^

J'ai repris les bases du tutoriel, mais ne vous étonnez pas si les pages incluent sont différentes et ne porte pas le même nom. (fonction.php par exemple). Ce que je demande c'est un peu d'aide, à savoir pourquoi si la connexion est refusée le contenu du echo ne s'affiche pas (ou carrément page blanche si le membre est déjà connecté).

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
session_start();
include('fonctions.php');
connexionbdd();
actualiser_session();

include('header.php');
include('mess_top.php');



  if(isset($_SESSION['membre_id']))
      {
        echo '<br /><h3>Vous êtes déjà connecté(e)</h3>
              <p class="center"><img src="../images/loading.gif" /></p>
              <p>Vous allez être redirigé(e) dans 10 secondes.</p><br />
              <p class="center"><a href="http://**********">Ne pas attendre</a></p><br />';

    include('mess_bottom.php');
        exit();
      }



  if($_POST['validate'] != 'ok')
      {
        echo '<br /><h3>Erreur</h3>
              <p class="center"><img src="../images/loading.gif" /></p>
              <p>Vos identifiants sont incorrects</p>
              <p>Si le problème persiste, veuillez contacter un Administrateur <a class="center" href="http://**********/contact.php">via le formulaire de contact.</a></p><br />
              <p>Vous allez être redirigé(e) dans 10 secondes.</p><br />
              <p class="center"><a href="http://**********">Ne pas attendre</a></p><br />';

    include('mess_bottom.php');
        exit();
      }
	

		
  else
      {
        $result = sqlquery("SELECT COUNT(membre_id) AS nbr, membre_id, membre_pseudo, membre_mdp FROM membres WHERE
	          membre_pseudo = '".mysql_real_escape_string($_POST['pseudo'])."' GROUP BY membre_id", 1);
	
			
          if($result['nbr'] == 1)
            {

                if(md5($_POST['mdp']) == $result['membre_mdp'])
                  {
                    $_SESSION['membre_id'] = $result['membre_id'];
                    $_SESSION['membre_pseudo'] = $result['membre_pseudo'];
                    $_SESSION['membre_mdp'] = $result['membre_mdp'];
                    unset($_SESSION['connexion_pseudo']);
						
                if(isset($_POST['cookie']) && $_POST['cookie'] == 'on')
                  {
                    setcookie('membre_id', $result['membre_id'], time()+365*24*3600);
                    setcookie('membre_mdp', $result['membre_mdp'], time()+365*24*3600);
                  }
						
        echo '<br /><h3>Vous êtes maintenant connecté(e)</h3>
              <p class="center"><img src="../images/loading.gif" /></p>
              <p>Vous allez être redirigé(e) dans 10 secondes.</p><br />
              <p class="center"><a href="http://**********">Ne pas attendre</a></p><br />';

    include('mess_bottom.php');

                  }
      exit();

            }	
      }
			
mysql_close();
?>


thx :)

Et merci aux auteurs de ce tutoriel ^^

Ps: merci à sachadu41 pour avoir donné les sources de son module de messagerie, c'est très gentil ^^
Édité le 13/01/2009 à 02:31:48 par Rouky
Hors ligne Neoterranos # Posté le 13/01/2009 à 22:15:40
Oh my god, they killed Kenny !
Avatar

Ben $_POST['validate'] n'est pas un indicateur de connexion réussie ou non, l'échec est conditionné par le else associé à <?php if(md5($_POST['mdp']) == $result['membre_mdp']) ?>

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne Rouky # Posté le 14/01/2009 à 04:13:28
Avatar

D'accord merci Neoterranos :)



Une autre question

J'ai ajouter dans la table `membres` un champs `membre_group`

voir la requête:

Code : SQL
1
ALTER TABLE `membres` ADD `membre_group` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ;


Ensuite j'ai ajouté via phpMyAdmin la valeur admin à mon pseudo dans ce champ.

J'ai donc fait pour l'instant une page "accueil administration" où je voudrais en toute logique restreindre l'acces à cette page aux admins.

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start();
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();

/* ~~~~~~~~~~~~~~

ACCUEIL DE L'ADMINISTRATION

 ~~~~~~~~~~~~~~*/

/* ~~~~ Si la permission n'est pas respectée ça affiche une page blanche ~~~~*/

    $permission = mysql_query("SELECT membre_group FROM membres") or die(mysql_error());
	
        if(isset($_SESSION['membre_group']) != 'admin')
		    {
			    exit();
		    }
	    else
		    {

/* ~~~~ Affichage de la page si la permission est respectée  ~~~~*/
?>


Le problème c'est que ça affiche la page même si je ne suis pas admin :-°
J'apprends le PHP grâce au tuto de M@t et le votre qui me permet de m'exercer sur quelque chose de concret, donc ne me fouettez pas :euh:

Bonne continuation.

Edit : en attente d'une réponse j'ai modifié mon code, mais là je ne suis plus sûr de la syntaxe:

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
session_start();
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();

/* ~~~~~~~~~~~~~~

ACCUEIL DE L'ADMINISTRATION

 ~~~~~~~~~~~~~~*/

/* ~~~~ Si la permission n'est pas respectée ça affiche une page blanche ~~~~*/

    $permission = mysql_query("SELECT membre_group FROM membres") or die(mysql_error());
	
        if(isset($_SESSION['membre_group']) == NULL)
             {
	          elseif(isset($_SESSION['membre_group']) != $permission['membre_group']);
		  {
		  exit();
		  }
	     }
	else
	     {

/* ~~~~ Affichage de la page si la permission est respectée  ~~~~*/
?>


C'est dur le php :'(
Édité le 14/01/2009 à 06:24:03 par Rouky
Hors ligne sachadu41 # Posté le 14/01/2009 à 09:03:35
Avatar

Dans ton premier code, il y a quelque chose qui ne va pas : a quoi sert $permission ?
Remplace ton code par :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start();
include('../includes/fonctions.php');
connexionbdd();
actualiser_session();

/* ~~~~~~~~~~~~~~

ACCUEIL DE L'ADMINISTRATION

 ~~~~~~~~~~~~~~*/

/* ~~~~ Si la permission n'est pas respectée ça affiche une page blanche ~~~~*/

    /*$permission = mysql_query("SELECT membre_group FROM membres") or die(mysql_error());*/
	
        if(isset($_SESSION['membre_group']) AND $_SESSION['membre_group'] != 'admin')//Juste un conseil : Remplace admin par 1, les modos par 2 (si tu en as) et les simples membres par 3, c'est plus simple.
		    {
			    exit();
		    }
	    else
		    {

/* ~~~~ Affichage de la page si la permission est respectée  ~~~~*/
?>

Et ça devrait être bon.

Image utilisateur
 
Hors ligne Rouky # Posté le 14/01/2009 à 12:10:03
Avatar

Merci sachadu41 :)

Au fait ton système de mp fonctionne au poil ^^ (après sécurisation et disparition des messages non-lus dans "les dix derniers messages avec (...))

Bonne journée et bonne continuation :)
Hors ligne artist ik # Posté le 14/01/2009 à 19:17:36

Bonjour, Bonsoir...
Super tuto ! Je suis vraiment ravi, seulement j'ai quelques problèmes :

>Avez vous pensé aux pseudos contenant une apostrophe ?
J'ai essayé moi même avec la fonction stripslashes en vain...

>Sinon, pour la messagerie (merci à sachadu41), j'aimerai que les invités ne voient pas la messagerie, pour cela j'ai essayé d'appeler la page information avec array mais j'obtient l'effet inverse : lorsque on est connecté on peut pas y accéder mais si on est invité on peut...

Jetez un coup d'œil dans les membres inscrits... Il y a Louis-Gab\' alors qu'a l'inscription j'ai bien entré sans l'antislash....

A vous les zéros :p
Édité le 13/11/2009 à 17:23:07 par artist ik

Mon site : LouisGabArt
Php, Css, Javascript, Ajax.

Je vous donne des invitations LOCKERz ! Envoyez moi un MP !
Je donne aussi des invitations pour SONDAGEO ! idem !


 
Hors ligne Rouky # Posté le 15/01/2009 à 07:44:26
Avatar

Bonjour, pour les pseudo contenant une apostrophe y a aucun problème normalement.

Pour restreindre l'accès à la messagerie seulement aux membres tu fais juste une condition qui pourrait ressembler ça
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php

     $permission = mysql_query("SELECT membre_id FROM membres") or die(mysql_error());

        if(isset($_SESSION['membre_id']) != $permission)
            {
              exit();; /* Si la personne n'est pas connecter ça affiche une page blanche*/
            }
        else
	    {
              /* sinon ça affiche la page */
?>
Hors ligne Punkside # Posté le 15/01/2009 à 13:01:23
^^Enjoy^^
Avatar

études : IUP Avignon

Ou plutôt tout simplement vérifier que $_SESSION['membre_id'] existe ET n'est PAS nul, puisque cette session n'existe qu'après la connexion. Pas besoin donc de faire une requête supplémentaire, non ? ^^

" - Tu sais pas écrire ! - "
" - Ouai mais bon, ça ne se voit pas d'habitude quand je ne parle pas !! xD - "

Gimme a fix of...
 
Hors ligne sachadu41 # Posté le 15/01/2009 à 18:45:32
Avatar

J'ai eu le même problème que louisgab pour les antislashes, j'ai tout simplement rajouté des stripslashes partout à l'affichage, et ça marche ^^

Image utilisateur
 
Hors ligne chappati_21 # Posté le 16/01/2009 à 10:09:49

Super tutorial !
Par contre j'ai un petit problème avec le ROOTPATH a chaque fois il me met:

Use of undefined constant ROOTPATH - assumed 'ROOTPATH' in C:\wamp\www\Sitedu0\includes\config.php on line 22

je suis en local et dans mon code j'écris:

define(ROOTPATH, 'http://'.$_SERVER['HTTP_HOST'].'/Sitedu0', true);

Est-ce correct ?



SOLUTION:

Il fallait en fait mettre des cotes:

define('ROOTPATH', 'http://'.$_SERVER['HTTP_HOST'].'/Sitedu0', true);

A+
Édité le 16/01/2009 à 14:29:23 par chappati_21
Hors ligne tibob123 # Posté le 16/01/2009 à 14:15:10
Fan d'Emma Watson =D
Avatar

Citation : Pas de titre
CREATE TABLE `connectes` (
`connectes_id` int(11) NOT NULL, --id du membre connecté, vaut -1 si le membre est un invité.
`connectes_ip` varchar(16) NOT NULL, --l'ip du connecté, fera appel à une fonction getIp().
`connectes_membre` varchar(16) NOT NULL, --est-ce que le connecté est un membre ? Vaut 1 si oui, vaut l'adresse ip du connecté sinon.
`connectes_actualisation` int(11) NOT NULL, --dernière actualisation
UNIQUE KEY `membre_id` (`connectes_id`,`connectes_membre`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
*/


Il y a des erreurs

MySQL a répondu:Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '--id du membre connecté, vaut -1 si le membre est un invité.
`connectes_ip`' at line 2


Merci d'avance
Hors ligne Rouky # Posté le 16/01/2009 à 14:29:55
Avatar

Salut, lève les commentaires, qui commence par deux tirets (-- ceci est un commentaire SQL)
Hors ligne mister-cereal # Posté le 16/01/2009 à 15:12:50
Avatar

Bonjour,
J'ai un petit soucis avec la fonction vider_cookie de la page deconnexion


Fatal error: Call to undefined function vider_cookie() in /home/data/users/h/helpinfo/membres/deconnexion.php on line 10

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
if (isset($_SESSION['pseudo'])) // Si on est connecter on peut se decconecter ,on inclut le fichier contenant l'information et la redirection logique :o
{
	vider_cookie();
session_destroy();

include ("../informations/decconecter_ok.php") ;
}

else // Si one st aps connecter on affiche une page d'erreur
{
	include ("../erreurs/deconnecter.php") ;
}
?>


merci
Édité le 16/01/2009 à 15:13:25 par mister-cereal

Image utilisateur
 
Hors ligne Rouky # Posté le 16/01/2009 à 15:19:13
Avatar

Avant ta condition il y a bien <?php session_start(); include('includes/config.php'); connexionbdd(); ?> ?
Hors ligne mister-cereal # Posté le 16/01/2009 à 15:22:47
Avatar

Non je ne m'occupe actuellement pas des statistiques donc pas besoins de connexion a la BDD

Toute ma page Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php include("../includes/session_start.php"); // On demare les sessions
$titre = "Help-info ~~ Site communautaire de cours et d'entraide pour windows , linux etc ..." ; // Titre de la page 
 include("../includes/haut.php");  // On inclut le haut
include("../includes/debut_menu.php"); 
include("../includes/menucote.php");  // Le menu
 include("../includes/fin_menu.php"); 

if (isset($_SESSION['pseudo'])) // Si on est connecter on peut se decconecter ,on inclut le fichier contenant l'information et la redirection logique :o
{

	vider_cookie();
session_destroy();

include ("../informations/decconecter_ok.php") ;
}

else // Si one st aps connecter on affiche une page d'erreur
{
	include ("../erreurs/deconnecter.php") ;
}
 include("../includes/bas.php");

Image utilisateur
 
Hors ligne Rouky # Posté le 16/01/2009 à 15:24:08
Avatar

nan mais la fonction vider_cookie(); est définie dans config php, donc il faut l'appeller
Hors ligne mister-cereal # Posté le 16/01/2009 à 15:28:48
Avatar

Ne fesant pas exactement pareil je n'ai pas cette page sur mon site que faut il que je mette sur mon script pour definir la fonction ?

Image utilisateur
 
Hors ligne tibob123 # Posté le 16/01/2009 à 23:25:16
Fan d'Emma Watson =D
Avatar

Citation : Rouky
Salut, lève les commentaires, qui commence par deux tirets (-- ceci est un commentaire SQL)


Voilà, j'ai mis cela

Citation : Pas de titre
CREATE TABLE `connectes` (
`connectes_id` int(11) NOT NULL, id du membre connecté, vaut -1 si le membre est un invité.
`connectes_ip` varchar(16) NOT NULL, l'ip du connecté, fera appel à une fonction getIp().
`connectes_membre` varchar(16) NOT NULL, est-ce que le connecté est un membre ? Vaut 1 si oui, vaut l'adresse ip du connecté sinon.
`connectes_actualisation` int(11) NOT NULL, dernière actualisation
UNIQUE KEY `membre_id` (`connectes_id`,`connectes_membre`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
*/


Cela ne fonctionne pas plus j'ai encore l'erreur de syntaxe
Hors ligne Rouky # Posté le 17/01/2009 à 05:14:54
Avatar

Les commentaires c'est tout ce qui il y après les deux tirets
Code : SQL
1
2
3
4
5
6
7
CREATE TABLE `connectes` (
`connectes_id` int(11) NOT NULL,
`connectes_ip` varchar(16) NOT NULL,
`connectes_membre` varchar(16) NOT NULL,
`connectes_actualisation` int(11) NOT NULL,
UNIQUE KEY `membre_id` (`connectes_id`,`connectes_membre`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Peut-être que tu devrais revoir les bases dans le cour de M@t :)
Faut pas pousser mémé dans les orties quand même :-°
Hors ligne Antoine974 # Posté le 17/01/2009 à 20:05:00
Avatar

études : IUT A Lyon 1

Bonjour a tous,

je suis assez interesse par ce tuto
Un grand merci aux redacteurs.

J'aimerais savoir si une mise a jours ( importante cad nouvaux chapitres ... ) est prevu sous peu ( dans le mois ... )?

Merci bien
 

Retour au forum "PHP" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx