mon premierscript PHP explication+ script+ erreur query

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 : mon premierscript PHP explication+ script+ erreur query

Re: mon premierscript PHP explication+ script+ erreur query

par Perine » 03 févr. 2013, 19:52

J'ai dit au minimum md5. sha1 est exactement aussi problématique que md5 avec un salage.
Pour le ==, je me souvenais que ça comparait de façon insensible à la casse, mais on dirait que ce n'est pas le cas. Mais vu que tu sembles vouloir me contredire : essaie "00" == "0".

Re: mon premierscript PHP explication+ script+ erreur query

par gbu » 03 févr. 2013, 19:07

1)D'accord avec perine sauf sur 2 points : n'utilise pas md5 mais sha1 + salt.
2) bonjour == boNjOur retourn false (pas besoin des === qui va vérifier en plus le type et non pas la casse)

Re: mon premierscript PHP explication+ script+ erreur query

par cafe88 » 01 févr. 2013, 12:14

je pense au vu des explication que vous m avez données, qu'il faut avoir de bonne base, qu'il ne faut pas croire le premier qui sur "you tub"e vous propose des explications qui sont en fait erronées, du coup je suis embrouillé, je vais donc recommencer tout depuis le début, pourriez vous me suggérer quelque chose de sérieux pour acquérir de bonne base et ne plus avoir l'air très ridicule en postant :oops:

merci beaucoup pour le temps que vous avez consacré à me répondre

Re: mon premierscript PHP explication+ script+ erreur query

par Perine » 01 févr. 2013, 11:40

Tout d'abord, je t'ai déjà demandé de mettre ton code dans les balises PHP pour qu'il ne faille pas s'arracher les yeux à le lire et aussi d'acquérir les bases pour faire du PHP. Parce que là, au moindre problème, tu vas reposer une question.

Ton code a plusieurs problèmes et je vais commencer par celui qui cause ton erreur :

- Tu n'envoies pas la requête au serveur de base de données. Il manque mysql_query().
- Tu utilises l'extension MySQL qui est dépréciée (dépassée) à partir de PHP5.5 et sera retirée en PHP5.6 ou PHP6. C'est pour ça que tu devrais t'informer le plus tôt possible sur mysqli ou PDO.
- Tu utilises htmlentities(), pourquoi ? htmlentities() est une fonction qui échappe les caractères spéciaux en HTML. La base de données ne parle pas l'HTML, l'HTML n'est donc pas dangereux en base de données.
- Ton code est vulnérable aux injections SQL. Tu n'échappes par correctement les entrées des utilisateurs.
- Tu ne vérifies pas que le formulaire a bien été envoyé. isset($_POST['submit']) est un bon début, mais ne te garantis pas que le formulaire n'a pas été manipulé. Tout champ du formulaire (à part les checkbox, mais ça c'est autre chose) doit aussi aller dans le isset. Dans ton cas : isset($_POST['username'], $_POST['password'], $_POST['repeatpassword']).
- Tu vérifies que les mots de passe sont égaux, mais avec == ce n'est pas une vérification stricte. "bonjour" et "boNJoUR" seraient tous les deux acceptés. Il faut comparer avec ===.
- Tu sauves le mot de passe en clair dans la base de données. Il faudrait que tu le hash - au minimum à l'aide de md5() avec un salage soit aléatoire, soit compliqué.
- Tu te connectes à la base de données uniquement si les mots de passe sont similaires. Le reste du code est quand même exécuté.

Quelques conseils supplémentaires :
- N'omets pas de mettre les accolades après les if/else/while etc. Elles rendent ton code plus lisible et surtout moins buggé.
- Active les messages d'erreur de ton script avec error_reporting(-1); au début de ton script.

mon premierscript PHP explication+ script+ erreur query

par cafe88 » 01 févr. 2013, 09:58

je crrée une base SQL JOUEUR avec 3 champs
ID
username
password

je souhaite que les personnes puissent d’inscrire dans la base

pour cette partie le script semble fonctionné

je souhaite ensuite remplir cette base
là j'arrive pas comprendre, la base ce remplit pas je dois avoir un soucis mais je séche

je me permet de vous mettre le code :D ne vous moquer pas de moi je fais mes premier pas

<?php

if(isset($_POST['submit']))
{
$username=htmlentities(trim($_POST['username']));
$password=htmlentities(trim($_POST['password']));
$repeatpassword=htmlentities(trim($_POST['repeatpassword']));
if($username&&$password&&$repeatpassword)
{
if($password==$repeatpassword)
$connect=mysql_connect('localhost','root','') or die('Error');
mysql_select_db('joueur');

$query=("INSERT INTO users VALUES('','$username','$password')");
die("inscription terminée <a href='login.php'>connectez</a>vous");

}else echo "les deux password doivent être identique";
}else echo "Veuillez saisir tous les champs";


?>

<form method="POST" action="register.php">
<p>Votre pseudo:</p>
<input type="text" name="username">
<p>Votre password:</p>
<input type="password" name="password">
<p>Repetez votre password:</p>
<input type="password" name="repeatpassword"><br/><br/>
<input type="submit"value="S incrire" name="submit">
</form>



Si une âme charitable peut m'aider sur ce coup là :priere: reconnaissance éternelle