Aller au contenu


[Tutoriel PHP 1][Très Très Facile]


10 réponses à ce sujet
  • Vous ne pouvez pas répondre à ce sujet

#1
Invité_ProNetwork_*

Salut, à toutes et à tous aujourd'hui je vais vous montrer comment traiter et afficher des données dans une page.
Pour ceux vous aurez besoin : Notepad++ (ou Bloc-Note),WampServer.

Exemple: Moi je veut créer un formulaire qui permette d'afficher le pseudo,prénom,nom,date de naissance,jour d’utilisation du formulaire bien-sûre je veux qu'il sois sécuriser.
Donc je vais devoir créer un formulaire,et le fichier qui va permettre d'afficher les donner écrit dans le formulaire. :hanter:

On commence par créer un formulaire "index.php":
<html>
<form method="POST" action="transporteur_afficheur.php">
Pseudo:<input type="text" name="pseudo">
</br>
Pr&eacutenom: <input type="text" name="prenom">
</br>
Nom :<input type="text"  name="nom">
</br>
Date de naissance :<input type="text"  name="naissance">
</br>
<input type="hidden" name="today" value="<?php echo date('j/m/Y'); ?>">
<input type="submit" value="Envoyer les donées !">
</form>
</html>

Explication du code HTML :
La première ligne:

method="POST"

Ce qui veut dire en français tu utilisera la méthode POST "c'est quoi la methode POST ? :mario: ", la méthode POST c'est une methode qui permet de traiter les données dans une page et qui ne va pas transporter les données que vous aurez tapez dans le lien (l'url) contrairement à la méthode GET : exemple :
http://monsite.com/transporter.php?pseudo=ProNetwork&prenom=amine&nom=RIN&naissance=01/01/01&email=azert@animeserv.net
.

action="transporteur_afficheur.php"
Ce qui veut dire en français tu utilisera le fichier transporteur_afficheur.php pour traitez les données qui serons tapaient dans le formulaire.

Exemple:<input type="text" name="exemple">
type="text" veut dire que les données que transporteur_afficheur.php vont être taper sont de type text.
name="exemple" veut dire que le nom du champ texte est exemple de cette façon la il va prendre ce qui aurat été taper dans le champs texte exemple.

Maintenant passons à la partit PHP dans le fichier "transporteur_afficheur.php":

<style type="text/css">
body{font-family:Comic Sans MS; color:skyblue;}
#donee{border:1px solid green; width:450px;}
</style>

<div id="donee">
<?php
//Déclarations des variables
$pseudo= htmlspecialchars($_POST['pseudo']);
$nom=htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
$naissance=htmlspecialchars($_POST['naissance']);
$date_utilisation =htmlspecialchars($_POST['today']);

//On va affichez les donées taper dans le formulaire
echo "Votre Pseudo est : $pseudo</br>Nom: $nom</br>Prénom: $prenom</br>Date de naissance : $naissance</br>Vous avez utilisez le formulaire le : $date_utilisation";
?>
</div>
Les htmlspecialchars() sont là pour sécuriser le script et encore ceci est le minimum ^^ si le script utiliser SQL on auraient eut recoure à d'autres moyens.

Vous devriez obtenir ceci : Image IPB

Si vous avez besoin de créer un site,un script ou autres je suis prêt à vous aider design ou programmation sa me dérange pas !! :D.

#2
RaiKarim-sama

      ラいカりむ アしゅり

  • messages 243
  • Inscrit(e) : 15 juin 2011

  • Humeur du actuel : Aucun choisi

Réputation : 32 (Neutre)
Le Hacking pour les nuls ! :yup:
  • 0

Image IPBImage IPB


#3
Invité_ProNetwork_*

Le Hacking pour les nuls ! :yup:

Pourquoi tu dit sa ?? :bah:

#4
RaiKarim-sama

      ラいカりむ アしゅり

  • messages 243
  • Inscrit(e) : 15 juin 2011

  • Humeur du actuel : Aucun choisi

Réputation : 32 (Neutre)
Bah, c'est comme ça que ça commence. :yup:
  • 0

Image IPBImage IPB


#5
Invité_ProNetwork_*

Bah, c'est comme ça que ça commence. :yup:

Chacun sa passion ^^

#6
Karasa

      Dénicheur d'hors-la-loi

  • messages 2 118
  • Inscrit(e) : 30 décembre 2009

  • Humeur du actuel : Aucun choisi

Réputation : 414 (Adulé !)
Merci ProNetwork ! Avec tous ces tutos sur le développement Web, on va être paré pour créer des sites Web ! :P

J'ai deux questions : la méthode htmlspécialchars() permet d'éviter au client (visiteur de la page) de taper des caractères spéciaux sur les champs du formulaires. Par exemple, s'affranchir d'envoyer le prénom "K@r@s4", ce qui peut éventuellement créer des problèmes d'interprétation coté serveur, c'est bien ça ?

Le caractère &eacute de Pr&eacutenom écrit un "é" si j'ai bien saisi. Je viens de tester le code sous Firefox et il ne me l'interpréte pas et écrit bien &eacute... Surtout que le "é" est plutôt reconnu en général sur les navigateurs... Du coup, à quoi ça peut bien servir ? ^^ À moins que ce ne soit une manière d'être certain que ton navigateur ne perd pas les pédales sur les caractères spéciaux :P

Sinon une remarque, je sais que tu as voulu faire quelque chose de très très facile, mais il ne faut pas oublier les balises <head> et <body>, indispensables sur une page html ;).

Voici ce que le code de ProNetwork affiche (ça peut servir je pense ^^) :

Image IPB


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
	<head>
		<title>Tutoriel by ProNetwork : Les Formulaires</title>
	</head>
	<body>
		<h2>Tutoriel PHP 1 | Auteur : ProNetwork</h2>
		<form method="POST" action="transporteur_afficheur.php">
		Pseudo:<input type="text" name="pseudo">
		</br>
		Pr&eacutenom: <input type="text" name="prenom">
		</br>
		Nom :<input type="text"  name="nom">
		</br>
		Date de naissance :<input type="text"  name="naissance">
		</br>
		<input type="hidden" name="today" value="<?php echo date('j/m/Y'); ?>">
		<input type="submit" value="Envoyer les donées !">
		</form>
	</body>
</html>

En tout cas, merci à toi pour le bout de code !

Moi, j'ai toujours tendance à oublier la balise <form> lors de l'envoi. En fait, je récupère les value via les id de mes champs et je forme ma requête et hop ! :lol:

Modifié par Karasa, 31 juillet 2011 - 22:07.

  • 0

Image IPB


#7
A-ttitude

  • messages 324
  • Inscrit(e) : 14 juillet 2011

  • Humeur du actuel : Aucun choisi

Réputation : 43 (Neutre)
@ Karasa

Il y a un problème avec ton &eacute, il faut rajouter un ; derrière pour que ton navigateur comprenne que tu souhaite afficher le caractère é.

On utilise cette méthode pour éviter certains bugs dû à l'encodage d'une page et au codage utilisé par le navigateur. Tu ne l'as pas précisé dans ton <head>, mais normalement tu indique quel encodage tu utilise avec ceci :

<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />

J'indique ici que ma page est codée en utf-8.

Là où je veux en venir, c'est que si ton navigateur n'est pas en utf-8, alors ton é sera présenté sous un caractère étrange (un peu comme quand ton pc ne peut pas lire le japonais).

Voici le tableau pour les caractères de bases :

Caractère code correspondant
é &eacute;
è &egrave;
à &agrave;
î &icirc;
ï &iuml;
ç &ccedil;
â &acric;

Tu remarquera qu'on utilise & suivie de la lettre correspondante et d'un petit "code" pour expliquer quel accent prendre (acute, grave, circ, uml, ccedil).

Ensuite, la méthode htmlspecialchars() permet d'éviter qu'un utilisateur entre un langage de programmation dans ton formulaire, ça t'évitera par exemple qu'un hacker entre un script js ou php afin de te voler tes données.
Dans la pratique, cette fonction permet de transformer des caractères en leur équivalent : > devient &gt;


Plus d'info ici : http://php.net/manua...pecialchars.php

Modifié par A-ttitude, 01 août 2011 - 18:49.

  • 1

#8
Karasa

      Dénicheur d'hors-la-loi

  • messages 2 118
  • Inscrit(e) : 30 décembre 2009

  • Humeur du actuel : Aucun choisi

Réputation : 414 (Adulé !)

Ensuite, la méthode htmlspecialchars() permet d'éviter qu'un utilisateur entre un langage de programmation dans ton formulaire, ça t'évitera par exemple qu'un hacker entre un script js ou php afin de te voler tes données.
Dans la pratique, cette fonction permet de transformer des caractères en leur équivalent : > devient &gt;


Aaahhh OK OK, c'est clair qu'en transformant tous les caractères par leur équivalent, impossible d'injecter du javascript ou php. Tiens, c'est donc pour ça que dans les mails, on ne peut pas mettre de fichier .js en pièce jointe. Merci je viens d'apprendre un truc ;).

Merci également de m'avoir éclairé sur le meta. Je dois avouer que je n'ai pas l'habitude d'inclure cette balise, mais elle semble indispensable, à vrai dire, je l'utilisais sans savoir réellement ce qu'elle faisait. Et puis, j'ai jamais eu affaire à ce problème d'encodage mais sait-on jamais :P
  • 0

Image IPB


#9
Arawn

  • messages 283
  • Inscrit(e) : 11 juillet 2011

  • Humeur du actuel : Aucun choisi

Réputation : 19 (Neutre)

Loooll

"Exemple: Moi je veut créer un formulaire qui permette d'afficher le pseudo,prénom,nom,date de naissance,jour d’utilisation du formulaire bien-sûre je veux qu'il sois sécuriser."

Tu appelles ça sécuriser de passer les données dans l'url en non crypté...

Ah oui, c'est vrai... C'est le tutoriel 1...

Ps : Quand tu fais un tutoriel, il faut éviter les fautes, ça fait désordre...


L'exemple est pour la méthode $_GET, or il utilise la méthode $_POST qui elle n'utilise pas les variables de l'URL

PS : rajoutez :


<?php 
session_start();

$_SESSION['nom_var'];
$_SESSION['nom_var2'];
...
$_SESSION['nom_var_final'];
?>


au tout début de chaque page et vous aurez une session qui gardera en mémoire qui vous êtes le temps de votre session. On peut aussi faire ça par cookie mais là on utilisera plutôt le javascript donc je vais ptêtre éviter de trop s'étaler sur ça =D

(Les $_SESSION['nom_var'] sont pas utiles, dites dans une fonction que ce que vous avez tapé sera stocké dans un $_SESSION et ça se créera tout seul, mais je trouve que ça aide d'avoir ça en tête pour pas oublier de mettre le session_start() en tout début)

Modifié par Arawn, 01 août 2011 - 23:38.

  • 0

#10
Invité_DemonFire_*

Mea culpa. Je me suis concentrée sur les fautes et lue le poste de travers...

#11
goldbergg

  • messages 176
  • Inscrit(e) : 06 octobre 2011

  • Humeur du actuel : Aucun choisi

Réputation : 51 (Se fait un nom)
C'est bien de vouloire aprendre le PHP, mais savoire coder corréctement une page web est bien plus important ;)
La sémentique sa vous dit rien? pourtant c'est vraiment crutial.
Le HTML est assez bien fournit pour ne jamais avoire a utiliser la balise <br>(enfin trés rarement), de plus le CSS n'est pas uniquement la pour faire jolie!
quite a métre des <br> partout, autant encapsuler la page dans des balise <pre>, sa vas plus vite. (je précise que c'est tous l'inversse de se qu'il faut faire).
voici un exemple de d'un formulaire a peut prés bien coder:
 <style>
label , select{
	display:block;
	width:150px;
	float:left;
}
fieldset{
	margin-left: auto;
	margin-right: auto;
	width:600px;
	border-radius: 15px;
}
</style>
<form method="post" action="PersonneAjout.php">
	<fieldset>
		<legend>Nouvelle Personne</legend>
		<label>Nom : </label>
		<input type="text" name="NewNom" size="64" />
		<label>Prenom : </label>
		<input type="text" name="NewPrenom" size="64" />
		<input type="submit" value="Envoyer" />
		<input type="reset" value="Recommencer" />
	</fieldset>
</form>

et pas besoin des balise html et body pour avoire un rendu correct (bien qu'il faille les utilisé bien sur).
de même pour le
echo "Votre Pseudo est : $pseudo</br>Nom: $nom</br>Prénom: $prenom</br>Date de naissance : $naissance</br>Vous avez utilisez le formulaire le : $date_utilisation";
dervrait plus ressemblé a sa:
echo "<div>Votre Pseudo est : $pseudo</div>
<div>Nom: $nom</div>
<div>Prénom: $prenom</div>
<div>Date de naissance : $naissanc</div>
<div>Vous avez utilisez le formulaire le : $date_utilisation</div>";
Certain diront que j'utilise trop de balise <div> alors que le <br> va plus vite, mais il est trés important de coder comme ça, autrement le Dhtml(JavaScript) devient un vraix cauchemar et la sémentique est fausse, et donc le site non conforme au recomendation w3c

Autre point important concernant les Méthode Post et Get (l'xplication donné est vraiment trop flou a mon goux):
Il s'agit de méthode du protocol HTTP qui va pérmétre de désigner le type d'action:
-Post envoire des information
-Get récupére des informtion
-Put modifie des information
-Delete suprime des information
(il existe d'autre méthode mais moin utilisé)
(Il n'éxiste pas de super global $_PUT et $_Delete mais on peut facilement les créé)

Il est important d'utilisé la bonne méthode au bon moment, se n'est pas parsque sa fonctione que c'est conforme.

Post va donc servire par exemple pour un formullaire d'inscription (envoie de données)
Get va servire par exemple a appelé la page qui affichera le profil d'un membre
On peut trés bien passé des paramétre Get sans passé par l'URL, mais la faite d'avoire les paramétre dans l'URL pérmétera par exemple de faire un signet sur la page du profil.
ainssi l'url:
www.monsite.com/index.php?page="Profil"&ID=42
affichera toujour le profil qui a l'ID 42, si les paramétre été passé diférement sa ne serait pas le cas.

De plus quite a utilisé l'URL pour passé des paramétre autant le faire bien.
au lieux d'avoire une URL comme ça
www.monsite.com/index.php?page="Profil"&ID=42
on aura
www.monsite.com/Profil/42/Toto
(ou toto est le nom du profil)
L'Url devient ainssi indépendante du language et est plus compréhenssible pour l'homme.


Voila, il y aurait bien d'autre remarque a faire mais je vais m'aréter là. (aprés tous mois aussi je fait des erreur)
(Ne prenet pas mon post comme une mauvaise critique ou méchament (a part pour la remarque plus bas), j'essaie juste de dire qu'il ne suffit pas d'apprendre un language pour l'utiliser,
mais il faut aussi en connaitre le fonctionement et sutous connaitre les régle d'usage ;) )

Le Hacking pour les nuls ! :yup:



Rien a voire, un dev ne s'y connait pas forcément en hack et a l'inversse un hacker ne sait pas forcement coder! (et je sais de quoi je parle)
  • 0





0 utilisateur(s) dans ce forum

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)

Community Forum Software by IP.Board
Licence accordée à : AnimeServ.NET
Design & Code by Bad.Y o/
© 2013 AnimeServ