[RESOLU] Révision php

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 : [RESOLU] Révision php

Re: Révision php

par arnaud69 » 24 sept. 2014, 12:32

Code : Tout sélectionner

echo "<FORM METHOD='GET' ACTION='identification.php' TARGET='Gauche' >" echo "<input type='hidden' name='paramIdent' value='0' />" ;
Il y avait quelques fautes de ' et de "

réessaie

Re: Révision php

par ynx » 24 sept. 2014, 11:06

Attention, les paramètres passés dans l'attribut action d'un formulaire ne sont pas envoyés lors de la soumission de celui-ci. Il faut donc bien utiliser un champ input (de type hidden ou autre).

Les attributs peuvent être délimités par des simples ou doubles quotes. La valeur d'un attribut peut d'ailleurs ne pas être entourée de quotes si elle ne contient pas d'espace et si elle ne contient pas les caractères " ' ` < ou >
Source : http://www.w3.org/TR/html5/introduction ... ly-example

Re: Révision php

par moogli » 24 sept. 2014, 10:26

salut,

pour le tag php, utiliser <?php est la bonne solution car le paramètre short open tag n'est plus activé par défaut. mais il est possible de le faire (plus d'info dans la doc en lien ;) )

pour ce qui est du formulaire

généralement on l'écrit en minuscule, les délimiteurs des option de tags sont les " et non les ' (même si cela fonctionne).

ensuite écrire
<form method="get" action="page.php?toto=tata"> ....</form>

c'est pareil que d'écrire
<form method="get" action="page.php">
<input type="hidden" name="toto" value="tata" />
</form>

car au final tous finit dans l'url.

lorsque tu arrive sur ton script identification.php $_GET['paramIdent'] devrait effectivement exister et avoir une valeur.
Par contre cela n'est vrai que lorsque tu valide le formulaire. est ce tu n’afficherais pas cette page sans les paramètre dans l'url ?
si tu utilise l'url http://lehostdetonsite/identification.p ... depas=tata cela doit fonctionner.

dernière chose cette ligne
echo "<FORM METHOD='GET' ACTION='identification.php TARGET='Gauche' > " ;"

n'est pas valide il manque une ' et il y a une " en trop.
<FORM METHOD="GET" ACTION="identification.php" TARGET="Gauche" >' ;

quand à l’utilisation des frames, en règle générale c'est moche :)

pour voir ce qu'il y a dans $_GET tu peux ajouter un var_dump($_GET) en début de script.

@+

Re: Révision php

par JOUFFRAY » 24 sept. 2014, 09:17

Bonjour Arnaud69,

Ayant appliqué la consigne, le résultat est inchangé :
Notice: Undefined index: paramIdent in C:\Program Files (x86)\EasyPHP\data\localweb\NleGenealogie\identification.php on line 15
Le code appelant :

Code : Tout sélectionner

// echo "<FORM METHOD='GET' ACTION='identification.php?paramIdent=0' TARGET='Gauche' > \n" ; // remplacé par echo "<FORM METHOD='GET' ACTION='identification.php TARGET='Gauche' > " ;" echo "<input type='hidden' name='paramIdent' value='0' />" ;
le code appelé :

Code : Tout sélectionner

<html> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=iso-8859-1"> <TITLE>reconnaissance du demandeur et demande du mot de passe</TITLE> </HEAD> <BODY BGCOLOR='#F4EBCC'> <?php // liaison avec la base mySQL require_once "accesBase.php" ; $link = premierAcces() ; // récupération des paramètres généraux $GLOBALS["ident"] = $_GET["identifiant"] ; $GLOBALS["mopas"] = $_GET["motdepas"] ; // récupération du paramètre d'appel $parm = $_GET["paramIdent"] ;

Re: Révision php

par arnaud69 » 23 sept. 2014, 11:11

<? est autorisé par le php.ini, pas par la verison de php (allow short tag de mémoire)

Ensuite pour le
<FORM METHOD='GET' ACTION='identification.php?paramIdent=0' TARGET='Gauche' >
il faut écrire :
<FORM METHOD='GET' ACTION='identification.php TARGET='Gauche' >
<input type='hidden' name='paramIdent' value='0' />
La méthode post est à adopter en fonction des contraintes... GET est parfois plus utile est judicieux...

Re: Révision php

par jo-jo-123 » 23 sept. 2014, 10:35

Bonjour,

1/. y a-t-il une différence entre <? et <?php : la réaction semble différente à l'exécution.

Un script PHP commence toujours par <?php en PHP 5 (peut être qu'en php 4, il suffisait d'écrire <?)

2/. lors de l'appel d'un module et pour lui passer un paramètre, j'utilise dans le module appelant :
<FORM METHOD='GET' ACTION='identification.php?paramIdent=0' TARGET='Gauche' > \n
et dans le module appelé :
$parm = $_GET["paramIdent"] ;
à l'exécution j'obtiens :
Notice: Undefined index: paramIdent in C:\Program Files (x86)\EasyPHP\data\localweb\NleGenealogie\identification.php on line 15
===> ou est donc l'erreur ???


Déjà il faut vérifier que $_GET["paramIdent"] existe soit par un isset() ou empty().
Après il est conseillé d'utiliser <FORM METHOD='POST' ...>

En ésperant avoir répondu a tes questions !

Jo

Révision php

par JOUFFRAY » 23 sept. 2014, 10:15

Bonjour, :priere:
j'ai développé un site il y a une dizaine d'année et j'ai quelques trous de mémoire.
1/. y a-t-il une différence entre <? et <?php : la réaction semble différente à l'exécution.
2/. lors de l'appel d'un module et pour lui passer un paramètre, j'utilise dans le module appelant :
<FORM METHOD='GET' ACTION='identification.php?paramIdent=0' TARGET='Gauche' > \n
et dans le module appelé :
$parm = $_GET["paramIdent"] ;
à l'exécution j'obtiens :
Notice: Undefined index: paramIdent in C:\Program Files (x86)\EasyPHP\data\localweb\NleGenealogie\identification.php on line 15
===> ou est donc l'erreur ???
Remerciements et cordiales salutations.