unexpected T_VARIABLE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : unexpected T_VARIABLE

par Nours312 » 03 mai 2009, 18:34

slt ::

1. quelle est la valeur de $loginFormAction; dans le corps de ton document ?
2. à quoi sert le if() dans
if (!isset($_SESSION)) {
  session_start();
} 
session_start();
ne serait-il pas suffisant ? dans tous les cas, tu dois les déclarer ....

par MissUlie » 03 mai 2009, 12:42

Je n'ai pas mis d'espace dans mon code si c'est ce que tu veux dire. Et ça ne fonctionne pas.

Voici le code entier qui correspond à l'identification de l'utilisateur :
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['identifiant'])) {
  $loginUsername=$_POST['identifiant'];
  $password=$_POST['mdp'];
  $MM_fldUserAuthorization = "";
  $MM_redirectLoginSuccess = "produit.php?id=".$_GET['id'];
  $MM_redirectLoginFailed = "../compte/connexion_client_echec.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_xxx, $xxx);
  
  $LoginRS__query=sprintf("SELECT mail, mot_passe FROM client WHERE mail=%s AND mot_passe=%s",
    GetSQLValueString($loginUsername, "text"), GetSQLValueString($password, "text")); 
   
  $LoginRS = mysql_query($LoginRS__query, $xxx) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     $loginStrGroup = "";
    
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;	      

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
et dans le corps du doc :

Code : Tout sélectionner

<form action="<?php echo $loginFormAction; ?>" method="POST" name="connect_client" id="connect_client"> <p>Identifiant <label> <input name="identifiant" type="text" id="identifiant" value="saisissez votre adresse e-mail" size="32" maxlength="50" /> </label> </p> <p>Mot de passe <label> <input name="mdp" type="password" id="mdp" size="10" maxlength="10" /> </label> </p> <p> <label> <input type="submit" name="connect" id="connect" value="OK" /> </label> </p> </form>

par albat » 03 mai 2009, 12:25

Es-tu sûre que $_GET['id '] donne le même résultat que $_GET['id'] ?

par MissUlie » 03 mai 2009, 12:15

Je viens d'essayer ça :

Code : Tout sélectionner

$MM_redirectLoginSuccess = "produit.php?id=".$_GET['id '];
mais j'obtiens toujours : http://www.xxx.com/boutique/produit.php?id=

Y a t-il quelque chose à déclarer avant de la ligne :

Code : Tout sélectionner

$MM_redirectLoginSuccess = "produit.php?id=".$_GET['id '];
?

par albat » 03 mai 2009, 12:05

La superglobale "Get" s'écrit $_GET et non $GET. :non:

par MissUlie » 03 mai 2009, 12:02

Désolée, je ne comprends pas. J'ai lu le "Tutoriel PHP - PHP - POST & GET" mais on parle que de formulaire. Dans mon cas, je pensais qu'il était possible de renvoyer l'internaute sur la page qu'il consulté quand il s'est identifié sans qu'il y ait de formulaire.

Voici l'url avant identification : http://www.xxx.com/boutique/produit.php?id=15
et celle après : http://www.xxx.com/boutique/produit.php?id=

Je suis perdue. :?

par AB » 02 mai 2009, 21:24

Je dirais plus que sa variable GET n'est pas écrite de la bonne façon.
Bien vu, je m'étais arrêté à la correction de la faute de concaténation mais il y en avait d'autres :)


@MissUlie En plus du lien que t'a donné djtec tu peux aussi aller voir le manuel php (la bible) http://fr.php.net/manual/fr/reserved.variables.php

En complément du message d'orgerix pour mieux voir ce que te retourne ces variables qu'on appelle des superglaobales tu peux faire ainsi :
echo '<pre>';
echo 'tableau $_GET = ';
print_r($_GET);
echo '</pre>';
même principe pour les variables $_POST etc.

par orgerix » 02 mai 2009, 19:42

Utilise print_r() pour voir ce qu'il y a ddans tes tableaux. Cependant, si on ne sait pas comment $row_fiche_produit est déclaré et avec quel URL tu accède à ta page, on peut pas t'aider.

par djtec » 02 mai 2009, 19:41

Lit ça et je pense que tu trouvera seul.

http://www.phpsources.org/tutoriel-get-post.htm

par MissUlie » 02 mai 2009, 19:36

Je dirais plus que sa variable GET n'est pas écrite de la bonne façon.
Pourrais-tu me dire comment l'écrire ?

Merci

par djtec » 02 mai 2009, 19:36

Je dirais plus que sa variable GET n'est pas écrite de la bonne façon.

par AB » 02 mai 2009, 19:01

Maintenant la syntaxe est bonne, si tu n'obtiens rien c'est sans doute que les variables que tu utilises sont vides ...

par MissUlie » 02 mai 2009, 18:50

En fait, mon problème n'est pas encore résolu.
Sur ma fiche produit je demande à l'utilisateur de s'identifier pour passer commande. Le problème c'est qu'apès identification je n'arrive pas à réouvrir la fiche produit que l'utilisateur était en train de consulter.
J'ai essayé :
$MM_redirectLoginSuccess = "produit.php?id=".$row_fiche_produit['id'];
et
$MM_redirectLoginSuccess = "produit.php?id=".$GET['id'];
Ce qui donne l'url suivante :
"http://www.xxx.com/boutique/produit.php?id="
sans le n° de l'id. J'ai essayé en rajoutant echo, mais il y a une erreur qui apparaît.

C'est certainement pas très compliqué mais mon niveau de débutante ne m'aide pas beaucoup !

par Nours312 » 02 mai 2009, 18:25

Pour ce qui est de la rapidité, c'est un hasard ... je passais juste par là ;)

par MissUlie » 02 mai 2009, 18:21

Merci (je venait juste de réagir).
Et un autre merci pour ta rapidité !