Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > [TUTO] Espace membre > Lecture du sujet

[TUTO] Espace membre

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  10  11  12  13  14  15  16  ...  19  20  21  22  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  10  11  12  13  14  15  16  ...  19  20  21  22  Suivante
Hors ligne Ankop # Posté le 16/11/2008 à 01:47:18
Naruto-man
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Bonjour,

j'aime bien ce tutoriel. Oui. Il est écrit simplement (pour moi) et il n'est surtout pas dur è comprendre. Il seras utile pour les zér0s en aillant besoin. Bon, je vais continuer ma lecture :p .

++
Ankop
 
Hors ligne Savageman # Posté le 16/11/2008 à 07:04:05
Insa : If inside
Avatar
Groupe : Membres
Citation : tintinv76
Je crois que c'est parce-que vous êtes en UTF-8 (moi aussi j'ai ce problème mais je ne sais pas comment le résoudre ! )

Cordialement, Quentin


En fait, c'est presque ça. La bonne réponse est : c'est parce qu'ils ne sont PAS en UTF-8. ;)
 
Hors ligne sachadu41 # Posté le 16/11/2008 à 09:51:08
Groupe : Membres
Bah pourtant je n'ai rien changé par rapport à d'habitude...
Ca vient de notepad++ ?

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne tintinv76 # Posté le 16/11/2008 à 22:31:30
Avatar
Groupe : Membres
ok, bah portant, avant je n'était pas en UTF-8et je n'avais pas problème ... mais il n'y avait pas un code a mettre pour les accents ?


:waw: :waw: :-° :-° :p :p ^^ ^^ j'adore cet émoticon ^^ ^^ :p :p :-° :-° :waw: :waw:

PHP->Moyen
HTML/CSS->pas mal
C/C++->Débutant
 
Hors ligne lucas6585 # Posté le 16/11/2008 à 22:37:53
Zero et fier de l'être
Avatar
Groupe : Membres
oui è é

Soferi Evolution.
Fais - Pas Fais
| | | | | | | | | | | | | | | | | | | | 10%sur 100
Lucas
 
Hors ligne Neoterranos # Posté le 17/11/2008 à 15:30:49
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Premièrement :

Pour les problèmes de caractères spéciaux, vérifiez que :
- Notepad++ indique en bas à droite que vos fichiers sont en ANSI as UTF8 ou en UTF8 (mais faites gaffe au Byte Order Mark !!)
- Dans vos fichiers, il y a bien la ligne <?php header('Content-type: text/html; charset=utf-8'); ?> au début de celui-ci.
- Quand vous ouvrez le site (en local ou sur le net) avec firefox, allez dans affichage, format, et vérifiez qu'il est bien sur utf8, sinon, il y a un problème avec l'encodage défini par le fichier. Pour les autres navigateurs, opération similaire.
- Si vous avez toujours des soucis, trouvez un hébergeur gratuit, uploadez votre site, que je puisse aller voir !

PS : Je vous ai mis des screens en miniature dans le tuto pour vous expliquer comment encoder en UTF-8 (sans BOM).

Deuxièmement, le captcha :
Si vous changez le nom de la police, même pour une police courante comme arial, celle-ci doit être impérativement dans le dossier polices.
Si la police ciblée est dans le dossier polices et que ça ne marche pas, copiez la correction, virez le baveuse3d dans l'array des polices et mettez le nom de votre police sans le .ttf, ça devrait marcher.

$aupifcolor est bien définie dans le code captcha.php.
Édité le 17/11/2008 à 15:32:52 par Neoterranos

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne tintindelacite # Posté le 17/11/2008 à 16:32:54
Groupe : Membres
Salut félicitation pour le tuto, très clair ce pendant j'ai une erreur, que je ne comprend pas en local, dans le fichier config.php alors que j'ai juste adapté le chemin de mon dossier, je suis sous Easyphp 1.8.0.1, et php version 4.3.10
<erreur></erreur>
Notice: Use of undefined constant ROOTPATH - assumed 'ROOTPATH' in c:\program files\easyphp1-8\www\test\includes\config.php on line 13

Notice: Use of undefined constant TITRESITE - assumed 'TITRESITE' in c:\program files\easyphp1-8\www\test\includes\config.php on line 14

Code : PHP
1
2
3
define(ROOTPATH, 'http://'.$_SERVER['HTTP_HOST'].'/test/', true);
define(TITRESITE, 'test', true);
$queries = 0;
Hors ligne harmonyk # Posté le 17/11/2008 à 18:11:06
Groupe : Membres
Bonjour !!
Excellent tuto !! vivement la suite :)
J'ai testé la fonction stripos, mais ca me renvoit une erreur :
stripos() [function.stripos]: needle is not a string or an integer
le site tourne sous PHP Version 5.2.1, je n'arrive vraiment pas à corriger l'erreur...
la ligne concernée est :
Code : PHP
1
if(stripos(mysql_error(), $_SESSION['form_mail']) !== FALSE) //recherche du mail

merci pour de futures réponses, et continuez ainsi ;)
Hors ligne Neoterranos # Posté le 18/11/2008 à 20:11:11
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : harmonyk
Bonjour !!
Excellent tuto !! vivement la suite :)
J'ai testé la fonction stripos, mais ca me renvoit une erreur :
stripos() [function.stripos]: needle is not a string or an integer
le site tourne sous PHP Version 5.2.1, je n'arrive vraiment pas à corriger l'erreur...
la ligne concernée est :
Code : PHP
1
if(stripos(mysql_error(), $_SESSION['form_mail']) !== FALSE) //recherche du mail

merci pour de futures réponses, et continuez ainsi ;)

Fais exit(mysql_error()) pour voir à quoi tu as affaire.

Pour les constantes, essaie de retirer l'argument true à la fin de la constante.
Mais normalement, define marche sur PHP 4...
Sinon, vérifie que l'include se fait correctement, en mettant un exit('test'); dans config.php.

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne tintinv76 # Posté le 18/11/2008 à 21:54:47
Avatar
Groupe : Membres
Merci pour ta réponse LkY, c'était juste l'affichage qui n'était pas en UTF-8 :waw: :magicien: !

Merci :zorro:


:waw: :waw: :-° :-° :p :p ^^ ^^ j'adore cet émoticon ^^ ^^ :p :p :-° :-° :waw: :waw:

PHP->Moyen
HTML/CSS->pas mal
C/C++->Débutant
 
Hors ligne sachadu41 # Posté le 18/11/2008 à 22:58:18
Groupe : Membres
Bonsoir !
J'ai refait le tuto, cette fois-ci en UTF-8, et j'ai maintenant d'autres problèmes.
Tout d'abord, il y a un problème avec la fonction qui envoie un email (dans fonctions.php), ça me met une erreur à propos d'un } qui n'est pas respecté.
Voici mon code 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
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
<?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
	
	/*
	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='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'");
}

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.',
									'',
									'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);
				$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.',
											'',
											'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);
	}
}
?>
<?php
function checkpseudo($pseudo)
{
	if($pseudo == '') return 'empty';
	else if(strlen($pseudo) < 3) return 'tooshort';
	else if(strlen($pseudo) > 32) return 'toolong';
	
	else
	{
		$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE membre_pseudo = '".mysql_real_escape_string($pseudo)."'", 1);
		global $queries;
		$queries++;
		
		if($result['nbr'] > 0) return 'exists';
		else return 'ok';
	}
}
?>
<?php
function checkmdp($mdp)
{
	if($mdp == '') return 'empty';
	else if(strlen($mdp) < 4) return 'tooshort';
	else if(strlen($mdp) > 50) return 'toolong';
	
	else
	{
		if(!preg_match('#[0-9]{1,}#', $mdp)) return 'nofigure';
		else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';
		else return 'ok';
	}
}
?>
<?php
function checkmdpS($mdp, $mdp2)
{
	if($mdp != $mdp2 && $mdp != '' && $mdp2 != '') return 'different';
	else return checkmdp($mdp);
}
?>
<?php
function checkmail($email)
{
	if($email == '') return 'empty';
	else if(!preg_match('#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#is', $email)) return 'isnt';
	
	else
	{
		$result = sqlquery("SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail = '".mysql_real_escape_string($email)."'", 1);
		global $queries;
		$queries++;
		
		if($result['nbr'] > 0) return 'exists';
		else return 'ok';
	}
}
?>
<?php
function checkmailS($email, $email2)
{
	if($email != $email2 && $email != '' && $email2 != '') return 'different';
	else return 'equals';
}
?>
<?php
function birthdate($date)
{
	if($date == '') return 'empty';

	else if(substr_count($date, '/') != 2) return 'format';
	else
	{
		$DATE = explode('/', $date);
		if(date('Y') - $DATE[2] <= 4) return 'tooyoung';
		else if(date('Y') - $DATE[2] >= 135) return 'tooold';
		
		else if($DATE[2]%4 == 0)
		{
			$maxdays = Array('31', '29', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');
			if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
			else return 'ok';
		}
		
		else
		{
			$maxdays = Array('31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');
			if($DATE[0] > $maxdays[$DATE[1]-1]) return 'invalid';
			else return 'ok';
		}
	}
}
?>
<?php
function vidersession()
{
	foreach($_SESSION as $cle => $element)
	{
		unset($_SESSION[$cle]);
	}
}
?>
<?php
function inscription_mail($mail, $pseudo, $passe)
{
	$to = $mail;
	$subject = 'Inscription sur '.TITRESITE.' - '.$pseudo;
}
?>
<?php
	$message = '<html>
					<head>
						<title></title>
					</head>
					
					<body>
						<div>Bienvenue sur '.TITRESITE.' !<br/>
						Vous avez complété une inscription avec le pseudo
						'.htmlspecialchars($pseudo, ENT_QUOTES).' à l\'instant.<br/>
						Votre mot de passe est : '.htmlspecialchars($passe, ENT_QUOTES).'.<br/>
						Veillez à le garder secret et à ne pas l\'oublier.<br/><br/>
						
						En vous remerciant.<br/><br/>
						Moi - Wembaster de '.TITRESITE.'
					</body>
				</html>';
?>
<?php
//headers principaux.
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
//headers supplémentaires
$headers .= 'From: "Mon super site" <contact@supersite.com>' . "\r\n";
?>
<?php
$mail = mail($to, $subject, $message, $headers); //marche

if($mail) return true;
return false;
}
?>


Ensuite, il y a un problème au niveau des sessions qui est présent su toutes les pages. Voici le code d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 23

Et pour finir, le captcha ne marche toujours pas.

Voila ^^
Donc je pense avoir compris ce qu'il fallait faire durant le tuto, mais il se peut que je me sois trompé ^^
Si vous voulez voir une des pages, dites le moi et je la mettrai.
Dernier truc : Vous pouvez voir le problème directement sur place, pour cela, c'est ici : http://tloa.free.fr/membre

Merci d'avance !
Édité le 18/11/2008 à 22:59:28 par sachadu41

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne tintindelacite # Posté le 19/11/2008 à 15:58:18
Groupe : Membres
Slt, merci de te pencher sur mon souci Neoterranos, j'ai fait ce que tu m'a dit retirer true et exit('test); apparemment l'include passe puisque:
Code : PHP
1
exit('test');

m'affiche test (la pour le coup je suis pas sur....).
mai j'ai toujours
Notice: Use of undefined constant ROOTPATH - assumed 'ROOTPATH' in c:\program files\easyphp1-8\www\test\includes\config.php on line 13

Notice: Use of undefined constant TITRESITE - assumed 'TITRESITE' in c:\program files\easyphp1-8\www\test\includes\config.php on line 14
test
Cordialement
andré
Ps; peut être devrais je ouvrir un post ou la c'est bien?
Hors ligne ZebulogaZ # Posté le 19/11/2008 à 17:51:03
♥ Humm un donut's ♥
Avatar
Groupe : Membres
Citation : tintindelacite
Slt, merci de te pencher sur mon souci Neoterranos, j'ai fait ce que tu m'a dit retirer true et exit('test); apparemment l'include passe puisque:
Code : PHP
1
exit('test');

m'affiche test (la pour le coup je suis pas sur....).
mai j'ai toujours
Notice: Use of undefined constant ROOTPATH - assumed 'ROOTPATH' in c:\program files\easyphp1-8\www\test\includes\config.php on line 13

Notice: Use of undefined constant TITRESITE - assumed 'TITRESITE' in c:\program files\easyphp1-8\www\test\includes\config.php on line 14
test
Cordialement
andré
Ps; peut être devrais je ouvrir un post ou la c'est bien?

Ton site en local est bien dans le dossier test ? Tu as du surment de tromper dans les noms de dossiers :)

Venez tester la securité de mon forum(Créer grace au tuto par ici :-° ) Si vous trouvez une faille pourriez vous me l'indiquez ici afin que je puisse la corriger !

ℓє ℓιєη ∂є мση ƒσяυм α ℓ'αттαqΰ℮ :) :pirate:
iphone;ipod touch user;apple;tactile

 
Hors ligne harmonyk # Posté le 19/11/2008 à 23:02:46
Groupe : Membres
Citation : Neoterranos
Fais exit(mysql_error()) pour voir à quoi tu as affaire.

Pour les constantes, essaie de retirer l'argument true à la fin de la constante.
Mais normalement, define marche sur PHP 4...
Sinon, vérifie que l'include se fait correctement, en mettant un exit('test'); dans config.php.


Tout d'abord merci de ta réponse ;)

*Pour voir ce à quoi j'ai affaire ? Bah ca me renvoi tout simplement la meme erreur, stripos() [function.stripos]: needle is not a string or an integer à la ligne if(stripos(mysql_error(), $_SESSION['form_mail']) !== FALSE) //recherche du mail...

*J'ai essayé en enlevant true de chaque constante, rien ne change...

*L'include fonctionne très bien, mon site est entièrement opérationnel, si ce n'est que le système d'inscription :(

Le plus bizarre dans tout ca, c'est que le meme stripos sur $_SESSION['form_pseudo'] fonctionne...
Une idée ?

Citation : sachadu41
il y a un problème avec la fonction qui envoie un email (dans fonctions.php), ça me met une erreur à propos d'un } qui n'est pas respecté.


Tu as oublié un "{" :
Code : PHP
1
2
3
4
if ($mail) return true;
{
	return false;
}


Citation : sachadu41

Ensuite, il y a un problème au niveau des sessions qui est présent su toutes les pages. Voici le code d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22


Ré-encode ton index.php en utf-8 (sans BOM)...
Pour ton captcha, tu dois créer un dossier "polices" dans le dossier "membres" et y mettre tes polices.ttf dedans...'faut lire en entier le tuto =)
Édité le 20/11/2008 à 19:11:03 par harmonyk
Hors ligne Neoterranos # Posté le 20/11/2008 à 20:40:27
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : sachadu41
Bonsoir !
J'ai refait le tuto, cette fois-ci en UTF-8, et j'ai maintenant d'autres problèmes.
Tout d'abord, il y a un problème avec la fonction qui envoie un email (dans fonctions.php), ça me met une erreur à propos d'un } qui n'est pas respecté.
Voici mon code 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
<?php
function inscription_mail($mail, $pseudo, $passe)
{
	$to = $mail;
	$subject = 'Inscription sur '.TITRESITE.' - '.$pseudo;
}
?>
<?php
	$message = '<html>
					<head>
						<title></title>
					</head>
					
					<body>
						<div>Bienvenue sur '.TITRESITE.' !<br/>
						Vous avez complété une inscription avec le pseudo
						'.htmlspecialchars($pseudo, ENT_QUOTES).' à l\'instant.<br/>
						Votre mot de passe est : '.htmlspecialchars($passe, ENT_QUOTES).'.<br/>
						Veillez à le garder secret et à ne pas l\'oublier.<br/><br/>
						
						En vous remerciant.<br/><br/>
						Moi - Wembaster de '.TITRESITE.'
					</body>
				</html>';
?>
<?php
//headers principaux.
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
//headers supplémentaires
$headers .= 'From: "Mon super site" <contact@supersite.com>' . "\r\n";
?>
<?php
$mail = mail($to, $subject, $message, $headers); //marche

if($mail) return true;
return false;
}
?>

Il y a une erreur (de ma part ?).
Tu as fermé une accolade que tu n'aurais pas dû fermer.

Citation : sachadu41
Ensuite, il y a un problème au niveau des sessions qui est présent su toutes les pages. Voici le code d'erreur :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 23

Dans notepad++, convertis tous tes fichiers en UTF-8 (SANS BOM).

Citation : sachadu41
Et pour finir, le captcha ne marche toujours pas.

Vérifie que les liens sont bons, que tu es bien dans le bon dossier pour les polices etc...
C'est plus compliqué à vérifier niveau GD, mais faisable.

Citation : sachadu41
Voila ^^
Donc je pense avoir compris ce qu'il fallait faire durant le tuto, mais il se peut que je me sois trompé ^^
Si vous voulez voir une des pages, dites le moi et je la mettrai.
Dernier truc : Vous pouvez voir le problème directement sur place, pour cela, c'est ici : http://tloa.free.fr/membre

Merci d'avance !

Tiens-moi informé.

@ harmonyk : Fais des test sur strpos et stripos dans un fichier de test, vois d'où cela peut venir et tiens-moi informé. :)

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne harmonyk # Posté le 20/11/2008 à 22:07:23
Groupe : Membres
Hum, je pense plutot que je vais utiliser un systeme d'inscription que je comprend pour le moment ^^'
En espérant que quelqu'un rencontre le meme soucis que moi et le résolve :)
PS: cool le "ca coule de source" !!! chaud le lvl 5 ;)
Hors ligne sachadu41 # Posté le 21/11/2008 à 07:44:29
Groupe : Membres
Merci de ta réponse.
Voici les codes d'erreur qui apparaissent en haut de page maintenant :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Je ne peux pas convertir les fichiers en UTF-8 puisqu'ils le sont déja.
Pour le captcha, j'ai pris la correction. J'ai donc captcha.php dans le dossier "membres" (dossier à la racine du dossir test) et la police baveuse3d dans le dossier "polices" (ne sachant pas où il faut le mettre, je l'ai mis dans le dossier membres et à la racine du dossier test), ça ne marche toujours pas.
Quant aux cookies, il ne manquait plus que ça...
Ah, et il y a un détail plutôt marrant : Quand on clique sur un lien du fil d'ariane, le background-color du body est blanc au lieu de la couleur normale (pour moi c'est vert par exemple) alors que si on recharge la page, la couleur apparait.

Pour le problème des sessions, voici haut.php et index.php (l'erreur ne peut que venir de là):

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

Page incluse créant le doctype etc etc.

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
--------------------------
*/
?>
<!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">
			<center><a href="<?php echo ROOTPATH;?>/membre/index.php"><img src="<?php echo ROOTPATH; ?>/images/banniere-espace-membre.png"/></a></center><br />
		</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 id="menu_droite">
			<?php
			if(isset($_SESSION['membre_id']))
			{
			?>
				<a href="<?php echo ROOTPATH; ?>/membre/membres/moncompte.php">Gérer mon compte</a>   <a href="<?php echo ROOTPATH; ?>/membre/membres/deconnexion.php">Se déconnecter</a>
			<?php
			}
			
			else
			{
			?>
				<a href="<?php echo ROOTPATH; ?>/membre/membres/inscription.php">Inscription</a>   <a href="<?php echo ROOTPATH; ?>/membre/membres/connexion.php">Connexion</a>
			<?php
			}
			?>
			</div>
		</div>


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

Index du site.

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
--------------------------
*/

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***********/
?>

		<div id="colonne_gauche">
		<?php
		include('includes/colg.php');
		?>
		</div>
		
		<div id="contenu">
			<div id="map">
				<a href="index.php">Accueil</a>
			</div>
			
			<h1>Bienvenue sur l'espace membre The Legend of Arceus !</h1>
Il est actuellement en construction, revenez donc plus tard ;)<br /><br />

Cordialement, sachadu41
		</div>
		
		<?php
		include('includes/bas.php');
		mysql_close();
		?>


Voila, merci d'avance !
Édité le 21/11/2008 à 07:50:34 par sachadu41

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne Neoterranos # Posté le 21/11/2008 à 18:28:44
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : sachadu41
Merci de ta réponse.
Voici les codes d'erreur qui apparaissent en haut de page maintenant :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/index.php on line 23

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Warning: Cannot modify header information - headers already sent by (output started at /mnt/102/sda/5/c/tloa/membre/index.php:1) in /mnt/102/sda/5/c/tloa/membre/includes/fonctions.php on line 188

Je ne peux pas convertir les fichiers en UTF-8 puisqu'ils le sont déja.

Sauf qu'il y a UTF 8 et UTF 8 SANS BOM, et qu'il faut prendre le sans BOM !

Citation : sachadu41
Pour le captcha, j'ai pris la correction. J'ai donc captcha.php dans le dossier "membres" (dossier à la racine du dossir test) et la police baveuse3d dans le dossier "polices" (ne sachant pas où il faut le mettre, je l'ai mis dans le dossier membres et à la racine du dossier test), ça ne marche toujours pas.

Règle déjà le pb de l'UTF-8. :)
Cependant normalement, le dossier "polices" se trouve effectivement dans le dossier "membres" qui se trouve dans le dossier test.
Est-ce que ta librairie GD est active ?

Citation : sachadu41
Quant aux cookies, il ne manquait plus que ça...

Aucun pb chez moi, ni en local, ni en serveur.

Citation : sachadu41
Ah, et il y a un détail plutôt marrant : Quand on clique sur un lien du fil d'ariane, le background-color du body est blanc au lieu de la couleur normale (pour moi c'est vert par exemple) alors que si on recharge la page, la couleur apparait.

Jamais rencontré ce problème.

Citation : sachadu41
<citation rid="3172883">Pour le problème des sessions, voici haut.php et index.php (l'erreur ne peut que venir de là):

Voila, merci d'avance !

Raté, c'est certainement ton encodage qui n'est pas en UTF8 sans BOM.

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne sachadu41 # Posté le 21/11/2008 à 18:52:03
Groupe : Membres
Je suis en UTF-8 sans BOM...

EDIT : Ah non, sur mon 2e ordinateur, il etait en UTF-8 normal, je corrige ça tout de suite.

EDIT 2 : Tous les problèmes sont réglés sauf pour le captcha, je ne sais pas si ma librairie GD est active (je suis chez free).
Édité le 21/11/2008 à 19:14:06 par sachadu41

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne Neoterranos # Posté le 21/11/2008 à 19:25:28
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
DL wamp et teste en local. :)

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne sachadu41 # Posté le 21/11/2008 à 19:33:42
Groupe : Membres
Je n'ai jamais testé de page php en local avec wamp (ou tout autre logiciel ^^), comment on fait exactement ?

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne Neoterranos # Posté le 21/11/2008 à 19:56:24
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
M@teo l'explique dans son tuto.
Installe wamp, lance-le, mets tes fichiers de test dans un dossier que tu appelles comme tu veux mais que tu dois créer dans le dossier www de wamp :
Grosso modo, tu auras un chemin de ce genre :

C:\wamp\www\tondossier\tonsousdossier etc...

Une fois cela fait, vérifie que wamp est lancé, tape localhost dans ton nav, et suis les conseils de m@teo dans les différents chapitres.

Si tu n'y arrives pas, je t'aide en revenant.

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne sachadu41 # Posté le 21/11/2008 à 20:11:26
Groupe : Membres
Ok, j'ai testé et l'image n'apparait pas non plus en localhost...

EDIT : Etant donné que je suis chez free, je n'ai pas le droit de crypter les mots de passe, j'ai donc cherché des md5 et j'en ai trouvé 2 :

trait-inscription.php :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
			if($_SESSION['erreurs'] == 0)
			{
				$insertion = "INSERT INTO membres VALUES(NULL, '".mysql_real_escape_string($pseudo)."',
				'".md5($mdp)."', '".mysql_real_escape_string($mail)."',
				".time().", '".mysql_real_escape_string($date_naissance)."',
				'', '',
				'', '',
				'', '',
				'', '',
				".time().", 0)";



connexion.php :

Code : PHP
1
if(md5($_POST['mdp']) == $result['membre_mdp'])


Je peux les enlever sans problèmes ?

Et comment faire pour enlever l'obligation d'une majuscule dans le mot de passe ? Je retire cette ligne de fonctions.php ?

Code : PHP
1
else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';


Merci d'avance !
Édité le 21/11/2008 à 20:29:36 par sachadu41

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne eevee # Posté le 21/11/2008 à 20:39:02
Hello, hello, hello, how low ?
Avatar
Groupe : Membres
@Sachadu41 => As-tu téléchargé la police et mise dans un dossier "polices" dans le dossier "membres" ?
(sait-on jamais ^^) .
Hors ligne sachadu41 # Posté le 21/11/2008 à 20:52:31
Groupe : Membres
Oui ^^

Vous voulez m'aider ? Alors, cliquez sur l'un des liens ci-dessous :
- Aucun sujet crée pour le moment.
 
Hors ligne Samydu41 # Posté le 21/11/2008 à 22:41:03
samydu41.free.fr
Avatar
Groupe : Membres
Image utilisateur

Et bah pour ma part, j'ai fais la première partie entièrement en 1 petite heure et je n'est rencontré aucun problème ! ^^
Bravo pour le tuto il est bien et j'espère que la suite sera pareil... ou mieux ! :-°

samydu41.free.fr : Tutoriels OpenOffice
 
Hors ligne Neoterranos # Posté le 22/11/2008 à 00:59:02
Oh my god, they killed Kenny !
Avatar
Groupe : Membres
Citation : sachadu41
Ok, j'ai testé et l'image n'apparait pas non plus en localhost...

EDIT : Etant donné que je suis chez free, je n'ai pas le droit de crypter les mots de passe, j'ai donc cherché des md5 et j'en ai trouvé 2 :

trait-inscription.php :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<?php
			if($_SESSION['erreurs'] == 0)
			{
				$insertion = "INSERT INTO membres VALUES(NULL, '".mysql_real_escape_string($pseudo)."',
				'".md5($mdp)."', '".mysql_real_escape_string($mail)."',
				".time().", '".mysql_real_escape_string($date_naissance)."',
				'', '',
				'', '',
				'', '',
				'', '',
				".time().", 0)";



connexion.php :

Code : PHP
1
if(md5($_POST['mdp']) == $result['membre_mdp'])


Je peux les enlever sans problèmes ?

Et comment faire pour enlever l'obligation d'une majuscule dans le mot de passe ? Je retire cette ligne de fonctions.php ?

Code : PHP
1
else if(!preg_match('#[A-Z]{1,}#', $mdp)) return 'noupcap';


Merci d'avance !

Tu peux les enlever, mais en terme de sécurité, crypter les mots de passe est souvent nécessaire...
Pour le captcha, il y a un truc que tu ne dois pas faire correctement.
L'obligation d'une majuscule peut être retirée avec la ligne que tu m'as donnée en effet.

Image utilisateur
Perdu sur le SdZ ? Clique ici ! Perdu sur CCDS ? Clique ici !
 
Hors ligne sachadu41 # Posté le 22/11/2008 à 10:37:13
Groupe : Membres
Citation : Neoterranos
Tu peux les enlever, mais en terme de sécurité, crypter les mots de passe est souvent nécessaire...

Sauf que free nous l'interdit.

Citation : Neoterranos
Pour le captcha, il y a un truc que tu ne dois pas faire correctement.

C'est bon j'ai trouvé, dossier polices était nommé "policse" ^^

Citation : Neoterranos
L'obligation d'une majuscule peut être retirée avec la ligne que tu m'as donnée en effet.

Ok, je vais le faire.

Merci beaucoup !

Vous voulez m'aider ? Alors, cliquez sur l'un