php

Halbert a dit:
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


ce que je fais en général pour faire ca, c'est:
Bloc de code:
        echo '<form action="index.php" >';
        echo '<input type="hidden" name="argument1" value="'.$value1.'">';
        echo '<input type="hidden" name="argument2" value="'.$value2.'">';
        echo '<input type="submit" name="continuer" value="Continuer">';
        echo '</form>';
Dans <form action> tu indique la page ou tu veux te retrouver
dans une liste de <input type=hidden> tu indiques les arguments que tu veux passer

au final, la page renvoyer va être du style: index.php?argument1=value1&argument2=value2
 
BooBoo a dit:
ce que je fais en général pour faire ca, c'est:
Bloc de code:
        echo '<form action="index.php" >';
        echo '<input type="hidden" name="argument1" value="'.$value1.'">';
        echo '<input type="hidden" name="argument2" value="'.$value2.'">';
        echo '<input type="submit" name="continuer" value="Continuer">';
        echo '</form>';
Dans <form action> tu indique la page ou tu veux te retrouver
dans une liste de <input type=hidden> tu indiques les arguments que tu veux passer

au final, la page renvoyer va être du style: index.php?argument1=value1&argument2=value2
Je tape ça après ma ligne ?
Albert
 
BooBoo a dit:
ce que je fais en général pour faire ca, c'est:
Bloc de code:
        echo '<form action="index.php" >';
        echo '<input type="hidden" name="argument1" value="'.$value1.'">';
        echo '<input type="hidden" name="argument2" value="'.$value2.'">';
        echo '<input type="submit" name="continuer" value="Continuer">';
        echo '</form>';
Dans <form action> tu indique la page ou tu veux te retrouver
dans une liste de <input type=hidden> tu indiques les arguments que tu veux passer

au final, la page renvoyer va être du style: index.php?argument1=value1&argument2=value2
J'ai compris ! merci.....
Albert
 
BooBoo a dit:
ce que je fais en général pour faire ca, c'est:
Bloc de code:
        echo '<form action="index.php" >';
        echo '<input type="hidden" name="argument1" value="'.$value1.'">';
        echo '<input type="hidden" name="argument2" value="'.$value2.'">';
        echo '<input type="submit" name="continuer" value="Continuer">';
        echo '</form>';
Dans <form action> tu indique la page ou tu veux te retrouver
dans une liste de <input type=hidden> tu indiques les arguments que tu veux passer

au final, la page renvoyer va être du style: index.php?argument1=value1&argument2=value2

Encore une question : comment fais-tu pour que la valeur par exemple value1 n'apparaisse pas. Si il s'agit d'un password par exemple ?

merci

Albert
 
Si tu veux passer un password un argument (ce qui pour moi est une mauvaise idée :D), tu peux toujours le hasher . . . et bien sur verifier ce hashage avec le mot de passe valide hashé egalement
 
BeNBiBiFoKe a dit:
Si tu veux passer un password un argument (ce qui pour moi est une mauvaise idée :D), tu peux toujours le hasher . . . et bien sur verifier ce hashage avec le mot de passe valide hashé egalement
excuse moi mais comme je l'ai dit plus haut je débute en php et ta phrase m'est totalement incompréhensible !
Albert
 
Halbert a dit:
Encore une question : comment fais-tu pour que la valeur par exemple value1 n'apparaisse pas. Si il s'agit d'un password par exemple ?

Je vois pas l'interet de passer un mot de passe par un champs caché !
mais sinon, il suffit d'envoyer le formulaire par la methode POST (en mettant <form method="POST"...)
voir la référence du html

Le hash est le cryptage du mot de passe. Il existe plusieurs methodes de cryptage implémenté dans PHP:
http://www.php.net/manual/en/function.md5.php
http://www.php.net/manual/en/function.crypt.php
http://www.php.net/manual/en/function.sha1.php
 
BooBoo a dit:
Je vois pas l'interet de passer un mot de passe par un champs caché !
mais sinon, il suffit d'envoyer le formulaire par la methode POST (en mettant <form method="POST"...)
voir la référence du html

Le hash est le cryptage du mot de passe. Il existe plusieurs methodes de cryptage implémenté dans PHP:
http://www.php.net/manual/en/function.md5.php
http://www.php.net/manual/en/function.crypt.php
http://www.php.net/manual/en/function.sha1.php

Merci. Je me suis mal exprimé. Quand on se redirige vers la page appelée elle contient en son nom les vaurs "value1" value2" ... . N'est ce pas dangeureux ?
Albert
 
Halbert a dit:
Merci. Je me suis mal exprimé. Quand on se redirige vers la page appelée elle contient en son nom les vaurs "value1" value2" ... . N'est ce pas dangeureux ?

Que ce soit avec la méthode GET ou POST, les données transmises ne sont pas cryptées. Maintenant, en GET les données sont passées via l'URL, donc je ne dirais pas que c'est plus dangereux, mais plutôt que c'est plus facile pour savoir ce qui a été transmis (exemple : quelqu'un pourrait aller simplement regarder dans l'historique pour trouver les données transmises).

Maintenant, comme BooBoo, je ne vois pas l'intérêt de passer un mot de passe en clair dans un champ "caché". Soit, tu passes un hash du mot de passe, soit (mieux) tu utilises les sessions PHP (système avec cookies).
 
Tout dépends de ce que tu mets dans les champs !
dans l'url de cette page, par exemple, tu as t=102475&page=2&pp=20. Ce ne sont pas des données "vitales".

Ensuite, pour ce qui est des formulaires, il y a 2 façons de les envoyer: en GET ou en POST.
La methode get va indiquer dans l'url les valeurs des champs, tandis que en POST tu ne les verras pas. Il ne sont pas envoyer avec l'adresse mais par une transaction (je connais pas les details).

Donc pour un formulaire de login avec indication de mot de passe, il est préférable d'utiliser la methode POST.

Mais dans ton cas, j'ai l'impression que tu veux mettre un mot de passe dans un champs caché. Je ne vois pas l'interet de faire cela. Le mot de passe, tu l'as déjà. Pourquoi vouloir le transferer par la page web, pour ensuite le récuperer ? De plus, en regardant le code source de ta page, tu verras le mot de passe...
 
BooBoo a dit:
Tout dépends de ce que tu mets dans les champs !
dans l'url de cette page, par exemple, tu as t=102475&page=2&pp=20. Ce ne sont pas des données "vitales".

Ensuite, pour ce qui est des formulaires, il y a 2 façons de les envoyer: en GET ou en POST.
La methode get va indiquer dans l'url les valeurs des champs, tandis que en POST tu ne les verras pas. Il ne sont pas envoyer avec l'adresse mais par une transaction (je connais pas les details).

Donc pour un formulaire de login avec indication de mot de passe, il est préférable d'utiliser la methode POST.

Mais dans ton cas, j'ai l'impression que tu veux mettre un mot de passe dans un champs caché. Je ne vois pas l'interet de faire cela. Le mot de passe, tu l'as déjà. Pourquoi vouloir le transferer par la page web, pour ensuite le récuperer ? De plus, en regardant le code source de ta page, tu verras le mot de passe...

je ne suis pas encore sûr de ce que je dis mais comme le mot de passe se trouve entre deux bornes PHP on ne le verra pas. Non ?
Albert
 
molgow a dit:
Que ce soit avec la méthode GET ou POST, les données transmises ne sont pas cryptées. Maintenant, en GET les données sont passées via l'URL, donc je ne dirais pas que c'est plus dangereux, mais plutôt que c'est plus facile pour savoir ce qui a été transmis (exemple : quelqu'un pourrait aller simplement regarder dans l'historique pour trouver les données transmises).

Maintenant, comme BooBoo, je ne vois pas l'intérêt de passer un mot de passe en clair dans un champ "caché". Soit, tu passes un hash du mot de passe, soit (mieux) tu utilises les sessions PHP (système avec cookies).
ok merci je réfléchis à tout ça.
Albert
 
Halbert a dit:
je ne suis pas encore sûr de ce que je dis mais comme le mot de passe se trouve entre deux bornes PHP on ne le verra pas. Non ?

Argggg....
va falloir reprendre au début...
Le code PHP est exécuter sur le SERVEUR. Il génère (entre autre) du code HTML qui va être envoyé au CLIENT.
Si ton code PHP est :
Bloc de code:
$value1="toto";
echo '<input type="hidden" name="argument1" value="'.$value1.'">';

le serveur va exécuter ce code pur générer le code à envoyer au CLIENT qui sera:
Bloc de code:
<input type="hidden" name="argument1" value="toto">

La page HTML est visible du CLIENT (puisqu'il l'affiche). Il peut donc parfaitement voir le source.
 
Petit tuto de chez phpFrance :)

Prenons un formulaire simple :

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>Votre nom :<br />
<input type="text" name="nom" size="40" /><br />
Commentaire :<br />
<textarea name="texte" cols="40" rows="3"></textarea>
</p>
<input type="submit" name="Submit" value="Envoyer">
</form>

-Ce formulaire utilise la méthode POST et pour l'action, tu peux choisir ta page php qui contient les vérifications.
Donc par exemple <form method="post" action="verif.php">, ou bien la page elle meme contenant le formulaire. Faisons comme si nous avions pris verif.php :

<html>
<body>
<?
if(!empty($_POST['nom']) and !empty($_POST['texte'])){ // si les champs sont remplis
echo '<h4>Merci ' . htmlentities($_POST['nom']) . '</h4>';
echo '<p>Votre commentaire : ' . htmlentities($_POST['texte']) . '</p>';
}else{
echo '<h4>Erreur !</h4>';
echo '<p>Vous devez remplir correctement tous les champs</p>';
}
?>
</body>
</html>

Et c'est tout. Je n'ai pas lu tout le topic mais les valeurs ne sont pas passées en arguments !
Donc il suffit d'utiliser $_POST...

Et concernant le hashage désolé de t'avoir embrouillé avec mon chinois, mais si tu compte stocker des login/mot de passe dans une base de données, il n'est pas conseillé de les sotcker 'en clair'. Donc qu'on puisse aller voir dans le champ mot de passe de ta table membres et voire le mot de passe original.

Le hasher consite à le crypter donc que par exemple, toto devient EZER324454$ù$^ou que sais-je :).

Et dans ta page verif.php, tu appliques ce 'hashage' au mot de passe rempolis dans le formulaire et tu peux comparer avec celui dans la base de données. En veillant a utiliser la meme fonction lors de l'inscription du membre.
 
BeNBiBiFoKe a dit:
Petit tuto de chez phpFrance :)

Prenons un formulaire simple :

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>Votre nom :<br />
<input type="text" name="nom" size="40" /><br />
Commentaire :<br />
<textarea name="texte" cols="40" rows="3"></textarea>
</p>
<input type="submit" name="Submit" value="Envoyer">
</form>

-Ce formulaire utilise la méthode POST et pour l'action, tu peux choisir ta page php qui contient les vérifications.
Donc par exemple <form method="post" action="verif.php">, ou bien la page elle meme contenant le formulaire. Faisons comme si nous avions pris verif.php :

<html>
<body>
<?
if(!empty($_POST['nom']) and !empty($_POST['texte'])){ // si les champs sont remplis
echo '<h4>Merci ' . htmlentities($_POST['nom']) . '</h4>';
echo '<p>Votre commentaire : ' . htmlentities($_POST['texte']) . '</p>';
}else{
echo '<h4>Erreur !</h4>';
echo '<p>Vous devez remplir correctement tous les champs</p>';
}
?>
</body>
</html>

Et c'est tout. Je n'ai pas lu tout le topic mais les valeurs ne sont pas passées en arguments !
Donc il suffit d'utiliser $_POST...

Et concernant le hashage désolé de t'avoir embrouillé avec mon chinois, mais si tu compte stocker des login/mot de passe dans une base de données, il n'est pas conseillé de les sotcker 'en clair'. Donc qu'on puisse aller voir dans le champ mot de passe de ta table membres et voire le mot de passe original.

Le hasher consite à le crypter donc que par exemple, toto devient EZER324454$ù$^ou que sais-je :).

Et dans ta page verif.php, tu appliques ce 'hashage' au mot de passe rempolis dans le formulaire et tu peux comparer avec celui dans la base de données. En veillant a utiliser la meme fonction lors de l'inscription du membre.

Merci pour toutes ces explications
Albert