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  ...  22  23  24  25  26  27  28  ...  30  31  32  33  Suivante
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page Précédente  1  2  3  ...  22  23  24  25  26  27  28  ...  30  31  32  33  Suivante
Hors ligne tennis500 # Posté le 25/02/2009 à 18:09:30
http://rsclonfire.e4y.org

Reprise du dernier message de la page précédente :
Bonjour a tous,
j'ai un problème quelque part, je vais vous montrer mes pages:

index.php


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
<?php
session_start();
header('Content-type: text/html; charset=utf-8');
include('includes/config.php');

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

include('includes/fonctions.php');
connexionbdd();
actualiser_session();

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

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

$titre = 'Inscription';

include('includes/haut.php'); //contient le doctype, et head.

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

La suite est du code Xhtml


voici l'erreur affichée:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/rsclonfire.open-web.fr/www/includes/config.php:11) in /var/www/rsclonfire.open-web.fr/www/includes/fonctions.php on line 317


les pages incluses:



config.php
Code : PHP
1
2
3
4
<?php define(ROOTPATH, 'http://'.$_SERVER['HTTP_HOST'], true);
define(TITRESITE, 'Mon site de test', true);
$queries = 0;
?>


fonctions.php
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
<?php
/*
Neoterranos & LkY
Page fonctions.php

Contient quelques fonctions globales.

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

Liste des fonctions :
--------------------------
sqlquery($requete,$number)
connexionbdd()
actualiser_session()
vider_cookie()
--------------------------


Liste des informations/erreurs :
--------------------------
Mot de passe de session incorrect
Mot de passe de cookie incorrect
L'id de cookie est incorrect
--------------------------
*/

function sqlquery($requete, $number)
{
	$query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête
	queries();
	
	/*
	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 queries($num = 1)
{
	global $queries;
	$queries = $queries + intval($num);
}

function connexionbdd()
{
	//Définition des variables de connexion à la base de données
	$bd_nom_serveur='localhost';
	$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'");
}
?>
<?php
function actualiser_session()
{
	if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
	{
		//utilisation de la fonction sqlquery, on sait qu'on 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);
		
		//Si la requête a un résultat (c'est-à-dire 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.',
									'',
									'membres/connexion.php',
									3
									);
				require_once('../information.php');
				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);
				
				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.',
											'',
											'membres/connexion.php',
											3
											);
						require_once('../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.',
									'',
									'membres/connexion.php',
									3
									);
				require_once('../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);
	}
}
?>


et haut.php
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!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>


Voila, merci a vous si vous pouvez m'aider..
Édité le 27/02/2009 à 19:29:14 par tennis500

STANDARD CHAMPION
 
Hors ligne mady97 # Posté le 27/02/2009 à 21:20:47

oui g lu les cours mais g des erreurs dans mes scripte que je n'arrive pas a résoudre
Hors ligne artist ik # Posté le 04/03/2009 à 17:33:17

Je pense que tu n'es pas en utf-8, car il y a "Entête" à la place de "Entête" ; si tu utilise le notepad++, fait format>convertir en utf-8 (sans bom).
Ensuite, j'ai déjà eu ton problème, j'ai recommencé la page des fonctions et ça a marché.
Il faut aussi que tu remplisse correctement la fonction connexionbdd avec les bons identifiants etc...
Essaye-ça sinon mp ! ;)

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 tennis500 # Posté le 04/03/2009 à 20:37:42
http://rsclonfire.e4y.org

Salut ,

Pour le format, j'ai modifié..
Mes codes de connexion, j'ai modifié mais rien ne change..

STANDARD CHAMPION
 
Hors ligne mendoz # Posté le 05/03/2009 à 06:43:37

Bonjour

Je pense aussi que ca vient du format

En UTF-8 ca marchait bien en local mais dès que je le mettait sur le serveur, j'avais aussi les :
Warning: Cannot modify header information - headers already sent by


En fait j'ai remarqué que le code m'affichait à chaque début de page ces caractères :
Citation : Pas de titre



Si je converti en ANSI ca me l'affiche plus

J'ai donc converti toute mes pages en ANSI et tous les headers j'ai remplacé par
header('Content-type: text/html; charset=iso-8859-15');


Depuis plus aucun problème, ca marche

Alors c'est peut être un peu tirer par les cheveux mais bon...

En espérant avoir aidé
 
Hors ligne tennis500 # Posté le 06/03/2009 à 18:31:10
http://rsclonfire.e4y.org

Bonjour,
Je viens de remarquer un truc, quand je retire cette ligne ca fonctionne mais le probleme, c'est que la session n'est pas actualisée évidament:

Citation : Pas de titre
actualiser_session();


STANDARD CHAMPION
 
Hors ligne agranger36 # Posté le 06/03/2009 à 19:00:18
Mieu vaut avec que sans!!
Avatar

Ville : Châteauroux
Pays : France métropolitaine

Moi aussi j'avais cette erreur en haut de chaque page, mais après avoir cherché (des jours et des nuit XD) j'ai trouvé !!
En faite le soucis c'est que tu a fait (comme moi) du copier coller du code et qu'en faite lui il a mis des retour à la ligne avant l'appelle à PHP (<?php). Il faut donc que tu enlève TOUS les retours à ligne avant <?php .

J'espère t'avoir aider, Agranger36

bannière
 
Hors ligne Syn' # Posté le 08/03/2009 à 20:35:56
Avatar

Salut les Zéros :D
Alors voilà, j'ai commençais un espace membre en début d'après midi mais j'ai un problème. Je voudrais faire en sorte qu'il y est un menu plus bref pour les invités, et un autre menu plus complexe pour les membres. Seulement cela ne marche pas...
Voici mon code :

Code : Autre
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
<div id="menu">
<br />
<?php
 if(isset($_SESSION['login']))
        {
?>
<fieldset>
<legend>&nbsp;Espace membre&nbsp;</legend>
<li><a href="#">Mes liens</a></li>
<li><a href="#">Mes liens</a></li>
<li><a href="#">Mes liens</a></li>
<li><a href="#">Mes liens</a></li>
</fieldset>
<?php
        }                        
        else
        {
?>
<fieldset>
<legend>&nbsp;Espace membre&nbsp;</legend>
<li><a href="#">Mes liens</a></li>
<li><a href="#">Mes liens</a></li>
</fieldset>
<?php
        }
?>
</div>


J'espère que vous pourrez m'aider :)
Merci, à bientôt
Édité le 08/03/2009 à 20:47:57 par Syn'
Hors ligne LkY # Posté le 09/03/2009 à 14:43:40
Kubuntuuuuu...
Avatar

Salut ! :)
Tu as eu la bonne idée, maintenant, il faut que tu créé la variable $_SESSION['login'] lorsque tu te connecte.
Je te conseille de vérifier également que a variable contient bien ce qu'elle doit contenir, car on ne sais jamais ce qu'il peut se produire... ^^

Donc on se résume comme ceci
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
<?php
/* Validation du formulaire de connexion, on connecte le membre... */
$_SESSION['login'] = true;


/*Dans ton menu */
if(isset($_SESSION['login']) && $_SESSION['login']==true) //On peut résumer ceci par if($_SESSION['login']) qui va vérifier automatiquement si la variable existe et si elle vaut true (arrêter moi si je me trompe)
{
     //Ton menu pour les connectés
}

else { /* ... */ }



/* Déconnexion, on oublie pas ça... */
unset($_SESSION['login']);
?>


Donc voila, j'ai résumé ce à quoi tu avais déjà pensé ! ;)
Si tuas encore des questions n'hésite 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 Syn' # Posté le 09/03/2009 à 20:46:01
Avatar

Merci pour ta réponse, malheureusement ça ne marche pas.
Voici le code que j'avais mis avant ta réponse :
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// on vérifie toujours qu'il s'agit d'un membre qui est connecté  
if (!isset($_SESSION['login']))// S'il est MEMBRE
{
include ('menu-membre.php');
}

else // S'il est VISITEUR
{
include ('menu-visiteur.php');
}
?>


Et celui que tu m'a donné avec modification :
Code : Autre
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
/* Validation du formulaire de connexion, on connecte le membre... */
$_SESSION['login'] = true;


/*Dans ton menu */
if(isset($_SESSION['login']) && $_SESSION['login']==true) //On peut résumer ceci par if($_SESSION['login']) qui va vérifier automatiquement si la variable existe et si elle vaut true (arrêter moi si je me trompe)
{
include ('menu-membre.php');
}
else { include ('menu-visiteur.php'); }
/* Déconnexion, on oublie pas ça... */
unset($_SESSION['login']);
?>


Le menu ne change pas quand je me connecte ou que je me déconnecte :(
J'ai surement fais des erreurs dans mon espace membre pour que ça ne marche pas... Si je n'arrive vraiment pas à trouver la solution je pense que je recommencerais mon espace membre.
Hors ligne LkY # Posté le 09/03/2009 à 21:55:18
Kubuntuuuuu...
Avatar

Dans ton premier code, tu as un ! qui vérifie l'inverse de ton isset...

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 !!)
 
Connecté sachadu41 # Posté le 09/03/2009 à 22:32:09
Avatar

Déja, sur ton premier code, il faudrait que tu enlève le "!" avant isset... sinon les visiteurs voient le menu des connectés.
EDIT : Devancé par LkY ^^

Ensuite, il faudrait que tu nous montre la page de connexion, car malgrès l'erreur du dessus, quand tu te connectes, tu devrais voir le menu des visiteurs du coup... ce qui n'est pas le cas si j'ai compris, c'est qu'il doit y avoir une erreur au niveau du nom ou du remplissage de la session.
Édité le 09/03/2009 à 22:41:33 par sachadu41

Image utilisateur
 
Hors ligne prirawien # Posté le 14/03/2009 à 13:12:55
Coder est un plaisir

Bonjour,
Tout d'abord, bravo pour ce tutoriel. Cependant, depuis que je l'ai installé (donc avant une modification du code source de base) j'ai quelques fois des problèmes de connexion. C'est à dire que je me connecte, il me met le message "vous êtes bien connecté, blablabla" je suis redirigé vers index.php. Mon script personnel vérifie si il y a une session (si le joueur est connecté) et l'envoie vers index_joueur.php. Le problème est que de temps en temps, le script ne m'envoie pas vers index_joueur.php après la connexion, je reste sur index.php... Je ne suis pas connecté.

Connexion.php
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
<?php
// ARRAY ( [Autorisé aux connectés] , [Autorisé aux visiteurs] , [Titre de la page] , [Include du design] )
$auth = array (0,1,'Connexion',0);
require "lapagedesecurite";

if($_POST['validate'] != 'ok')
{
require "design.haut.php";
categorie ("Connexion");
?>		
			<p>Vous pouvez cocher l'option "Me connecter automatiquement à mon
			prochain passage", ce qui laisse une trace sur votre ordinateur, afin de vous connecter automatiquement.<br/>
			Ce système de trace est basé sur les cookies, ce sont des petits fichiers
			contenant votre numéro d'identification ainsi qu'une version cryptée de votre
			mot de passe. Ces fichiers ne peuvent en aucun cas endommager votre ordinateur,
			ni l'affecter d'aucune façon, vous pourrez les supprimer à tout moment dans
			les options de votre navigateur.</p>
			
			<form name="connexion" id="connexion" method="post" action="connexion.php">
				<fieldset><legend>Connexion</legend>
					<table border=0 width='100%'>
					<tr><td><label for="pseudo" class="float">Login :</label></td><td><input type="text" name="pseudo" id="pseudo" value="<?php if(isset($_SESSION['connexion_pseudo'])) echo $_SESSION['connexion_pseudo']; ?>"/></td></tr>
					<tr><td><label for="mdp" class="float">Mot de passe :</label></td><td><input type="password" name="mdp" id="mdp"/><input type="hidden" name="validate" id="validate" value="ok"/></td></tr>
					
					<tr><td colspan=2><input type="checkbox" name="cookie" id="cookie"/> <label for="cookie">Me connecter automatiquement à mon prochain passage</label></td></tr>
					<tr><td align=center><input type="submit" value="Connexion" /></td><td>&nbsp;</td></tr>
					</table>
				</fieldset>
			</form>
			<br>
			<?php categorie ("Options"); ?>
			<br>
			<form method='post' action='inscription.php'><input type='submit' value="Je ne suis pas insrit !" /></form>
			<?php //<form method='post' action='pass-perdu.php'><input type='submit' value="J'ai oublié mon mot de passe !" /></form> ?>
			<?php
}
			
			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']);
						
						vider_cookie();
						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);
						}
						
						$informations = Array(/*Vous êtes bien connecté*/
										false,
										'Connexion réussie',
										'Vous êtes désormais connecté avec le pseudo <span class="pseudo">'.htmlspecialchars($_SESSION['membre_pseudo'], ENT_QUOTES).'</span>.',
										'',
										ROOTPATH.'/index.php',
										3
										);
						sql_request("INSERT INTO log_connexions VALUES ('".$_SESSION['membre_id']."', '".$_SESSION['membre_pseudo']."', '".realip()."', '".time()."', '0')");
						$ip = realip();
						sql_request("DELETE FROM connectes WHERE connectes_id = '-1' AND connectes_ip = '$ip'");
						require_once('information.php');
						exit();
					}
					
					else
					{
						$_SESSION['connexion_pseudo'] = $_POST['pseudo'];
						$informations = Array(/*Erreur de mot de passe*/
										true,
										'Mauvais mot de passe',
										'Vous avez fourni un mot de passe incorrect.',
										' - <a href="'.ROOTPATH.'/index.php">Index</a>',
										ROOTPATH.'/connexion.php',
										3
										);
						require_once('information.php');
						exit();
					}
				}
				
				else if($result['nbr'] > 1)
				{
					$informations = Array(/*Erreur de pseudo doublon (normalement impossible)*/
									true,
									'Doublon',
									'Deux membres ou plus ont le même pseudo, contactez un administrateur pour régler le problème.',
									' - <a href="'.ROOTPATH.'/index.php">Index</a>',
									ROOTPATH.'/contact.php',
									3
									);
					require_once('information.php');
					exit();
				}
				
				else
				{
					$informations = Array(/*Pseudo inconnu*/
									true,
									'Pseudo inconnu',
									'Le pseudo <span class="pseudo">'.htmlspecialchars($_POST['pseudo'], ENT_QUOTES).'</span> n\'existe pas dans notre base de données. Vous avez probablement fait une erreur.',
									' - <a href="'.ROOTPATH.'/index.php">Index</a>',
									ROOTPATH.'/connexion.php',
									5
									);
					require_once('information.php');
					exit();
				}
			}
			?>			
		</div>

		<?php
		require "design.bas.php";
		?>


Le début de la page de vérification, qui gère ces redirections.
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
<?php
// Script exécution de la page
$execution_debut = microtime(true);

if (!$ajax_ressources){ $ajax_ressources = 0; }
// Script vérif connecté
session_start();
header('Content-type: text/html; charset=utf-8');
require "auth.config.php";

// SESSION
require "auth.fonctions.php";
connexionbdd();
actualiser_session();
if (isset($_SESSION['membre_id'])){ $connected = 1; } else { $connected = 0; }
// Fin script vérif connecté

if (!isset($auth)){ $auth_co = 1; $auth_visiteur = 0; } else {
$auth_co = $auth[0]; // autorisé aux connectés ?
$auth_visiteur = $auth[1]; } // autorisé aux visiteurs ?
if (!$connected AND !$auth_visiteur){ header ("Location: index.php?erreur=1"); } // Si pas connecté, et page interdite aux visiteurs, on jarte
if ($connected AND !$auth_co){ header ("Location: index_joueur.php");  } // Si connecté et page interdite aux connectés, on jarte
?>


Merci à vous d'avance !

PS: j'ai aussi trouvé un problème que j'ai corrigé :
Dans la page des fonctions, il y a le code :
Code : PHP
1
2
3
4
<?php
	if(isset($_SESSION['membre_id']) && intval($_SESSION['membre_id']) != 0) //Vérification id
	{
?>

Mais si on choisit d'attribuer un ID personnalisé (dans mon cas, un SHA256) si l'ID commence par une lettre ça ne fonctionne pas. J'ai donc remplacé par ça :
Code : PHP
1
2
3
4
<?php
	if(isset($_SESSION['membre_id']) &&  mysql_real_escape_string($_SESSION['membre_id']) != '') //Vérification id
	{
?>

J'ai fini ;)

Les sites de Prirawien :
Le Monde de Gatem : un recueil d'histoires fantastiques !
Image utilisateur
Image utilisateur
Orchestrale Banlieue : Orchestre d'harmonie de la ville de Drancy (93)

Tous les sites créés par Prirawien !
 
Hors ligne LkY # Posté le 16/03/2009 à 13:37:45
Kubuntuuuuu...
Avatar

Salut,
Je ne vois pas trop pourquoi ça ne fonctionne pas, une simple vérification de l'existence des variable de session devrait faire l'affaire...

Pour ce qui est de ceci :
Citation : prirawien
Mais si on choisit d'attribuer un ID personnalisé (dans mon cas, un SHA256) si l'ID commence par une lettre ça ne fonctionne pas.

Je ne vais pas dire que cet idiot (car ça serait pas très sympa :p ) mais un ID ne commence jamais poas uen lettre, c'est toujours un chiffre, point barre. Sinon tu peux appeler ça une référence, mais un ID est toujours chiffré. ;)

Voila, a+

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 !!)
 
Connecté sachadu41 # Posté le 16/03/2009 à 20:35:47
Avatar

Bonsoir, je relance le sujet, mais je n'ai toujours pas trouvé la solution à ce problème...

Comment faire en sorte d'être connecté directement en arrivant sur l'espace membre (si on a cliqué sur "se connecter automatiquement"), au lieu de devoir cliquer sur "connexion" ? (Pour que le message d'erreur nous indique que l'on est déjà connecté, et seulement là, on est connecté).

Merci d'avance !

Image utilisateur
 
Hors ligne prirawien # Posté le 19/03/2009 à 13:49:32
Coder est un plaisir

Moui, je me suis mal exprimé, c'est plus une correction qu'un problème, car dans mon site les ID sont crypté pour être uniques, et commencent aussi bien par une lettre qu'un chiffre ;)

Les sites de Prirawien :
Le Monde de Gatem : un recueil d'histoires fantastiques !
Image utilisateur
Image utilisateur
Orchestrale Banlieue : Orchestre d'harmonie de la ville de Drancy (93)

Tous les sites créés par Prirawien !
 
Hors ligne julien134 # Posté le 21/03/2009 à 11:45:09

Bonjour, tout d'abord je tient à préciser que ce tuto est vraiment pratique, dommage qu'il ne soit pas fini pour le moment ...
D'ailleurs, je voudrai savoir si l'utilisateur qui l'a crée est toujours actif ? Parce que sa m'inquiéte un peut de voir que nous sommes actuellement dans la plus longue période sans avancée du tuto (presque 3 mois)

Image utilisateur
 
Hors ligne JP2 # Posté le 22/03/2009 à 11:38:08
Rien ne vaux un bon vieux fps
Avatar

Citation : Neoterranos
Normalement je devrais l'avoir fait avant le 2 mars hein ! :p
Sauf modification de mon emploi du temps ! :)


Sans vouloir vous vexer, on est le 22 mars et c'est vrai que c'est dommage d'attendre aussi longtemps... :( En plus le premier message ne nous indique plus rien puisqu'il n'est même pas édité par rapport à l'ancienne mise à jour du tutoriel...
Je suis désolé si je suis "méchant" avec vous mais c'est vrai que ce tutoriel est un des plus recherché sur le web. Quand on cherche on ne trouve pas un tutoriel qui arrive à la cheville de celui-ci ;)
 
Hors ligne LkY # Posté le 24/03/2009 à 20:06:37
Kubuntuuuuu...
Avatar

Salut les gens,

Effectivement, il n'y a pas eu de mise à jour depuis longtemps.
Comprenez nous, neoterranos et moi même sommes étudiants (lycéen pour ma part).

Je manque cruellement de temps, et la rédaction d'un chapitre n'est pas une affaire facile.

Je vous pris donc de nous excusez tous les deux pour le retard que prend ce tutoriel, mais une chose est sûr, ce tuto avancera beaucoup pendant l'été ! ;)

J'espère que vous me comprenez.

A +

LkY

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 JP2 # Posté le 25/03/2009 à 16:03:42
Rien ne vaux un bon vieux fps
Avatar

Personnellement, je comprends. Je voudrais juste une chose : le premier post devrait être édité pour qu'on sache où s'en est...
 
Hors ligne trobert94 # Posté le 26/03/2009 à 20:42:23
Avatar
Flux RSS

Pour tous ceux qui ont des erreurs du type : "headers already sent by", c'est parce que os pages sont en UTF-8.
L'UTF-8 est un format de fichier qui envoie des informations des son chargement, c'est pourquoi les fonctions type header(), on encore session_start() renvoient des erreurs.
Pour palier à ce problème, il existe un format nommé "UTF-8 sans BOM" (il mesemble que c'est de l'UTF-8 encodé en ANSI), qui n'envoie pas ces infos.
Hors ligne haroal # Posté le 28/03/2009 à 13:17:05
Avatar

Ville : Begles
Pays : France métropolitaine

Bonjour. Voila mon problème est que mon script connectes.php n'affiche pas les invités ! (Pourtant c'est le même que celui du tuto :-° ) Je vous le met quand même au cas où :
connectes.php
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
<?php
/*
Page connectes.php

Affiche une liste complète des membres connectes.

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

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


Liste des informations / erreurs :
--------------------------
Aucune information / erreur
--------------------------
*/

/********En-tête et titre de page*********/

$titre = 'Liste des connectés';

include('includes/haut.php'); //contient le doctype, et head.

/**********Fin en-tête et titre***********/
?>
                <div id="colonne_gauche">
                <?php
                include('includes/colg.php');
                ?>
                </div>
                
                <div id="contenu">
                        <div id="map">
                                <a href="indexut.php">Accueil</a> => <a href="stats.php?see=connectes&a=<?php if(isset($_GET['a'])){echo intval($_GET['a']);} ?>">Liste des connectés</a>//Et à j'ai dû changer le index.php en indexut.php car sinon Wamp le mettait en page d'accueil.
                        </div>
                        
                        <h1>Liste des connectés</h1>
                <?php
                if(isset($_GET['a']))//J'ai dû rajouter des lignes comme celle-là (isset)car sinon il m'affichait des "Undefined variable".
                {
                if($_GET['a'] == 1)
                {
                        $id = '';
                }
                else if($_GET['a'] == 2)
                {
                        $id = ' AND connectes_id = -1';
                }
                }
                else
                {
                        $id = ' AND connectes_id <> -1';
                }
                
                if(isset($id))
                {
                $membre_query = sqlquery("SELECT membre_id, membre_pseudo, connectes_actualisation FROM connectes LEFT JOIN membres ON membre_id = connectes_id WHERE connectes_actualisation > ".(time()-300).$id." ORDER BY connectes_actualisation DESC", 2);
                }
                ?>
                
 <!--menu//-->
                        <div class="center">
                            <?php
                                if(isset($_GET['a']))
                                {
                                if($_GET['a'] == 1 || $_GET['a'] == 2)
                                {
                                    echo '<a href="stats.php?see=connectes">Voir seulement les membres connectés</a>';
                                    $avt = 1;
                                        
                                if($_GET['a'] != 2)
                                {
                                    if(isset($avt))
                                    {
                                    if($avt == 1) echo ' - ';
                                    echo '<a href="stats.php?see=connectes&a=2">Voir seulement les invités connectés</a>';
                                    $avt = 1;
                                    }
                                }
                                        
                                if($_GET['a'] != 1)
                                {
                                                if($avt == 1) echo ' - ';
                                                echo '<a href="stats.php?see=connectes&a=1">Voir les membres et les invités connectés</a>';
                                }
                                }
                                }
                                ?>
                        </div>
<!--tableau//-->
                        <table>
                                <thead>
                                        <th>N° du membre</th>
                                        <th>Pseudonyme</th>
                                        <th>Dernière connexion</th>
                                </thead>
                                
                                <tfoot>
                                        <th>N° du membre</th>
                                        <th>Pseudonyme</th>
                                        <th>Dernière connexion</th>
                                </tfoot>
                                
                                <tbody>
                <?php
                    $i = 0;
                    while(isset($membre_query[$i]))
                    {
                        if($membre_query[$i] ['membre_id'] != '')
                        {
                            $lien = '<a href="membres/user.php?id='.$membre_query[$i]['membre_id'].'">';
                            $lien2 = '</a>';
                        }
                
                        else
                        {
                            $lien = '';
                            $lien2 = '';
                        }
                
                        if($membre_query[$i]['connectes_id'] == '-1') //un invité n'a pas de lien, ni d'id.
                        {
                            $membre_query[$i]['membre_id'] = 'Non renseigné'; //
                            $membre_query[$i]['membre_pseudo'] = 'Invité';
                        }
        
                    echo '<tr class="ligne_'.($i%2).'">
                    <td>'.$membre_query[$i]['membre_id'].'</td>
                    <td>'.$lien.htmlspecialchars($membre_query[$i]['membre_pseudo'], ENT_QUOTES).$lien2.'</td>
                    <td>'.mepd($membre_query[$i]['connectes_actualisation']).'</td>
                    </tr>
                
                    ';
                    $i++;
        }
        
                if($i == 0) echo '<tr><td colspan="3">Pas de membre trouvé.</td></tr>';
                ?>
                                </tbody>
                        </table>
                </div>
Merci d'avance pour vos reponses.
Édité le 28/03/2009 à 13:19:25 par haroal
Hors ligne LkY # Posté le 31/03/2009 à 15:57:01
Kubuntuuuuu...
Avatar

Citation : JP2
Personnellement, je comprends. Je voudrais juste une chose : le premier post devrait être édité pour qu'on sache où s'en est...

Il faudrait que neoterranos s'en charge, mais je crois qu'il manque encore plus de temps que moi..
Je le contacterai pour voir ce qu'il peut faire ! ;)

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 JP2 # Posté le 05/04/2009 à 22:09:13
Rien ne vaux un bon vieux fps
Avatar

Tu ne peux pas nous mettre ton avis sur l'état actuel du tuto ?
 
Hors ligne LkY # Posté le 06/04/2009 à 19:24:09
Kubuntuuuuu...
Avatar

Qu'entends-tu par "état actuel" ?
J'ai peur de ne pas comprendre.

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 JP2 # Posté le 22/04/2009 à 03:42:56
Rien ne vaux un bon vieux fps
Avatar

Non, non, ^^, pas dans ce sens. Désolé, je me suis mal exprimé, je voulais parler de l'avancement du tutoriel.
 
Hors ligne LkY # Posté le 22/04/2009 à 10:03:46
Kubuntuuuuu...
Avatar

Huuum ! ^^
He bien neoterranos et moi n'avons pas encore le temps de faire de nouveau chapitre pour le moment. Donc je pense que le tutoriel avancera pendant les vacances d'été. Pas avant ! :(

Mais bon, un joli dicton dit : "Tout vient à point à qui sait attendre" ! :D
Patience,on le finira un jour ce tutoriel (et encore, avec vos connaissance vous avez tout ce qu'il faut pour le finir ! :p )

Je reste disponible pour essayer de répondre aux questions.

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 x-elio789 # Posté le 28/04/2009 à 15:18:12

slt, c'est vraiment dommage de débuter un tutoriel pour le finir longtemps après...ça gâche "vraiment beaucoup" l'apprentissage.
Il serait plus préférable que seuls les tutos "complets" soient validés.
Hors ligne LkY # Posté le 28/04/2009 à 22:37:12
Kubuntuuuuu...
Avatar

Vous n'êtes vraiment jamais content.
Ce tutoriel donne tout ce qu'il faut pour faire un système ultra complet car vous savez comment vous connecter, et comment protéger une page.
Après, pour ce qui est des droits, un simple chiffre et une vérification font l'affaire, mais cela fera quand même l'objet d'un chapitre, pour prendre le temps de tout voir en douceur....

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 cedric0508 # Posté le 28/04/2009 à 23:30:06

Bonsoir à tous,
J'ai essayer de faire ce tutoriel, mais j'ai différente erreur. serait-il possible de récupérer les fichiers de cet espace membre directement.
D'avance merci
Hors ligne LkY # Posté le 29/04/2009 à 09:05:42
Kubuntuuuuu...
Avatar

Non, non et on !
Les fichiers, on les donne sous forme de code dans le tutoriel.

Si tu as des problèmes, soi ton hébergeur/serveur local a des problèmes de configuration, soit tu n'a pas bien lu le tuto, tout y est expliqué en son intégralité.

Les erreurs, tu peux nous les expose, on pourra surement t'aider. :)

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 !!)
 

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

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