Monday, January 22, 2018

Ma propre contribution


My own contribution

(English translation follows below)



Tout ce que j’ai appris en informatique, je l’ai appris grâce a des gens qui ont pris la peine de partager leur savoir-faire. Aussi, je vous donne un peu de moi même et de ce que j’ai pu développer grâce a d’autres.




C’est un code PHP qui fonctionne à condition d’avoir déjà configuré l’accès a la database MySQL.
Si vous êtes en train de travailler à la sécurité de vos formulaires en ligne, si vous voulez y travailler, ou si vous souhaitez revisiter vos codes pour être sur que la sécurité est optimale, ce code vous aidera sans doute. Je ne dis pas qu’il est increvable, mais il est certainement plus difficile à crever que d’autres.
Je n’ai pas inclus la validation html “champs requis”, mais vous pouvez la trouver facilement sur internet. Voilà la raison pourquoi je ne l’ai pas fait :

http://indietrendsetter.blogspot.ca/2018/01/quand-les-aliens-debarqueront-je.html

Ce formulaire ne comprend pas le téléchargement d’image auquel je suis en train de travailler. Plus bas les images du rendu.

J’ai mis un code de couleur pour en rendre la compréhension plus aisée.

http://indietrendsetter.blogspot.ca/p/html-includeincludesdatabase.html



En jaune foncé tout en haut, il y a le code PHP ‘inclus’ ( je ne suis pas sure de comment ca se dit en français) qui permet l’accès à la base de donnée pour que le menu déroulant « Select catégorie » puisse se connecter. Et tirer les informations nécessaires pour se former.
Voici le contenu du fichier database.php :
<?php
$con = mysqli_connect("localhost","root"," inserer mot de passe ici","Inserer le nom de la database ici");
?>

En bleue, il y a le code JavaScript qui permet de valider le formulaire de façon smooth (élégante ). A l’intérieur du code html pour le formulaire, il y a une petite ligne en bleue qui est nécessaire pour active le code JavaScript. La voici: "onsubmit="return verify(this)" 
Le code JavaScript est facile à hacker comme je vous l’ai déjà expliqué, c’est pourquoi vous devez aussi implémenter un protocole de validation des formulaires coté server en PHP.
Dans le javascript toutes les occurrences de:
product_title ou product_category ou product_price doivent être remplacées par les noms des champs que vous avez choisi pour votre formulaire.


En vert, il y a le code html du formulaire lui-même qui inclus un code PHP pour le menu deroulant "Select category".

En rose, il y a la méthode choisie qui est POST. La méthode GET est très facile à hacker comme je vous l’expliquait dans un post précèdent.

http://indietrendsetter.blogspot.ca/2017/09/php-ces-portes-cachees-qui-font-de.html


En orange, il y a une ligne de code PHP pour sécuriser le formulaire car certains hackers peuvent pénétrer vos codes en insérant des caractères spéciaux dans vos codes html.


En rouge, il y a le code PHP de validation du formulaire qui prend la releve si le code javascript est hacké et qui vous permet d’arrêter l’entrée de données non voulues dans votre database. Dans ce cas-ci, tout ce que j’ai fait c’est d’interdire l’accès au database si tous les champs ne sont pas remplis. Mais en y travaillant, vous pouvez préciser vos conditions.
C’est la sécurité cote server dont je vous parlais dans mon post précédent sur le sujet. Il arrête le script et l’inscription dans vos bases de données si les conditions requises ne sont pas remplies.

Toutes les occurrences de:
product_title ou product_category ou product_price ( même quand elles ont un $ avant) doivent être remplacées par les noms des champs que vous avez choisi pour votre formulaire.
Ex: Si vous avez un nom de champ comme “email”, ça ira comme ça:
$email=$_POST[‘email’]; etc.…

INSERT INTO product devrait être remplacé par INSERT INTO nomdelatable
( la table de la base de donnée dans laquelle vous voulez insérer vos données)

« Select a category » devra être remplacé par la valeur 0 du lien déroulant. Dans mon cas, mon menu déroulant n’a pas de valeur 0 alors j’ai essayé avec la valeur inscrite par default et ça a marché.



En violet foncé, c’est le code “inclus" qui permet la connections a la table sélectionnée de la base de données pour y inscrire les données.
Voila le contenu du fichier database_admin.php :

<?php
$servername = "localhost";
$username = "root";
$password = "inscrire mot de passe ici";
$dbname = "Inscrire nom de la base de donnee ici";

$conn = new mysqli ($servername, $username, $password, $dbname);

?>






All that I learned on web design, I learnt it because some people took the time to share their knowledge. This time, I give you a little bit of myself, and what I have learnt thanks to others.



It is a PHP code that works if you have already set up the connection with your MySQL database.
If you are working to the security of your online forms, if you want to work on it, or if you want to review some codes you have already made to make sure that their security is optimal, this code might help you. I am not saying that it is puncture proofed, but it is certainly harder to puncture than others.
I haven’t added the html “required” field, but you find it easily on the internet. On the following link is the reason why I haven’t added it:

http://indietrendsetter.blogspot.ca/2018/01/quand-les-aliens-debarqueront-je.html

This code does not include image uploads security which I am working on.
Below, you can see the pictures of the rendering.
I put a color code to make it easier to understand.

http://indietrendsetter.blogspot.ca/p/html-includeincludesdatabase.html




In yellow on top, there is the PHP « include » code that allows the connection to the database to retrieve datas for the « Select category » select box.
Here’s the content of the file database.php :

<?php
$con = mysqli_connect("localhost","root"," insert password here","insert database name here");
?>


In blue, there is the javascript code that allows the form validation on a smooth (nice)way. Inside the form html code, there is a line in blue which is necessary to activate the javascript code. This one: "onsubmit="return verify(this)"
The javascript code is a client side (browser) security validation, it is easy to hack as I told you before, this is why you need to also implement a server side form validation protocole in PHP.
In the Javascript, all the occurences of:
product_title or product_category or product_price  should be replaced by the field names you have chosen for your form

http://indietrendsetter.blogspot.ca/2018/01/quand-les-aliens-debarqueront-je.html




In green, there is the html code for the form itself which includes a php code for the select box.

In pink, there is the chosen method which is POST. The GET method is very easy to hack as I have told you before in a previous post.

http://indietrendsetter.blogspot.ca/2017/09/php-ces-portes-cachees-qui-font-de.html

In orange, there is a line of PHP code to secure the form, because some hackers can penetrate your codes by putting some special caracters into your Html.

In red, there is the PHP form validation code which takes over if the javascript code is hacked. It is the server side security that allows you stop unwanted data from entering your database. In this case, all I did was to forbid the inscription on data in the database if all the fields were not filled up. But if you work on it, you can precise your own conditions.
It is the server side security I was telling you about in a previous post on the subject. It stops the script and datas from entering your database if the required conditions are not filled.

All the occurences of:
product_title or product_category or product_price ( even when there is a $ in front of them) should be replaced by the field names you have chosen for your form.
Ex: if you have a field name “email”, it will go like this:
$email = $_POST['email]; etc….

INSERT INTO product should be replaced by INSERT INTO yourtablename
(the table you want to insert it into your database)

« Select a category » have to be replaced by the 0 value of the select box. In my case, my select box doesn’t have a 0 value, so I put the by default name and it worked.




In dark purple, it’s the include code that allows the connection to the selected database in order to enter datas.
Here is the content of the file database_admin.php :

<?php
$servername = "localhost";
$username = "root";
$password = "insert your password here";
$dbname = "insert your database name here";

$conn = new mysqli ($servername, $username, $password, $dbname);

?>