Problème d'apostrophe avec script en PHP

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Problème d'apostrophe avec script en PHP

Message par EmmaZL »

Bonjour,

Sur mon site, j'ai un formulaire avec login et mot de passe en php. Si le mot de passe est faux, il y a un message d'erreur qui apparaît. C'est géré par ce code :

Code : Tout sélectionner

<?php

	$username = $_POST['username'];
	$password = $_POST['password'];

	// location of page to go to if username and password match
	$url = "user.php";

	$user_array = array("login");
	$pass_array = array("mot de passe");
	$user_length = count( $user_array );


	for ( $i = 0; $i < $user_length; $i++ )
	{
		if ( $username == $user_array[$i] && $password == $pass_array[$i] )
		{
			session_start();
			session_register("user");
			session_register("loggedIn");
			$_SESSION['user'] = $username;
			$_SESSION['loggedIn'] = "true";

			header("Location: $url");
		}
	}

	// nothing became valid while we looped so verification failed
	echo 'Erreur d'identification';

?>

Si mon message

Code : Tout sélectionner

echo 'Erreur d'identification';
contient un apostrophe, j'obtiens le message d'erreur suivant :

Code : Tout sélectionner

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/httpd/vhosts/molos.ch/httpdocs/login/verify.php on line 123
Je suis loin d'être une pro en PHP et je ne sais pas comment m'y prendre.

Ma question est donc, comment modifier le code pour qu'il accepte les apostrophes ?
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
Zexen
Arias
Messages : 10
Inscription : 14 févr. 2004, 12:13

Message par Zexen »

Il suffit de :
  • soit mettre un \ devant l'apostrophe
  • soit entourer la chaîne de guillemets doubles
En fait, l'apostrophe dans la chaîne était comprise comme fin de chaine par PHP, donc il comprenait pas le texte derrière puisqu'il attendait un point-virgule de fin d'instruction.
EmmaZL
Lézard à collerette
Messages : 245
Inscription : 07 août 2004, 00:43

Message par EmmaZL »

Merci beaucoup ! :wink: Je teste tout ça ce soir !
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème. (devise Shadok)
Ma configuration
olab
Varan
Messages : 1254
Inscription : 30 juil. 2003, 20:20

Message par olab »

Tu as aussi la fonction addslashes("tout le texte") (utile si tu ne controle pas le contenu des parentheses, comme une variable par exemple)
DJiK
Lézard à collerette
Messages : 474
Inscription : 17 févr. 2004, 13:18

Re: Problème d'apostrophe avec script en PHP

Message par DJiK »

EmmaZL a écrit :

Code : Tout sélectionner

			session_start();
			session_register("user");
			session_register("loggedIn");
			$_SESSION['user'] = $username;
			$_SESSION['loggedIn'] = "true";


Supprime les 2 lignes session_register(...) :!:

Doc de PHP: http://fr2.php.net/manual/fr/function.s ... gister.php
Attention Si vous utilisez $_SESSION, n'utilisez pas session_register()
:wink:
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités