DCO2
Messages postés56Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 3 avril 2006
-
2 déc. 2005 à 08:42
DCO2
Messages postés56Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 3 avril 2006
-
3 déc. 2005 à 19:23
Bonjour,
Voilà j'explique mon problème:
J'ai une page qui doit s'afficher lorsque l'internaute s'est inscrit. jusque là tout marche bien.
Il reçois le mail pour confirmer son inscription et doit cliquer sur un lien pour confirmer. jusqu'ici OK.
Ensuite sur une page de connexion il doit entrer son pseudo et son mot de passe et c'est là que ç'a bloque. cela tourne en rond et la page demandée ne s'affiche pas.
voici le début de la page qui doit s'afficher: (ceci est un extrait)
La page commence par un require pour afficher la page de connexion.
1ère question:
Le require est-il au bon endroit?
<?
// DEBUT - Module de sécurité session_start();
if(!isset($_SESSION["verified_user"])) { Header("Location: security/identification.php?m =0");
}
// FIN - Module de sécurité
?>
Ici la page securite.php:
?php session_start();
if (@$userid && @$password) {
require "connect.inc";
$res = @mysql_query("SELECT userid FROM boutique_users WHERE userid='$userid' AND password='$password' AND level='registered'");
if(@mysql_num_rows($res) != 0)
{
$verified_user = $userid;
session_register("verified_user");
//echo "bon password";
Header("Location: ../".$page_redirection); c'est la page appellée par connect.inc
}
else
{
Header("Location: identification.php?m =1");
}
}
else
{ Header("Location: identification.php?m= 1"); }
?>
Sur cette page le eader appelle ("Location: ../".$page_redirection)
et page redirection est un fichier de connection qui est connect.inc que voici:
<?
// DEBUT - Reglages
$db_host ="00.00.000.000";// Adresse de la base de données
$db_user="xxxxxxx";// Username (pour la base de données) $db_pass="xxxxxx";// Password (pour la base de données) $db="xxxxxxxx";// Nom de la base de données $site_name="xxxxxxxx.com";// Nom de votre site $serveur="http://www.xxxxxxx.com"; // Adresse de votre serveur $mail_controle=1; // 1 si vous voulez recevoir un mail lors de l'inscription d'un membre (0 sinon)
$adresse_webmaster="xxxxxxxxxxxxxxxxx.com";// Adresse mail du webmaster $validite=3600*24*7;// Durée avant laquelle on doit valider son inscription en secondes [b]
$page_redirection="index.php";// Page sur laquelle on atterit après s'être loggué/b
// FIN - REGLAGES
mysql_connect($db_host,$db_user,$db_pass) or die("Unable to connect to database");
mysql_select_db($db) or die("Unable to select database");
?>
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 2 déc. 2005 à 14:15
"
<? require"security/secureit.php"; ?>
<? session_start();"
Tu fais un test de session avant de lancer session_start() ? Wouahou, jamais fait avant :)
Inverse les 2 pour commencer.
Profite de ce moment de concentration pour passer de PHP3 à PHP4 voir PHP5 au niveau de l'écriture du code.
session_register() ne se trouve quasiment plus.
magic_quote_gpc() non plus...
bref, une fois que tu sauras ou tu va vraiment, on continura plus loin :)
Mais des $login, des $password qui se baladent partout... beurk !
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 2 déc. 2005 à 17:37
"session_register()et magic_quote_gpc() ne se trouve quasiment plus.
Par quoi faut-il les remplacer?"
Parce que :
1) session_register est déprécié, il faut utiliser le tableau superglobal $_SESSION[] pour transmettre tes variables/valeurs. $_SESSION[] marche comme un tableau normal.
2) magic_quote_gpc() révèle un trou de sécurité pour le passage de tes variables entre tes pages. Il faut utiliser $_POST[] pour les formulaires, $_GET[] pour les URLs, $_COOKIE[] pour les cookies, $_SERVER[] pour les variables de serveur. Ce sont également des tableaux.
Voila pourquoi !
"
<?
// DEBUT - Module de sécurité session_start();"
session_start(); est dans un commentaire la !
DCO2
Messages postés56Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 3 avril 2006 2 déc. 2005 à 21:36
Merci pour ta réponse mais le code sur ma page est correct.
C'est lors du copier coller que cela à disfonctionné.
Voici le code de ma page tel qu'il est.
<?
// DEBUT - Module de sécurité
session_start();
if(!isset($_SESSION["verified_user"]))
{
Header("Location: security/identification.php?m=0");
}
// FIN - Module de sécurité
?>
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 2 déc. 2005 à 23:20
"Ensuite sur une page de connexion il doit entrer son pseudo et
son mot de passe et c'est là que ç'a bloque. cela tourne en rond et la
page demandée ne s'affiche pas."
C'est quoi le msg d'erreur alors ?
Essaye de faire du débugage rapidement, à base de echo();
Genre, tu essayes lignes après ligne un echo 'Test'; et si ca affiche test, c'est que ca marche. Si ca n'affiche plus Test sur ton navigateur, c'est que tu viens de trouver la cause de ton pb.
Fait un maximum d'echo UNE FOIS A LA FOIS surtout !!!
DCO2
Messages postés56Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 3 avril 2006 3 déc. 2005 à 19:23
Le problème c'est que cela n'affiche aucun message d'erreur, une fois qu'il a entré son pseudo et son mot de passe la page redevient comme si il n'avait rien fait. Cela lui demande encore et encore son pseudo et son mot de passe et aucun message d'erreur.
OK je vais essayer le echo 'Test';
Mais sur quelle page?
Merci pour ton aide.