Bonjour à tous Smiley smile

Voici mon problème :
Je créer un site Oscommerce que j'ai déjà beaucoup modifié.
Mais un problème me bloque :
lorsque je veut aller sur la page account.php, on me redirige vers :
http://www.monsite.com/catalog/login.php?osCsid=406e3dbb36898beb4875cc5b8bebd1b4
Alors que je voudrais que ce soit tout simplement :
http://www.monsite.com/login.php

Voici ma partie de code de la page account.php :
 require('catalog/includes/application_top.php');

  if (!tep_session_is_registered('customer_id')) {
    $navigation->set_snapshot();
    tep_redirect(tep_href_link('login.php'));
  }


Et pour finir, une autre question encore plus bête, mais je débute =) Comment vais-je pouvoir voir et donc modifier ma page account.php si je suis toujours redirigée vers la page login.php ?

Merci d'avances de vos réponses, je vous souhaite à tous une excellente journée Smiley cligne
Bonjour,

La suite de caractères après login.php est l'identifiant de session, il est possible de le faire passer par un cookie (mais il faut accepter les cookies).

Je ne connais pas OSCommerce mais cela risque de représenter une grande quantité de travail pour faire cette modification.
Merci beaucoup Laurie-Anne pour cette réponse très rapide Smiley smile
Mais cet identifiant est-il indispensable ?
J'ai pu remarquer que sur un autre site construit avec oscommerce, il n'était pas présent lors de la redirection, donc je pensais que c'était faisable Smiley smile
En attendant vos autres idées, je vous remercie vivement !
Oui cet identifiant est indispensable (qu'il passe par l'URL ou par cookie) car il permet de suivre le visiteur à travers les page ; sans lui les sessions php ne peuvent fonctionner.

Si tu as vu d'autre site se passer de cet ID dans les URL c'est qu'il était transmis via cookie.
Aah d'accord, je comprend mieux maintenant Smiley smile
J'aimerai beaucoup le garder dans l'url, mais quand je vais sur la page account.php, je suis donc redirigée comme je l'ai dis précédemment, mais cela créer des bugs php...
Alors que quand j'accède à la page redirigée directement sans l'ID ( c.a.d login.php ) la page fonctionne très bien !
Voici mes messages d'erreur :

" Warning: require(catalog/includes/application_top.php) [function.require]: failed to open stream: Not a directory in /home/kinouche/public_html/catalog/login.php on line 13

Warning: require(catalog/includes/application_top.php) [function.require]: failed to open stream: Not a directory in /home/kinouche/public_html/catalog/login.php on line 13

Fatal error: require() [function.require]: Failed opening required 'catalog/includes/application_top.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/kinouche/public_html/catalog/login.php on line 13 "

J'ai pourtant vérifier, tout est bien rangé à sa place.

Je suis complètement perdue... Merci de votre aide =)
Ca ressemble à un problème de chemin relatif. Tu es sûre que le chemin indiqué pour le require est le bon dans login.php ?
Oui, c'est le bon chemin, je ne comprend vraiment pas, surtout que ma page http://www.monsite.com/login.php fonctionne très bien, c'est seulement quand je veux y acceder via la redirection de la page account.php :
http://www.monsite.com/catalog/login.php?osCsid=3ae3c0472ce7ad69898a05a2907f6678
que cela ne marche pas.
Merci beaucoup pour ta réponse Smiley smile
Modifié par justine71 (04 May 2010 - 13:33)
Le problème semble venir d'une ligne semblable à celle-ci :
require('catalog/includes/application_top.php'); 
Celle-ci vient de account.php, mais tu dis que le problème vient de login.php. Y a-t-il ce même type d'inclusion dans cette page ?
Ah mais c'est normal ! C'est bien ce que je disais : un problème d'arborescence dû à l'utilisation de chemins relatifs !
Tu appelles :
http://www.monsite.com/catalog/login.php?osCsid=3ae3c0472ce7ad69898a05a2907f6678
...et ça ne marche pas, alors que si tu appelles :
http://www.monsite.com/login.php
...ça marche : tu n'es pas au même niveau dans l'arborescence.

--- édit -----
Après réflexion, c'est bien ça : il suffit de "forcer" un chemin absolu pour la fonction require via :
$_SERVER['DOCUMENT_ROOT']
Smiley lol
Modifié par phpdoesnotcare (04 May 2010 - 14:51)
Aaah d'accord ! Merci beaucoup pour cette aide très précieuse !!
J'ai peur de faire une erreur sur le placement de la variable : est-ce cela ?
 require($_SERVER['DOCUMENT_ROOT']'catalog/includes/application_top.php');

  if (!tep_session_is_registered('customer_id')) {
    $navigation->set_snapshot();
    tep_redirect(tep_href_link('login.php'));
  }


Merci infiniment Smiley smile
require $_SERVER['DOCUMENT_ROOT']'.catalog/includes/application_top.php'; 
- les parenthèses ne sont pas nécessaires. Cette fonction est un peu particulière.
- il faut concaténer les deux chaînes de caractères pour qu'elles n'en forment plus qu'une, et ça se fait via le point.

Voilà... Smiley cligne
Alors j'ai testé avec cette ligne, et quand je veux accéder a ma page account.php, la redirection ne s'opère plus et j'ai ce message d'erreur :

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/kinouche/public_html/account.php on line 13

Je suis sûre qu'on est près du but, merci de prendre le temps de m'aider Smiley lol
require $_SERVER['DOCUMENT_ROOT'].'catalog/includes/application_top.php';
Petite erreur de ma part : j'ai réussi à me planter en plaçant le point. Désolé. Smiley lol
Modifié par phpdoesnotcare (04 May 2010 - 15:21)
Bonsoir,
voici la situation actuelle Smiley smile
Alors en plaçant la ligne que tu m'a donné, je pense que ça a régler le problème, mais ont suivis les mêmes messages d'erreur sur d'autres parties de codes, et sur les autres pages qui étaient citées. Donc, j'ai remplacée toutes mes lignes de require avec la tienne, jusqu'à que cela soit régler.
Maintenant je suis face a cela :

Fatal error: Cannot redeclare do_magic_quotes_gpc() (previously declared in /home/kinouche/public_html/catalog/includes/functions/compatibility.php:18) in /home/kinouche/public_html/catalog/includes/functions/compatibility.php on line 30

Bouh, je ne sais plus quoi faire !
Merci d'avance, et excellente soirée à tous !
Tu as une déclaration qui semble être faite deux fois à cause de tes includes. Essaie de faire un peu de ménage pour éviter les doublons.
Oui, j'avais déjà eu ce problème précédemment, je pensais l'avoir réglé, mais en fait pas du tout...
Voici ma portion de code ou cela bloque :
function do_magic_quotes_gpc(&$ar) {
    if (!is_array($ar)) return false;

    reset($ar);
    while (list($key, $value) = each($ar)) {
      if (is_array($ar[$key])) {
        do_magic_quotes_gpc($ar[$key]);
      } else {
        $ar[$key] = addslashes($value);
      }
    }
    reset($ar);
  }


Merci encore de ton aide !
En fait le problème, comme je l'ai dit, c'est que cette fonction est définie plusieurs fois. Sans doute parce que le fichier dans lequel elle est définie est inclu plusieurs fois (oops) dans une même page.
Quand on travaille beaucoup avec des inclusions il est plus sûr de travailler avec require_once, plutôt que require, qui n'inclue un fichier que si ça n'a pas déjà été fait. Ca évite ce genre de problèmes. Smiley cligne
Modifié par phpdoesnotcare (04 May 2010 - 21:13)