Erreur dans mon code php aidez moi svp

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 10:05

<?php
// ---------------------------------------
// session.inc.php
// ---------------------------------------

class Session{
	// Constructeur
		function Session(){
		session_start();
	}
	// Support Session pour les urls
	function paserURL($url,$vars=""){
		return $url."?".session_name()."=".session_id().
		($vars!=""?"&".$vars:"");
	}
	// Sauvegarde d'une variable
	function save($name,$value){
		$_SESSION[$name]=$value;
	}
	// charger une variable sauvegardée
	function load($name){
		return $_SESSION[$name];
	}
	// Fermer la session
	function close(){
		session_destroy();
	}
	
}
?>
<?php
// ---------------------------------------
// login.php
// ---------------------------------------
require("inc/config.inc.php");
require("inc/session.inc.php");
require("inc/user.inc.php");
// Fermer une session qui serait restée ouverte
$session=new Session;
$user=new User;
if ($user->isValid($session)){
	$session->close();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MyForum v0.1</title>
<meta name="keywords" lang="fr" content="forum, discussion ,logiciel libre,PHP,mysql,xhtml,css" />
<meta name="author" lang="fr" content="Philippe Bouquet" />
<meta name="copyright" content="&copy;2004 Philippe Bouquet ." />
<meta name="license" content="GNU General Public license." />
<link rel="stylesheet" href="default.css" type="text/css" />
</head>
<body>
<!--Entete de site -->
<div class="header">
<img class="icon" src="imgs/linux.png" alt="ABUL" />
<h1>MyForum v0.1</h1>
<hr/>
</div>
<!--La partie principale-- >
<div class="main">
<!--Message d'erreur -->
<div class="err">
<?php
if($ERROR!="") {
	echo "ERREUR: $ERROR";
}
?>
<!--La boîte de connection -->
<div class="box">
<h1>Identifiez vous</h1>
<?php echo"<form action=\" ".$session->parseURL("themes.php")."\"
method=\"post\">";?>
<div class="field">
<label for="cuser">Code user:</label><input type="text" id="cuser" name="cuser" value=""  />
</div>
<div class="field">
<label for="passwd">Mot de passe:</label><input type="password" id="passwd" name="passwd" value="" />
</div>
<div class="buttons">
<input class="button" type="submit" name="action" value="Je me connecte" /></br>
<input class="button" type="submit" name="action" value="J'ai perdu mon mot de passe" />
</div>
</form>
</div>
<div class="center">
Si vous n'êtes pas encore inscrit veuillez cliquer<a href="inscrit.php">Ici</a>
</div>
</div>
<!--Le pied de page -->
<div class="footer">
<hr/>
Copyright &copy;2003-2004 Philippe BOUSQUET<br/>
Ce logiciel est sous license Gnu General Public License
</div>
</body>
</html>
Voici les messages d'erreur que je rencontre.
Notice: Undefined index: userId in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userName in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userFirstname in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userEmail in C:\wamp\www\forum\inc\session.inc.php on line 22
Notice: Undefined variable: ERROR in C:\wamp\www\forum\login.php on line 38
Fatal error: Call to undefined method Session::parseURL() in C:\wamp\www\forum\login.php on line 45

Mammouth du PHP | 2278 Messages

24 juil. 2012, 11:18

Où est la ligne concernée?
il faudrait faire auparavant cette ligne des var_dump($_SESSION); var_dump($_GET); ver_dump($_POST);
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 53 Messages

24 juil. 2012, 11:31

Bonjour,

Alors ta fonction "parserURL" ru la appelé "paserURL" dans ton "session.inc.php".

Ta variable $ERROR ne parait pas définie : pour tester l'existence fait plutot :

if(!empty($ERROR!=""))
{
echo "ERREUR: $ERROR";
}

Pour les erreurs relatives a l'index de a superglobale $_SESSION ils ne sont pas définit et ne paraissent pas l'être dans tes scripts .

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 13:46

j'ai essayé avec le code suivant:
<?php

if(!empty($ERROR!="")) {

echo 'ERREUR: $ERROR';
}
?>
voici le message qui s'affiche:
Parse error: parse error, expecting `')'' in C:\wamp\www\forum\login.php on line 39

Eléphant du PHP | 53 Messages

24 juil. 2012, 13:50

Rebonjour,

Ha excuse moi, j'ai mal copié collé :

if(!empty($ERROR))
{
echo "ERREUR: $ERROR";
}

empty() renvoie true si la variable est non définie ou vide.

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 13:56

ok le code marche à ce niveau.
Mais il m'envoie une erreur à la ligne 47
<?php echo"<form action=\" ".$session->parseURL("themes.php")."\"method=\"post\">";?>
Fatal error: Call to undefined method Session::parseURL() in C:\wamp\www\forum\login.php on line 47

Eléphant du PHP | 53 Messages

24 juil. 2012, 14:03

Rebonjour,

Je te prierais de relire mon premier post : ta fonction est mal nommée dans "session.inc.php".
Alors ta fonction "parserURL" tu la appelée "paserURL" dans ton "session.inc.php".
Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 14:10

Merci tu es un ange grâce à toi je viens d'arrêter de manger mes doigts.
Mais j'ai une autre difficulté:

Notice: Undefined index: userId in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userName in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userFirstname in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userEmail in C:\wamp\www\forum\inc\session.inc.php on line 22
que Faire???????

Eléphant du PHP | 53 Messages

24 juil. 2012, 14:14

Rebonjour,

Pour celle la PHP nous dit que ta SuperGlobale $_SESSION n'est pas remplie.
Peut-tu poster le résultat de "var_dump($_SESSION);" ( à coller juste après tes require ).

Au fait peut-tu éditer ton premier message et l'entourer de balises
pour la lisibilité ?

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 14:26

Voici le resultat posté:

Notice: Undefined variable: _SESSION in C:\wamp\www\forum\login.php on line 8
NULL
Notice: Undefined index: userId in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userName in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userFirstname in C:\wamp\www\forum\inc\session.inc.php on line 22

Notice: Undefined index: userEmail in C:\wamp\www\forum\inc\session.inc.php on line 22

Eléphant du PHP | 53 Messages

24 juil. 2012, 14:29

Rebonjour,

Tu à bien écrit : 'var_dump($_SESSION);' ?

Je ne m'y connait pas en objet mais est tu sur que 'session_start()' est bien appelé ?

D'après le message tu n'as pas dans ta page actuelle ou tes pages précédentes définis les index.

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 14:32

J'ai bien définis 'var_dump($_SESSION);'.OK ou définir les index ?
Et comment les définir?

Eléphant du PHP | 53 Messages

24 juil. 2012, 14:43

Rebonjour,

Ho je vient d'y penser je peut me trompé mais je croit que pour accéder à partir d'une méthode à une variable externe il faut utiliser le mot clef 'static' devant.
Essaye donc revient donc ici pour donner le résultat.

Sinon pour définir une variable $_SESSION tu fait :
$_SESSION['nomDeMaVariable'] = $valeurDeMaVariable;
Mais si j'ai bien compris c'est ce que tu essaye de faire en dynamique affiche donc '$name' dans ta fonction load() .

Je me permet d'insister : peut tu entourer le code de ton premier post par les balises [&php][/php] ( sans le & pour colorer le code) s'il te plait?

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Eléphanteau du PHP | 35 Messages

24 juil. 2012, 14:48

comment faire pour colorer le code?

Eléphant du PHP | 53 Messages

24 juil. 2012, 14:49

Rebonjour,

Tu sélectionne ton code et tu clique sur le bouton php en gris dans la barre au dessus de la "textarea" (<- la zone ou tu écrit les messages).

Cordialement.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.