Problème d'Affichage

Signaler
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006
-
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006
-
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?

<? require"security/secureit.php"; ?>
 <? session_start(); 
$client_ip= $REMOTE_ADDR; 
$now=date("Ymd"); 
$_SESSION["client_ip"] = "$now$client_ip"; 
include ('_connexion.php'); 
$query="SELECT * FROM boutique_preferences"; 
$res_preferences = @mysql_query($query,$db); 
$list_preferences=@mysql_fetch_row($res_preferences); 
if ($listecat=="") {$listecat="0";} ?> 
<html> 
<head> 
<title></title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<link rel="stylesheet" href="style.css" type="text/css"> 


Ici la page secureit.php:

<? 
// DEBUT - Module de s&#233;curit&#233; session_start(); 
if(!isset($_SESSION["verified_user"])) { Header("Location: security/identification.php?m =0");
 }
 // FIN - Module de s&#233;curit&#233; 
?> 


Ici la page securite.php:

?php session_start(); 
if (@$userid &amp;&amp; @$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&#233;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&#233;es 
$db_user="xxxxxxx";// Username (pour la base de donn&#233;es) $db_pass="xxxxxx";// Password (pour la base de donn&#233;es) $db="xxxxxxxx";// Nom de la base de donn&#233;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&#233;e avant laquelle on doit valider son inscription en secondes [b]
$page_redirection="index.php";// Page sur laquelle on atterit apr&#232;s s'&#234;tre loggu&#233;/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"); 
?>


à $page_redirection si je met l’adresse complète. Dans le navigateur s’affiche 2 fois l'adresse de la page appelée par exemple http://mon_site;com/boutique/index/http:mon_site.com/boutique/index et donc une erreur 404 car évidement cette adresse n'existe pas.

Pouvez-vous m'aider à résoudre ce problème?
Je suis à votre disposition pour tous renseignements complémentaires.
Je vous en remercie d'avance.

9 réponses

Messages postés
14942
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
20 janvier 2021
93
Je ne sais pas si ça vient de là, mais il faut mettre un espace après require:
<? require "security/secureit.php";
session_start(); 


Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006

Bonjour et merci pour cette réponse,

Mais cela ne vient pas du fait qu'il n'y ai pas d'espace.

Est-ce que le problème pourrait venir des "session_start()"

Merci de votre aide.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"
<? 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 &#224; PHP4 voir PHP5 au niveau de l'&#233;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 !
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006

Bonjour et merci pour cette réponse,

Je viens de suivre ton avis et j'ai inversé le require et le session_start mais c'est la même chose je l'ai écrit comme ca:

<? session_start();
$client_ip=$REMOTE_ADDR;
$now=date("Ymd");
$_SESSION["client_ip"] = "$now$client_ip";
include ('_connexion.php');
$query="SELECT * FROM boutique_preferences";
$res_preferences = @mysql_query($query,$db);
$list_preferences=@mysql_fetch_row($res_preferences);
if ($listecat=="") {$listecat="0";} ?>
<? require"security/secureit.php"; ?>

Est-ce correct?

Pour ce qui est du code en lui même c'est un script que j'ai trouvé sur ce site.

Si

session_register()et magic_quote_gpc() ne se trouve quasiment plus.

Par quoi faut-il les remplacer?

Merci pour votre aide
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006

Pardon j'ai oublié le principal.

En suivant l'avis de FhX cela ne fonctionne toujours pas.

Merci de votre patience.
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"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&#233;curit&#233; session_start();"
session_start(); est dans un commentaire la !
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006

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é
?>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"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 !!!
Messages postés
56
Date d'inscription
jeudi 14 avril 2005
Statut
Membre
Dernière intervention
3 avril 2006

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.

Sur un autre forum j'ai eue cette réponse:

Bon, je t'aide un peu :

<? require "security/secureit.php"; ?>
<? session_start(); 
// ..
?>


<? require "security/secureit.php"; ?><? session_start(); 
// ..
?>


Dans le premier, il y a quelque chose et dans le deuxième il n'y a rien.
Tu ne vois toujours rien ?

Qu'en penses tu? et peux tu m'aider?