par stealth35 » 06 janv. 2010, 18:59
J'avais lu (au passage, livre très bien pour débuter et très peu onéreux) qu'il vaut mieux initialiser les variables avant pour des raisons de sécurité
par zeus » 06 janv. 2010, 18:50
Ce qui n'est pas grave en soit puisque ça ne change pas à l'exécution du programme et que cela veut tout simplement dire que c'est un avertissement, n'est ce pas ? Je crois qu'un avertissement dans un script peut générer un comportement bizarre plus loin. Quand on peut éviter, ce n'est que mieux.
Bien que ta correction soit juste, je ne vois pas en quoi son code "ne risque pas de fonctionner correctement". Ah oui pardon. J'avais fait surement une manip/instruction qui plantait le programme. Là en le relisant l'original, je me suis trompé à propos de ces lignes (modulo). Ce code génèrera de tout manière une erreur de type notice puisque la variable $pass n'est pas initialisée (cf. ton/ta intervention/réponse plus bas).
Bien que ta correction soit juste, je ne vois pas en quoi son code "ne risque pas de fonctionner correctement".
J'avais lu (au passage, livre très bien pour débuter et très peu onéreux) qu'il vaut mieux initialiser les variables avant pour des raisons de sécurité. Pour le shuffle, je suis tout à fait d'accord avec toi, il n'est pas nécessaire. J'ai hésité à le mettre. Je me suis dit que ça mangeait pas de pain et que la lettre sélectionnée serait prise avec un hasard plus grand (ce que fait microtime d'ailleurs si je ne m'abuse). Également, j'ai préféré la compréhension à l'optimisation pour king kong.
par niuxe » 06 janv. 2010, 18:43
setlocale(LC_TIME, 'fr_FR',"french"); $time6 = strftime("%d-%m-%Y-%H-%M-%S"); $time8 = strftime("%A %d %B"); $time9 = strftime("%H:%M");
date_default_timezone_set("Europe/Paris"); setlocale(LC_TIME, 'fr_FR',"french"); $time6 = strftime("%d-%m-%Y-%H-%M-%S"); $time8 = strftime("%A %d %B"); $time9 = strftime("%H:%M");
par niuxe » 06 janv. 2010, 18:30
Syntaxiquement, ce n'est pas une erreur, et je trouve cette écriture très pratique pour les tableaux de paramétrage, pour ne pas avoir à se soucier de la présence de la virgule à la valeur précédente
Au contraire, je trouve même l'optimisation sympathique. Et, pour ton code, je ne vois pas l'intérêt d'initialiser des tableaux vides pour faire un range derrière. L'initialisation des variables est une excellente pratique lorsque tu ne connais pas le contenu futur, mais là, tu gères de A à Z (joke) son contenu. De plus, je ne vois pas l'intérêt de faire un suffle() sur la liste des caractères autorisés si tu fait un array_rand() derrière Tout ceci pour dire qu'il faut prendre garde, un code peut paraitre abstrait, mais il répond à une logique, celle du développeur, et qu'avant de la critiquer, il faut la comprendre, pour savoir s'il est dans le droit chemin ou non
$fichier_image_autorise = array("gif","jpg","jpeg");
par thekingkong » 06 janv. 2010, 14:49
par zeus » 06 janv. 2010, 11:37
Le array $tabRegion comporte des clefs numériques dont je ne vois pas vraiment l'utilité. Enfin bref, il y a quand même une erreur à la fin : la virgule de trop.[/php]
Pour que ton générateur de mot de passe fonctionne remplacer : $chaine = "abBDEFcdefghijkmnPQRSTUVWXYpqrst23456789"; srand((double)microtime()*1000000); for($i=0; $i<8; $i++) { //mot de passe de 8 caractères $pass .= $chaine[rand()%strlen($chaine)]; // ça ne risque pas de fonctionner correctement } par : /* correction mot de passe 8 caractères */ $pass = ""; $caractere_password = array(); $caractere_numerique = array(); $caractere_majuscule = array(); $caractere_minuscule = array(); $caractere_numerique = range(0,9); $caractere_majuscule = range("A","Z"); $caractere_minuscule = range("a","z"); $caractere_password = array_merge($caractere_numerique,$caractere_majuscule,$caractere_minuscule); for($i = 0 ; $i < 8 ; $i++){ shuffle($caractere_password); $clef_aleatoire = array_rand($caractere_password); $pass .= $caractere_password[$clef_aleatoire]; }
$chaine = "abBDEFcdefghijkmnPQRSTUVWXYpqrst23456789"; srand((double)microtime()*1000000); for($i=0; $i<8; $i++) { //mot de passe de 8 caractères $pass .= $chaine[rand()%strlen($chaine)]; // ça ne risque pas de fonctionner correctement }
/* correction mot de passe 8 caractères */ $pass = ""; $caractere_password = array(); $caractere_numerique = array(); $caractere_majuscule = array(); $caractere_minuscule = array(); $caractere_numerique = range(0,9); $caractere_majuscule = range("A","Z"); $caractere_minuscule = range("a","z"); $caractere_password = array_merge($caractere_numerique,$caractere_majuscule,$caractere_minuscule); for($i = 0 ; $i < 8 ; $i++){ shuffle($caractere_password); $clef_aleatoire = array_rand($caractere_password); $pass .= $caractere_password[$clef_aleatoire]; }
par stealth35 » 06 janv. 2010, 11:03
par niuxe » 06 janv. 2010, 05:09
ca sert a quoi ton code ?, (y'a beaucoup de blabla)
comme dis Nolem l'attibut action est obligatoire dans form, lorsque qu'il est vide il ne prend pas la valeur de PHP_SELF, mais l'adresse en cour (qui peu etre differente, rewiting par exemple), et action attendant un type de chaine URI et une URI vide n'est pas une URI valide
$_POST = array_walk($_POST,"htmlspecialchars"); $region = $_POST['region']; $departement = $_POST['departement']; $categorie = $_POST['categorie']; //etc.
$tabRegion = array( 1=>'Alsace', 2=>'Aquitaine', 3=>'Auvergne', 4=>'Basse Normandie', 5=>'Bourgogne', 6=>'Bretagne', 7=>'Centre', 8=>'Champagne-Ardenne', 9=>'Corse', 10=>'Franche-Comte', 11=>'Haute-Normandie', 12=>'Ile-de-France', 13=>'Languedoc-Roussillon', 14=>'Limousin', 15=>'Lorraine', 16=>'Midi-Pyrenees', 17=>'Nord-Pas-de-Calais', 18=>'Pays-de-la-Loire', 19=>'Picardie', 20=>'Poitou-Charentes', 21=>'Provence-Alpes-Cote-d-Azur', 22=>'Rhone-Alpes');
par stealth35 » 05 janv. 2010, 16:08
par thekingkong » 05 janv. 2010, 16:05
e base de données pour creer tes pages a la volé, et non pas les creer direct sur le serveur imagine que demain tes envie de modifié le style de tes pages tu va devoir tout retaper a la main, en plus pas moyen de modifier l'annonce ni de la supprimer.
par stealth35 » 05 janv. 2010, 15:27
par thekingkong » 05 janv. 2010, 15:22
par stealth35 » 05 janv. 2010, 14:48
par niuxe » 05 janv. 2010, 13:48
Mais si!!! Ton script veut afficher des variables qui n'existent pas, si je ne me trompe pas, à l'envoi de ton formulaire tu dois avoir un message d'erreur disant que les index sont indéfinis, donc tu n'as qu'à remplacer les $_GET comme on t'as dit. Ensuite pour répondre à Nolem( ; je cherche pas la bagarre), action dans le form n'est pas réellement obligatoire, si on ne le met pas, ça a le même effet que $_SERVER['PHP_SELF'].
<form method="get" action="#"> <!-- etc. -->
Sa a l'air d'aller mieux pour ne pas dire que vous êtes des petit génie ^^. Halala le duel commence Jojo vs Nolem la quête du meilleur codeur :p ( merci a vous :d )[...]En tout cas, Chapeau bas, j'admire t'es connaissance ( au moins tu ne dépend de personne comme sa, et encore moins des escrocs ) bonne journée nolem, a ... a peut être ce soir si tu te connecte.
par thekingkong » 05 janv. 2010, 12:43