ERREUR PHP HELPP
Fermé
Lusitano25
Messages postés
3
Date d'inscription
mercredi 19 mai 2010
Statut
Membre
Dernière intervention
21 mai 2010
-
21 mai 2010 à 11:03
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 26 mai 2010 à 10:36
hack_net Messages postés 783 Date d'inscription lundi 5 mars 2007 Statut Membre Dernière intervention 5 juin 2014 - 26 mai 2010 à 10:36
A voir également:
- ERREUR PHP HELPP
- Erreur 0x80070643 - Guide
- Retour a la ligne php ✓ - Forum PHP
- Code erreur s05-05 - Forum Téléviseurs
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
- Erreur 10016 epson - Forum Imprimante
3 réponses
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2010 à 11:20
21 mai 2010 à 11:20
Pas la peine de faire un double post
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
21 mai 2010 à 11:27
21 mai 2010 à 11:27
Dans ton form, tu met ton " .$_SERVER['PHP_SELF']." en html et non en php ! il faudrait l'écrire "<?php echo $_SERVER['PHP_SELF']; ?>", mais bref, tu n'en a pas besoin puisque c'est sur la même page, laisse vide ;)
Prends ce code et dis moi s'il marche :
A+
Prends ce code et dis moi s'il marche :
<html> <head> <link rel="stylesheet" type="text/css" href="../css/style.css"> <img src="../images/header.jpg"> <script language="javascript" src="script/script.js"></script> <script language="javascript" src="script/mootools-1.2.4-core-jm.js"></script> </head> <?php include("login.php"); $connexion=mysql_connect("$db_host","$db_log","$db_pwd"); mysql_select_db($db_name) or die ("problème de connexion"); extract($_POST); // cela converti les $_POST['var'] en $var ;) plus simple que ta liste de ouf XD et ça évite les erreurs ;) if(isset($valider)){ $reql= mysql_query"INSERT INTO ansf_articles VALUES ('$code','$designation','$type','$couleur','$taille','$prix','$qte')"); $req2= mysql_query"UPDATE ansf_articles SET art_valeur = art_prix * art_qte WHERE art_code=".$code.""); if($req1 && $req2){ // si pas d'erreur dans les exécutions de requette mysql_close($connexion); echo '<img src="../images/validation.jpg">Article créé'; } else{ echo "Erreur lors de l'exécution des requettes"; } } elseif(isset($_POST['new'])){ echo '<img src="../images/new.jpg"> Nouvel Ajout'; } ?> <body> <div id="corp"> <div id="haut"> <table width="100%" height="100%"><tr><td id="image" height="100%" width="100%"></td></tr></table> </div> <div id="menu_gauche"><br/> <span id="accueil" onMouseOver="affichage('accueil');" onMouseOut="affichage2('accueil');"><a href="../accueil.php">Accueil</a></span><br/><br/> <span id="creer" onMouseOver="affichage('creer');" onMouseOut="affichage2('creer');"><a href="php/creation_art.php">Créer un article</a></span><br/><br/> <span id="vente" onMouseOver="affichage('vente');" onMouseOut="affichage2('vente');"><a href="php/vente_art.php">Ventes d'aricle</a></span><br/><br/> <span id="achat" onMouseOver="affichage('achat');" onMouseOut="affichage2('achat');"><a href="php/achat_art.php">achats fournisseurs</a></span><br/><br/> <span id="stock" onMouseOver="affichage('stock');" onMouseOut="affichage2('stock');"><a href="php/stockmanif.php">Stock Manifestation</a></span><br/><br/> <span id="fiche" onMouseOver="affichage('fiche');" onMouseOut="affichage2('fiche');"><a href="php/stock.php">Fiche de stock</a></span><br/><br/> <span id="client" onMouseOver="affichage('client');" onMouseOut="affichage2('client');"><a href="php/clients.php">Liste des clients</a></span><br/><br/> <span id="fourn" onMouseOver="affichage('fourn');" onMouseOut="affichage2('fourn');"><a href="">Liste des fournisseurs</a></span> </div> <div id="centre"> <FORM method="post" action=""> <FIELDSET> <LEGEND align=top> <b>Créer un article</b> </LEGEND><br> <u>Code</u> : <INPUT name="code" type="text" size="40"> <u>Designation</u> : <INPUT name="designation" type="text" size="40"><br><br> <u>Type</u> : <SELECT name="type"> <OPTION VALUE="manches courtes">Manches courtes </OPTION> <OPTION VALUE="manches longues">Manches longues</OPTION> </SELECT> <u>Couleur</u> : <SELECT name="couleur"> <OPTION VALUE="bleu marine">Bleu marine</OPTION> <OPTION VALUE="blanc">Blanc</OPTION> </SELECT><br><br> <u>Taille</u> : <SELECT name="taille"> <OPTION VALUE="S">S</OPTION> <OPTION VALUE="M">M</OPTION> <OPTION VALUE="L">L</OPTION> <OPTION VALUE="XL">XL</OPTION> <OPTION VALUE="XXL">XXL</OPTION> <OPTION VALUE="XXXL">XXXL</OPTION> </SELECT> <u>Prix</u> : <INPUT name="prix" type="text" size="40"> <u>Quantité</u> : <INPUT name="qte" type="text" size="40"><br><br> <input type="submit" name="valider" value="Ajouter" /> <input type="submit" name="new" value="Nouveau" /><br/><br/> </FIELDSET> </FORM> </div> </div> </body> </html>
A+
avion-f16
Messages postés
19241
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
16 mars 2024
4 495
21 mai 2010 à 18:07
21 mai 2010 à 18:07
Je déconseille la fonction extract() : n'importe quel personne mal intentionnée peut facilement modifier le formulaire, donc y ajouter ces propre champs, avec le nom d'une variable qu'il pourrait donc modifier.
Pour le problème :
Pour le problème :
<?php include("login.php"); $connexion=mysql_connect("$db_host","$db_log","$db_pwd"); mysql_select_db($db_name) or die ("problème de connexion"); $code = $_POST['code']; $designation = $_POST['designation']; $type = $_POST['type']; $couleur = $_POST['couleur']; $taille = $_POST['taille']; $prix = $_POST['prix']; $qte = $_POST['qte']; // ...Tu fais appeles aux variables $_POST['code'], $_POST['designation'], ... sans même vérifier si elles existent. Utilise la fonction isset() qui retourne true si la variable passée en premier argument est définie (is set).
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
25 mai 2010 à 09:41
25 mai 2010 à 09:41
Ah tien, comment pourrait-on hacker un site qui utilise extract ? Une faille ? Je ne l'avais pas vu, merci de le signifier...
avion-f16
Messages postés
19241
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
16 mars 2024
4 495
25 mai 2010 à 17:03
25 mai 2010 à 17:03
Imagine que tu aies une variable $maxUploadSize qui contient la taille maximum autorisée en octect des fichiers uploadés via un formulaire.
Une personne mal-intentionnée pourrait ajouter un champ ayant "maxUploadSize" comme name (c'est facilement faisable : Sous Firefox, avec Firebug, sous Chrome avec les outils de développement intégrés) :
Avec la fonction extract($_POST), $maxUploadSize sera réécrite car il existe une clée "maxUploadSize" dans l'array $_POST.
Pour tester :
Forcément il faut connaître le nom de la variable, mais, par exemple, si tu vois qu'un site a été réalisé avec le tutoriel du SdZ, le codeur a certainement utilisé les mêmes nom de variables. Ou bien alors tu peux tester plus nom différents.
Une personne mal-intentionnée pourrait ajouter un champ ayant "maxUploadSize" comme name (c'est facilement faisable : Sous Firefox, avec Firebug, sous Chrome avec les outils de développement intégrés) :
<input type="hidden" name="maxUploadSize" value="99999999999" />
Avec la fonction extract($_POST), $maxUploadSize sera réécrite car il existe une clée "maxUploadSize" dans l'array $_POST.
Pour tester :
<?php $maxUploadSize = 1048576; // 1Mo echo 'Variable $maxUploadSize avant extract() : '.$maxUploadSize.'<br/>'; extract($_GET); echo 'Variable $maxUploadSize après extract() : '.$maxUploadSize.'<br/>' . '<br/>' . 'Pour modifier la variable, ajoutez « ?maxUploadSize=<em>valeur</em> » à la fin de l\'url.<br/>'; ?>Ici, je le fais avec $_GET mais ça fonctionne aussi avec $_POST.
Forcément il faut connaître le nom de la variable, mais, par exemple, si tu vois qu'un site a été réalisé avec le tutoriel du SdZ, le codeur a certainement utilisé les mêmes nom de variables. Ou bien alors tu peux tester plus nom différents.
hack_net
Messages postés
783
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
5 juin 2014
51
26 mai 2010 à 10:36
26 mai 2010 à 10:36
Ah ouai dis donc ! Faut y faire gaffe à ce truc !