TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 2 | |
revan
|
# Posté le 25/04/2006 23:02:47 |
![]() Groupe : Membres |
Exellent ! Enfin, là, je ne trouve pas que tout soit très clair, mais je manque peut-être un peu de sommeil Je ne note donc pas pour l'instant, je relirais ce tuto demain
En tout cas, c'est vraiment interressant ! www.remuneurone.com: énigmes, paradoxes, illusions d'optique, cryptologie, débats scientifiques... etc... Sciences : Le temps : existence infinie ?, débat sur la notion de temps, de l'âme et de l'origine de l'univers. Illusion: Coca à plat, si si ! cette bouteille est peinte sur le sol !!! Paradoxe: Le paradoxe du barbier, à en perdre la tête ! Jeu: La règle mystère, un jeu bien sympa !
Allez non de non C'qu'boudiou j'hallucinions Par les baloches du cornu j'ai dû abusé du litron Cette olive on dirait qu'c'est la couille de Godzilla Va m'en falloir des endives Pour contenter c'te bête là Cryptologie : Le chiffrement par grille trouée, une cryptanalyse bien difficile ! |
danick
|
# Posté le 26/04/2006 00:15:04 |
|
Groupe : Membres |
Super tutoriel sa va être utile à plein de monde,
She Is Buying The Stairway To Heaven ... To Be A Rock And Not To Roll ... you can make your life with these sentences.... |
SuprazZz
|
# Posté le 26/04/2006 11:07:06 |
|
! Absent pendant 2 ans ! Groupe : Membres |
Une vraie merveille !
Très claire la plupart du temps, dans le pire des cas, on regarde l'exemple pour comprendre
Un tuto à mettre entre toutes les mains de ceux qui veulent améliorer leurs connaissances et leur esprit logique ! |
Anonyme
|
# Posté le 26/04/2006 19:47:07 |
|
Groupe : |
Une petite faute, tu as oublié de fermer le if dans l'exemple sur A, B, C ect (à la fin). |
Loetheri
|
# Posté le 26/04/2006 20:44:59 |
|
Sans question, pas de réponse Groupe : Membres |
L'idée y est et est, je trouve, importante.
Cependant, on ne fait que rarement des SELECT * FROM [...]. De plus, on ne joue que rarement avec des WHERE où la variable sera autre chose qu'un "simple" nombre. Question d'optimisation ;-) Une autre idée est de remettre le binaire en nombre arabe à la fin. Cependant, je ne sais pas si c'est plus rapide ou léger. |
alex.hitman
|
# Posté le 27/04/2006 16:42:52 |
|
Groupe : Membres |
Un tuto vraiment utile, et bien expliqué !
Un petit 19
|
Diti
|
# Posté le 27/04/2006 17:58:41 |
Manchot empereur![]() Groupe : Membres |
Je mets 20, je ne savais pas que le binaire était si facile en PHP !
|
infotoubib
|
# Posté le 27/04/2006 20:36:50 |
![]() Groupe : Membres |
Merci pour vos encouragements !
J'ai corrigé quelques petites erreurs (excès de fermeture de parenthèses), mais avant de faire revalider, n'hésitez pas à me signaler celle que vous voyez.... Loetheri : - Le SELECT * était pour ne pas écrire tous les champs de droits, mais j'ai bien précisé que ce premier exemple n'était pas une bonne solution... - WHERE Pseudo='$Pseudo' : il est nécessaire lors de la connexion, dans la mesure où les formulaires de connexion (y compris dans le siteduzero) demande que l'on saisisse son pseudo et non son ID. C'est donc la seul information que l'on ait au moment de vérifier le mot de passe et les droits de l'utilisateur. Cela-dit, ta remarque est bonne : une fois l'utilisateur identifié, il vaut mieux se servir de sont ID que de son Pseudo en cas de requète ultérieure.
- On peut tout à fait utiliser le notation décimale avec les nombres binaire, et c'est ce que je fais souvent jusqu'à 2048, mais au-delà, c'est vraiment, vraiment plus simple d'utiliser la notation hexadécimale ! 0x1000 | 0x2000 | 0x4000 | 0x8000 = 0xF000 Je suis incapable de calculer de tête la même opération en notation décimale !! Diti : Oui, le binaire n'est pas compliqué une fois que l'on a compris. Un petit problème avec le binaire en PHP : les opérateurs de bits foncionnent non seulement sur les nombres mais aussi sur les chaînes de caractères, d'où l'obligation de s'assurer que les variables seront bien prises en compte comme nombre. La première fois que je les ai utilisés, j'ai fait comme en C, et celà ne foncionnait pas... jusqu'à ce que je rajoute des (int)... (J'en met peut-être trop, mais c'est plus sûr...) http://si2ra.ouvaton.org : Si2Ra, un CMS francophone pensé pour les intranets |
alex.hitman
|
# Posté le 27/04/2006 23:02:02 |
|
Groupe : Membres |
J'ai une remarque, concernant la dernière réponse du QCM.
On a ceci : Code : PHP ((int)$lDroits & (GER_MEMBRES|GER_BASE)) ^ (GER_MEMBRES|GER_BASE)
Imaginons GER_MEMBRES qui est 10 et GER_BASE qui est 01 (en binaire). Si l'utilisateur à les 2 droits, $lDroits vaut 11. Donc faisons : Code : PHP ((int)$lDroits & (GER_MEMBRES|GER_BASE)) ^ (GER_MEMBRES|GER_BASE)
équivaut donc à : Code : PHP (11 & (10|01)) ^ (10|01) =
(11 & 11) ^ 11 = 11 ^ 11 = 00 Donc, si l'utilisateur a les droits, l'accès lui est refusé ?? Y a-t-il une erreur dans le tutorial, ou bien je me suis trompé ? |
infotoubib
|
# Posté le 28/04/2006 20:42:26 |
![]() Groupe : Membres |
alex.hitman :
Très bonne remarque ! (Et tu as réussi à me déstabiliser pendant 30 secondes...)
Le résultat de $Mon_operation est bien = à 0 (FAUX) si l'on a tous les droits, et vrai dans le cas contraire. Or la boucle est Code : PHP // Vérification des droits de l'utilisateur connecté
if ( $Mon_operation ) { // Accès refusé exit ('Désolé, mais je suis le seul à pouvoir accéder à cette page !'); } donc Si le $Mon_operation = 0, je n'entrerai pas dans la boucle. J'aurais donc accès à la page dont l'affichage ne commence qu'ensuite. Si $Mon_operation est VRAI (tous les autres cas), j'entrerai dans la boucle et serait expulsé de la page.... Personnellement, j'utilise une routine similaire (un peu plus complexe) dans un fichier entete.php, que je require sur toutes mes pages d'un extranet. En l'absence des droits nécessaires, le script est interrompu (un peu plus proprement, mais il fallait faire court pour le cours). http://si2ra.ouvaton.org : Si2Ra, un CMS francophone pensé pour les intranets |
alex.hitman
|
# Posté le 28/04/2006 21:07:45 |
|
Groupe : Membres |
Citation : infotoubib Si le $Mon_operation = 0, je n'entrerai pas dans la boucle
je suis vraiment étourdit !
Bien évidemment qu'il faut que $Mon_operation ne retourne pas 0 (FALSE) pour que la condition soit bonne ! edit : par contre, quel doit être le type du champ Mysql dans lequel on doit insérer les données en hexadécimal ? Parce que insérer du FF ou 0xFF dans de l'intéger, ça ne fonctionne pas chez moi... VARCHAR ferait-il l'affaire ? |
infotoubib
|
# Posté le 29/04/2006 10:11:31 |
![]() Groupe : Membres |
Citation : alex.hitman quel doit être le type du champ Mysql dans lequel on doit insérer les données en hexadécimal ?
En fait, nous travaillons avec des entiers non signés. La notation hexadécimal est seulement un moyen plus pratique d'écrire pour nous. Peut importe le fait que le nombre soit restitué en décimal lorsque nous regardons la tables dans PHPmyadmin... Dans ma requète pour créer la table, j'utilise : `Droits` INT UNSIGNED NOT NULL DEFAULT 0 Pour travailler en notation hexadécimale dans une requète, en dehors du cadre d'un champ de table, avec MySql: Citation : Manuel MySql 4 In MySQL 4.1 (and in MySQL 4.0 when using the --new option), the default type of a hexadecimal value is a string. If you want to ensure that the value is treated as a number, you can use CAST(... AS UNSIGNED):
mysql> SELECT 0x41, CAST(0x41 AS UNSIGNED); -> 'A', 65 Mais ceci dépasse probablement ta question... http://si2ra.ouvaton.org : Si2Ra, un CMS francophone pensé pour les intranets |
alex.hitman
|
# Posté le 29/04/2006 16:20:50 |
|
Groupe : Membres |
Merci, cela répond tout à fait à ma question.
Mais je pense que je vais tout de même insérer les données dans un champs VARCHAR. En effet, peut m'importe que Mysql traite ces données comme des string, tant que PHP lui les traite en tant qu'integer. Il me suffit donc de convertir les données récupérées depuis Mysql en integer. Et le tour est (normalment) joué ! |
Awaken
|
# Posté le 03/05/2006 19:24:26 |
![]() Groupe : Membres |
Excellent tuto
The greatest trick the Devil ever pulled was convincing the world he didn't exist. |
Chahine
|
# Posté le 07/05/2006 20:43:50 |
![]() Groupe : Membres |
Très instructif ! Avec un excellent exemple d'application pour les droits d'utilisateurs que je compte bien exploiter quand j'aurai créé un espace membre !
20/20 >> des tutos comme celui-ci, on aimerait en voir (encore) plus souvent ! |
DHKold
|
# Posté le 08/05/2006 17:16:56 |
Ex-Admin![]() Groupe : Membres |
Très bien, mais j'ai une ou deux remarques:
Il serait très interressant, je pense, de parler aussi des opérateur de décalage à gauche et à droite (<< et >>) qui peuvent se trouver utiles
Pour le type de champs, un entier non signé me semble plus adpaté qu'un VARCHAR, puisqu'on doit y stocker un nombre. On pourrait aussi utiliser BLOB, ou CHAR en BINARY, mais alors il faudrait utiliser pack et unpack, à moins d'enregistrer un nombre en texte (Ce qui est un peu stupide )
|
finalbob
|
# Posté le 11/05/2006 12:44:20 |
|
youplaboum! Groupe : Membres |
excellent...
je suis en TSSI, et je me suis régalé à lire ce tuto! bravo! |
Piwaï
|
# Posté le 19/05/2006 09:56:03 |
|
Why can't we be friend ? Groupe : Membres |
Interessante la mise à jour...
Mais... Ya quelque chose de pas logique dans ton dernier code : Regarde bien la variable $Options. Elle ne sert strictement à rien !! Bizarre... En effet, tu la modifie, mais tu ne t'en sers pas... Il doit y avoir une erreur quelque part... Je pense que c'est ici : Code : PHP Il faudrait transformer ca en : Code : PHP Voila !! C'est bien sinon
@++ Piwaï http://www.piwai.info "La violence est le dernier refuge de l'incompétence". Isaac Asimov, Fondation. Créateur de 2H4U : Too Hard For You et découvrez aussi BisouLand. |
infotoubib
|
# Posté le 19/05/2006 13:27:22 |
![]() Groupe : Membres |
Merci Piwaï pour le repérrage de mon erreur.
J'ai corrigé et demandé la revalidation. Et pourtant je l'avais relu ! (mais plus à la recherches des fautes d'orthographe (mon point faible, donc il doit en rester) que des erreurs logiques...
http://si2ra.ouvaton.org : Si2Ra, un CMS francophone pensé pour les intranets |
lapras123
|
# Posté le 20/05/2006 20:11:45 |
|
Groupe : Membres |
j'ai meme pas lu le tuto en entier, c'est trop compliqué pour moi
|
NarTy
|
# Posté le 21/05/2006 18:54:24 |
|
Je t'aime amèrement ! Groupe : Bannis |
Franchement , c'est super, j'ai decouvert plein de chose merci !
Venez jouer
|
Chahine
|
# Posté le 05/06/2006 11:17:00 |
![]() Groupe : Membres |
Excellent ce petit complément sur les décalages de bits !
Pour aller plus loin, pourquoi ne pas proposer l'exercice corrigé suivant : On souhaite réaliser un tableau comportant pour chaque membre sa situation par rapport à toutes les options possibles ; en plus d'afficher les droits actuels, ce tableau devra permettre de les modifier directement (on utilisera pour cela des checkboxes au lieu des mentions oui/non). Voici ce que j'ai réalisé par exemple : editer_membre.phpCode : PHP <form action = "liste_membres.php" method = "post">
<tr> <?php $i = 0; while ($i < NOMBRE_DROITS) { ?> <td> <input type = "checkbox" name = "DroitNumero<?php echo $i + 1; ?>" <?php if ((int)$membres['Droits'] & 1) { echo 'checked = "checked"'; } (int)$membres['Droits'] >>= 1; $i++; ?>/> </td> <?php } ?> <input type = "hidden" name = "IDMembreAModifier" value = "<?php echo $_POST['IDMembre']; ?>"/> <td><input type = "submit" value = "Modifier"/></td> </tr> </form> liste_membres.phpCode : PHP if (isset($_POST['IDMembreAModifier']))
{ $droits = 0; $i = $j = 1; while ($i <= NOMBRE_DROITS) { if ($_POST['DroitNumero'.$i] == 'on') { $droit_actuel = 1; while ($j < $i) { (int)$droit_actuel <<= 1; $j++; } $j = 1; $droits += (int)$droit_actuel; } $i++; } $requete = mysql_query('UPDATE Membres SET Droits = \''.$droits.'\' WHERE ID = \''.$_POST['IDMembre'].'\''); } |
Bill Gates 2
|
# Posté le 02/07/2006 12:09:17 |
Linuxien a son heure![]() Groupe : Membres |
Je connaissait déjà le principe mais ce tuto m'a permis de débuguer mon code de gestion des grade !
Merci beaucoup, tout est clair et facile !
Vive Linux |
Quadehar
|
# Posté le 15/11/2006 22:46:44 |
![]() Groupe : Membres |
Excellent tuto, vraiment bien expliqué et clair Je l'avais déjà survolé sans vraiment y accorder de l'importance, comme je n'en avais à l'époque pas besoin, mais aujourd'hui, je l'ai lu d'un boût à l'autre pour pouvoir gérer facilement les consoles de jeu possédées par chaque membre (un bit par console ).
Merci encore, je ne savais même pas que les opérateurs de bit existaient, la première fois que je suis tombé sur ce tutorial
Wii Motion - Site sur la Wii proposant de nombreuses news, des dossiers, des previews, des tests et un forum. |
Dutiona
|
# Posté le 05/01/2007 21:15:11 |
Vie pour être heureux !![]() Groupe : Membres |
19.
J'ai tout compris, c'est le principal. Merci pour ce tuto !
Bisous, Nyu Toutes mes sources ! Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder. Framework in use: Seraframework (my own one). In Microeisti staff. |
Zimm i48
|
# Posté le 16/01/2007 13:04:34 |
Parés à virer ?![]() Groupe : Membres |
Excellent ! Jamais vu un tuto aussi clair (sauf peut-être ceux de M@teo )
Ca mérite bien son 20/20. Tu m'as permis par la même occasion de comprendre (grâce à la question 4 du QCM) comment faisaient les fonctions (de la SDL notamment dans le cours de C de Mateo) pour savoir quels flags on leur avait envoyé : Code : C SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER);
Rendez-vous sur Test-Pedago.fr, le site d'un projet libre de logiciels pour s'entraîner sur les tables de multiplication et les conjugaisons. Wikiversité |
WildKiller
|
# Posté le 04/02/2007 15:30:13 |
|
Ya un truc Groupe : Membres |
Vraiment super 20/20!!
J'ai appliqué ce principe à mon site pour les gestions des admins et modos. Le problème c'est quand je veux modifier un grade, pour le mettre en admin: Code : PHP $new_add['droits'] |= 0x4000; // Modification des droits, on donne le droit d'admin
// Ensuite on affiche et il me retourne 16384 Je ne comprends vraiment pas pourquoi j'ai peut-etre loupé un truc Encore merci pour ce tuto
|
infotoubib
|
# Posté le 04/02/2007 17:37:24 |
![]() Groupe : Membres |
Citation : WildKiller Le problème c'est quand je veux modifier un grade, pour le mettre en admin:
Code : PHP $new_add['droits'] |= 0x4000; // Modification des droits, on donne le droit d'admin
// Ensuite on affiche et il me retourne 16384 Je ne comprends vraiment pas pourquoi j'ai peut-etre loupé un truc C'est tout à fait normal, puisque 0x4000 (notation hexadécimal) équivaut à 16384 (notation décimale, qui est affichée par défaut). Pour afficher la valeur d'une variable en hexadécimal, il faut utiliser la fonction dechex() ou si tu veux un affichage précédé de 0x, la fonction maison suivante : Code : PHP // fonction pour afficher en hexadécimal:
function hexadec ($Nombre) { echo '0x', dechex($Nombre); } http://si2ra.ouvaton.org : Si2Ra, un CMS francophone pensé pour les intranets |
Torajio Bangani
|
# Posté le 12/02/2007 23:42:37 |
![]() Groupe : Membres |
Franchement, j'ai rarement vu un aussi bon tuto que celui-ci
Il a l'avantage d'être clair avec de bons exemples, et il a une réelle utilité (j'ai vu pas mal de tutos qui ne font que d'expliquer comment en appliquer un autre )
PS : Je mets 18/20 puisque je trouve que les exemples, bien que bien choisis, manquent pour les opérations comme celle que je veux faire et quelqu'autres. a creative world. - Be creative to be different. WIP Session 3D - Scène d'intérieur d'un autre temps... |
GuGus963
|
# Posté le 25/03/2007 21:08:57 |
Utilisez du libre !![]() Groupe : Membres |
Ce tuto est excellentissime Je donne 20
Benjamin Franklit a dit : “ Ceux qui sont prêts à sacrifier une liberté essentielle pour acheter une sûreté passagère, ne méritent ni l'une ni l'autre.” Il n'a pas connu OpenBSD. |
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
Fil RSS |
XHTML 1.0 |
CSS 2.0
Édité par Simple IT SARL :
Nous contacter
| Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
773 Zéros connectés |
6 requêtes |
0.0656s (0.0519s)
