parse erreur ? indication ne change pas

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 : parse erreur ? indication ne change pas

Re: parse erreur ? indication ne change pas

par sam12 » 07 août 2011, 21:40

Content que ça marche ;)

Re: parse erreur ? indication ne change pas

par maxgeek » 07 août 2011, 21:32

Merci, ça fonctionne :D

Re: parse erreur ? indication ne change pas

par sam12 » 07 août 2011, 20:13

Tu vérifies l'existence des posts (qui ont potentiellement moins de chance d'être bidouillés) mais pas celle des get :?
Je propose même de faire
if (isset($_GET['connexion'] ) && $_GET['connexion'] == 0)
ou même:
if (isset($_GET['connexion'] ))
{
  if ( $_GET['connexion'] == 0)
   {
   }
  else
  {
   }
}

else
{ //bidouillage}

Re: parse erreur ? indication ne change pas

par moogli » 07 août 2011, 20:01

C'est simple tu n'a pas la valeur connexion dans l'url (http://tonsite.ext/fichier.php?connexion=valeur )

@+

Re: parse erreur ? indication ne change pas

par maxgeek » 07 août 2011, 16:54

Merci j'ai corrigé, mais maintenant il me dit tout en haut de ma page :
( ! ) Notice: Undefined index: connexion in C:\wamp\www\Code\pages\index.php on line 76
Call Stack
# Time Memory Function Location
1 0.0020 390544 {main}( ) ..\index.php:0
Puis ensuite il m'affiche le reste de ma page.


voici mon code :
<?php
	session_start();
?>
<!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>Document sans titre</title>
</head>
<body>
<!-- connexion BDD -->
<?php
	$PARAM_hote='localhost';      // le chemin vers le serveur
	$PARAM_port='3306';
	$PARAM_nom_bd='monsite';          // le nom de votre base de données
	$PARAM_utilisateur='root';    // nom d'utilisateur pour se connecter
	$PARAM_mot_passe='';          // mot de passe de l'utilisateur pour se connecter

		try
			{
			$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
			/* BDD connectee */
			}
 
		catch(Exception $e)
			{
			/* erreur connection */
			echo 'Une erreur est survenue !';
			echo 'Erreur : '.$e->getMessage().'<br />';
			echo 'N° : '.$e->getCode();
			die();
			}
?>
<!--    /fin de la connexion -->
<!-- verification connexion -->
	<?php
	$resultats=$connexion->query('SELECT * FROM user'); // Requette MySQL
	$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
	if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['pass']))
		{
		$pseudo = $_SESSION['pseudo'];
		$pass = $_SESSION['pass'];
		$req=$connexion->query("SELECT * FROM user WHERE pseudo='$pseudo' and pass='$pass' ");
		$req->setFetchMode(PDO::FETCH_OBJ);
		$count=mysql_num_rows($req);
		}
	else
		{
		}
	if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['id']) AND isset($_SESSION['pass']))
		{
		if (in_array($_SESSION['id'] , $resultats['id']) AND in_array($_SESSION['pseudo'] , $resultats['pseudo']) AND in_array($_SESSION['pass'] , $resultats['pass']))
			{
			if ($count == 1)
				{
				$_SESSION['connexion'] = 1;
				}
			else
				{
				$_SESSION['connexion'] = 0;
				}
			}
		else
			{
			$_SESSION['connexion'] = 0;
			}
		}
	else
		{
		$_SESSION['connexion'] = 0;
		}
	?>
<!--   /fin de la verification -->
<!--  formulaire de deconnexion -->
	<?php
		if ($_GET['connexion'] == 0)            LIGNE 76
			{
			session_destroy();
			}
		else
			{
			}
	?>
<!--  /fin du formulaire de deconnexion -->
ligne 76 :
if ($_GET['connexion'] == 0)
Quelle est mon erreur ?

Re: parse erreur ? indication ne change pas

par sam12 » 30 juil. 2011, 22:35

Peut être:

$req=$connexion->query("SELECT * FROM user WHERE pseudo='$pseudo' and pass='$pass' '');

Re: parse erreur ? indication ne change pas

par maxgeek » 30 juil. 2011, 22:26

Ah oui merci ! mais j'ai corrigé, et maintenant l'erreur est en ligne 43 ...
voici mon code :
<?php
	session_start();
?>
<!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>Document sans titre</title>
</head>
<body>
<!-- connexion BDD -->
<?php
	$PARAM_hote='localhost';      // le chemin vers le serveur
	$PARAM_port='3306';
	$PARAM_nom_bd='monsite';          // le nom de votre base de données
	$PARAM_utilisateur='root';    // nom d'utilisateur pour se connecter
	$PARAM_mot_passe='';          // mot de passe de l'utilisateur pour se connecter

		try
			{
			$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
			/* BDD connectee */
			}
 
		catch(Exception $e)
			{
			/* erreur connection */
			echo 'Une erreur est survenue !';
			echo 'Erreur : '.$e->getMessage().'<br />';
			echo 'N° : '.$e->getCode();
			die();
			}
?>
<!--    /fin de la connexion -->
<!-- verification connexion -->
	<?php
	$resultats=$connexion->query('SELECT * FROM user'); // Requette MySQL
	$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
	if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['pass']))
		{
		$pseudo = $_SESSION['pseudo'];
		$pass = $_SESSION['pass'];
		$req=$connexion->query('SELECT * FROM user WHERE pseudo='$pseudo' and pass='$pass'');        LIGNE 43
		$req->setFetchMode(PDO::FETCH_OBJ);
		$count=mysql_num_rows($req);
		}
	else
		{
		}
	if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['id']) AND isset($_SESSION['pass']))
		{
		if (in_array($_SESSION['id'] , $resultats['id']) AND in_array($_SESSION['pseudo'] , $resultats['pseudo']) AND in_array($_SESSION['pass'] , $resultats['pass']))
			{
			if ($count == 1)
				{
				$_SESSION['connexion'] = 1;
				}
			else
				{
				$_SESSION['connexion'] = 0;
				}
			}
		else
			{
			$_SESSION['connexion'] = 0;
			}
		}
	else
		{
		$_SESSION['connexion'] = 0;
		}
	?>
<!--   /fin de la verification -->
la ligne 43 est :
$req=$connexion->query('SELECT * FROM user WHERE pseudo='$pseudo' and pass='$pass'');

Re: parse erreur ? indication ne change pas

par sam12 » 30 juil. 2011, 19:47

C'est subtil mais c'est isset() et non isset ;)
Normalement avec
if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['pass']))
ça devrait être bon

Re: parse erreur ? indication ne change pas

par maxgeek » 30 juil. 2011, 19:30

non non j'ai juste oublié de mettre les ; sur le forum, dans mon codes je les met ... Voila la partie de ma page (le début, le reste n'est pas utile je crois ?) avec la ligne 39 :
<?php
	session_start();
?>
<!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>Document sans titre</title>
</head>
<body>
<!-- connexion BDD -->
<?php
	$PARAM_hote='localhost';      // le chemin vers le serveur
	$PARAM_port='3306';
	$PARAM_nom_bd='monsite';          // le nom de votre base de données
	$PARAM_utilisateur='root';    // nom d'utilisateur pour se connecter
	$PARAM_mot_passe='';          // mot de passe de l'utilisateur pour se connecter

		try
			{
			$connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
			/* BDD connectee */
			}
 
		catch(Exception $e)
			{
			/* erreur connection */
			echo 'Une erreur est survenue !';
			echo 'Erreur : '.$e->getMessage().'<br />';
			echo 'N° : '.$e->getCode();
			die();
			}
?>
<!--    /fin de la connexion -->
<!-- verification connexion du membre -->
	<?php
	$resultats=$connexion->query('SELECT * FROM user'); // Requette MySQL
	$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
	if (isset $_SESSION['pseudo'] AND isset $_SESSION['pass'])                                        LIGNE 39
		{
		$pseudo = $_SESSION['pseudo'];
		$pass = $_SESSION['pass'];
		$req=$connexion->query('SELECT * FROM user WHERE pseudo='$pseudo' and pass='$pass'');
		$req->setFetchMode(PDO::FETCH_OBJ);
		$count=mysql_num_rows($req);
		}
	else
		{
		}
	if (isset ($_SESSION['pseudo']) AND isset ($_SESSION['id']) AND isset($_SESSION['pass'])
		{
		if (in_array($_SESSION['id'] , $resultats['id']) AND in_array($_SESSION['pseudo'] , $resultats['pseudo']) AND in_array($_SESSION['pass'] , $resultats['pass']))
			{
			if ($count == 1)
				{
				$_SESSION['connexion'] = 1;
				}
			else
				{
				$_SESSION['connexion'] = 0;
				}
			}
		else
			{
			$_SESSION['connexion'] = 0;
			}
		}
	else
		{
		$_SESSION['connexion'] = 0;
		}
	?>
<!--   /fin de la verification -->


j'ai indiqué la position de la ligne 39 dans le script ("LIGNE 39") , bien sur je n'ai pas fait ça dans le vrai code

Re: parse erreur ? indication ne change pas

par moogli » 30 juil. 2011, 18:51

salut,

y a quoi avant ?

le message te dit qu'il ne peux pas y avoir de variable a cette ligne mais généralement cela viens de la ligne précédente (je vois par exemple que tu ne met pas de ; en fin de ligne, est ce juste sur le forum où ne l'a tu pas mis en fin de ligne précédente non plus ?).

mon notre les 38 lignes précédente et l'on pourra plus t'aider ;)

@+

parse erreur ? indication ne change pas

par maxgeek » 30 juil. 2011, 16:09

Bonjour,

Quand j'ouvre ma page index.php avec WAMP en local, il m'indique :

( ! ) Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\Code\pages\index.php on line 39

Bon ok, j'ai fait une erreur, alors je vais voir cette fameuse ligne 39 :
$_POST['pass'] = $postpass
je ne vois pas mon erreur, alors pour tester je rajoute une ligne bidon (juste un
echo 'texte'
) juste au dessus, qui représente maintenant la ligne 39

Je relance WAMP, et il m'affiche toujours le meme message d'erreur.
J'ai refait ça plusieur fois, et peut importe ce que je mette ne ligne 39, j'ai l'impression qu'il ne l'aime pas enfait --' peut importe ce qu'il y a à cette ligne, il me trouve une erreur. Que se passe t'il ? Que dois-je faire ? merci.