php

A

Anonyme

Invité
Quelle erreur de débutant (ce que je suis en php) fais-je ?

J'ai tapé :

<FORM ACTION="test.php" METHOD="POST">

Prénom : <INPUT TYPE="Text" NAME="prenom" VALUE="">

<INPUT TYPE="Submit" VALUE="Envoyez !">


Puis sur la page test.php :

print ("<h2> Bonjour , $prenom ! </h2> ");


Je ne récupère que le Bonjour mais pas la valeur du prénom......

Merci d'avance

Albert
 
Essaie de remplacer $prenom par $_POST['prenom']. Sur toutes les configurations PHP "récentes", les variables ne peuvent plus être obtenue par le moyen que tu utilises pour des raisons de sécurités.
 
molgow a dit:
Essaie de remplacer $prenom par $_POST['prenom']. Sur toutes les configurations PHP "récentes", les variables ne peuvent plus être obtenue par le moyen que tu utilises pour des raisons de sécurités.

Merci beaucoup

Il me renvoie ceci :

parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING'
 
essaye ca:
print ("<h2> Bonjour , ".$_GET['prenom']." ! </h2> ");

il est préférable de concatener les chaines et les variables que de faire la recherche des variables dans les chaines
 
oops, c'est
print ("<h2> Bonjour , ".$_POST['prenom']." ! </h2> ");

vu que tu utilises la methode POST !!!
 
BooBoo a dit:
oops, c'est
print ("<h2> Bonjour , ".$_POST['prenom']." ! </h2> ");

vu que tu utilises la methode POST !!!
ca marche merci, j'ai appris quelque chose.

Pas évident à deviner tout seul.

Merci, je continue....

Albert
 
Il est possible d'utiliser une variable dans une chaine (ex. "$toto"), mais pour les tableaux, je ne suit pas sur que cela fonctionne (ou alors peut être dans les ' '. Ne trouvant cela pas très propre, je ne mets jamais de variables dans des chaines, mais bon après, chacun applique ses règles de codage.
http://www.php.net/manual/en/language.variables.php

Ensuite, pour les variables prédéfinies, telles que les $_POST, $_GET ou autres, depuis la version de PHP 4.2.0, elles ne sont plus misent en globale pour des raisons de sécurité. Ceci est configurable dans le php.ini.
voir la ref: http://www.php.net/manual/en/language.variables.predefined.php
 
BooBoo a dit:
Il est possible d'utiliser une variable dans une chaine (ex. "$toto"), mais pour les tableaux, je ne suit pas sur que cela fonctionne (ou alors peut être dans les ' '. Ne trouvant cela pas très propre, je ne mets jamais de variables dans des chaines, mais bon après, chacun applique ses règles de codage.
http://www.php.net/manual/en/language.variables.php

Ensuite, pour les variables prédéfinies, telles que les $_POST, $_GET ou autres, depuis la version de PHP 4.2.0, elles ne sont plus misent en globale pour des raisons de sécurité. Ceci est configurable dans le php.ini.
voir la ref: http://www.php.net/manual/en/language.variables.predefined.php

Merci. J'aurai certainement d'autres questions....

Albert
 
BooBoo a dit:
oops, c'est
print ("<h2> Bonjour , ".$_POST['prenom']." ! </h2> ");

vu que tu utilises la methode POST !!!
Juste une question : pourquoi des guillemets dans les guillemets ?

Albert
 
Ce ne sont pas des guillemets dans des guillemets, c'est une concaténation de chaînes de caractères (3 chaînes dans ce cas)

Exemple simliaire :

$vert = "vert";
print("rouge" . $vert . "bleu");


Le "." (point) est l'opérateur de concaténéation de chaînes de caractères en PHP.
 
molgow a dit:
Ce ne sont pas des guillemets dans des guillemets, c'est une concaténation de chaînes de caractères (3 chaînes dans ce cas)

Exemple simliaire :

$vert = "vert";
print("rouge" . $vert . "bleu");


Le "." (point) est l'opérateur de concaténéation de chaînes de caractères en PHP.
Ok compris.

Si j'insère dans un if ca donne ça :

if ($_POST['prenom'] !="")

Pas besoin de guillemets ?

Albert
 
Oui, sauf que dans le cas que tu cites, si tu veux comparer deux chaînes de caractères, il te faut utiliser la fonction strcmp.
 
molgow a dit:
Oui, sauf que dans le cas que tu cites, si tu veux comparer deux chaînes de caractères, il te faut utiliser la fonction strcmp.
Merci Molgow je savais pas que == convertissait les chaines en entier, j'ai honte je vais changer mes scripts ! :)

A propos, comment tu fais pour <= ou >= ? <== et >== ne marchent pas y'a une autre méthode ?
[edit: je viens de me rendre compte de la bêtise de ma question, on va pas comparer une chaine avec un <= ... bon c'est décidé j'arrête de bosser la nuit, je laisse quand même la question ça en fera marrer beaucoup je pense :p]

Merci encore :up:
 
iMatthieu a dit:
Merci Molgow je savais pas que == convertissait les chaines en entier, j'ai honte je vais changer mes scripts ! :)

A propos, comment tu fais pour <= ou >= ? <== et >== ne marchent pas y'a une autre méthode ?
[edit: je viens de me rendre compte de la bêtise de ma question, on va pas comparer une chaine avec un <= ... bon c'est décidé j'arrête de bosser la nuit, je laisse quand même la question ça en fera marrer beaucoup je pense :p]

Non, t'as question n'est pas bête. D'ailleurs c'est courant de vouloir comparer lexicographiquement 2 chaînes de caractères. Dans ce cas, tu utilises aussi strcmp&#8230;

La définition de strcmp :
strcmp() retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.
 
molgow a dit:
Oui, sauf que dans le cas que tu cites, si tu veux comparer deux chaînes de caractères, il te faut utiliser la fonction strcmp.
Bonjour

if (condition) (instruction)...

Dans (instruction) je peux mettre un renvoi par lien ?

Merci

Albert
 
Je ne sais pas ce que tu entends par "renvoi par lien". Si tu veux y mettre du code HTML, alors oui, tu peux tout mettre. Si tu veux mettre une redirection PHP de type header("Location: http://www.truc.machin");, alors la seule condition c'est de n'avoir rien imprimé avant sur ta page générée.
 
molgow a dit:
Je ne sais pas ce que tu entends par "renvoi par lien". Si tu veux y mettre du code HTML, alors oui, tu peux tout mettre. Si tu veux mettre une redirection PHP de type header("Location: http://www.truc.machin");, alors la seule condition c'est de n'avoir rien imprimé avant sur ta page générée.
Bonjour
En fait j'ai mis un "bouton" :

print ("<INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Continuer \">\n") ;

Et comment faire pour qu'en appuyant sur "continuer" je me retrouve sur une page bien précise ?

Merci

Albert