session

Eléphant du PHP | 110 Messages

23 janv. 2008, 22:11

slt
voila l'extrait le code que j'utilise pour conserver des variables avec une session, bien évidement en premier je déclare ma session avec session_start()....
if(!empty($_POST['nom'])&& !empty($_POST['prenom'])&& !empty($_POST['email'])&& !empty($_POST['ville'])&&!empty($_POST['Vemail']))
{

$nom=$_POST['nom'];
$prenom=$_POST['prenom'];
$email=$_POST['email'];
$Vemail=$_POST['Vemail'];
$adresse=$_POST['adresse'];
$ville=$_POST['ville'];
$cp=$_POST['code_postal'];
//test session
$_SESSION['email']=$email;

lorsque je test ce script avec un echo j'obtiens bien la bonne variable, préalablement rentrée ds mon formulaire, mais j'obtiens aussi le message d'erreur suivant:

Notice: Use of undefined constant email - assumed 'email' in c:\program files\easyphp1-8\www\fiesta\envoieetreception_civilite.php on line 50

quelqu'un pourrait il m'éclairer sur ce message ou dois je ne pas m'en préoccuper.
merci A+ [/php]

Eléphant du PHP | 291 Messages

23 janv. 2008, 22:13

Tu pourrais nous donner le contenu de cette ligne ?

Je soupçonne un :
<?php
echo $_SESSION[email];
?>
au lieu de

<?php
echo $_SESSION['email'];
?>

Eléphant du PHP | 110 Messages

23 janv. 2008, 22:19

merci un pour la rapidite deux pour l'efficacite

tu avais raison j'avais mal noté mon echo

merci encore

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 janv. 2008, 22:19

ou dois je ne pas m'en préoccuper.
Ah oui tient pour mes prochaines factures EDF ou téléphone j'en ferai autant... et hop plus de problèmes \:D/

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 291 Messages

23 janv. 2008, 22:23

ou dois je ne pas m'en préoccuper.
Ah oui tient pour mes prochaines factures EDF ou téléphone j'en ferai autant... et hop plus de problèmes \:D/
fais gaffe quand même certains huissiers de justice sont réglés sur E_ALL....

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

23 janv. 2008, 22:29

:lol:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 110 Messages

24 janv. 2008, 00:50

on se moque :D
entre deux reflexion sur vos factures d'electricités voici une petite question qui justement preoccupe le petit debutant que je suis ...
j'ai un soucis avec cette notation
"
je ne comprends pas la difference avec ca
'[php]

De la meme maniere je ne sais pas ce qui est juste ds le code suivant car les deux fonctionne 
 [php]
WHERE 'email'='$_SESSION[email]'";
ca marche
WHERE 'email'='$_SESSION['email']'";
autre chose (j'abuse vos factures vont attendent)
j'ai du mal a saisir ds les livre la difference entre empty et !isset ou l'inverse !empty et isset

merci a vous qui entre deux factures passez une partie de votre tps a nous guider ds nos peines phpènnes.
:D

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

24 janv. 2008, 11:38

Pour ma part, je suis passé au prélevement automatique, je vais donc avoir du temps pour te répondre ;)

Apostrophes (') et guillemets (") permettent toutes deux de définir des chaines en php. La principale différence réside dans le fait qu'une variable placée entre guillemets sera interprétée alors qu'elle ne le sera pas si elle est entre apostrophes :
$var = 123;
echo "La valeur est : $var"; // affiche : La valeur est : 123
echo 'La valeur est : $var'; // affiche : La valeur est : $var
En général, on recommande donc fortement de toujours sortir ses variables des chaines pour éviter ce genre d'erreur, ainsi que pour plus de lisibilité avec la coloration syntaxique (et puis ça évite à php d'aller inutilement regarder dans toutes tes chaines pour voir s'il n'y aurait pas une variable à remplacer) :
echo 'La valeur est : ' . $var;
En SQL en revanche, si MySQL tolère les guillemets pour délimiter une chaine, ce n'est pas une syntaxe sql correcte. On ne les utilise que pour délimiter des chaines, pas les nombres :
$sql.= " WHERE email = '".$_SESSION['email']."' AND id = " . $idNumerique; 

Enfin, isSet() te permet te tester si une variable est définie (afin de savoir si tu peux l'utiliser ou pas). empty() te permet de tester non seulement si une variable est définie, mais en plus de savoir si sa valeur est vide ou nulle.

Le point d'exclamation (!) est un opérateur de négation, ainsi si " isSet($var) " retourne vrai (parce que la variable est définie) " !isSet($var) " retourne faux. Cela te permet de tester directement si une variable n'est pas définie plutôt que de devoir tester si elle est définie et coller un else pour ton traitement :)

Plutôt que de faire :
if (isSet($_POST['var'])) { // si la variable est définie
  // ... on fait rien
}
else {
  // ... traitement
}
Tu peux faire :
if (!isSet($_POST['var'])) { // si la variable n'est pas définie
  // ... traitement
}
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 110 Messages

24 janv. 2008, 11:42

merci
y'a des explications simples qui sont d'une grande lumière.

merci
A+