| La programmation | |
|
+36pouale meteskis Choco-sama Dragongaze13 Wraithslayer/HD Kotomine Naqqah kilam1110 wolftag valentinos garywiss6 AristA Sogeking Chroniker Falco Empty AlexRE Awakeing Grade Mod Godboy coco Arvester Blizzard Krok Shakuras Raspberyl Slump Antheor guigui kun Quelqu'un krosk Toshibashin Relm Ccd-ToF NeoKakashi 40 participants |
|
Auteur | Message |
---|
Mod Super Maker Lv 17
Nombre de messages : 647
| Sujet: Re: La programmation Sam 23 Fév 2008, 21:15 | |
| Argh. Normal que ce soit dur à trouver avec un code qui déconne XD. Je veux bien la réponse du compilateur quand tu tentes de lui faire avaler ça ^^.
Erreurs : - Ton prototype de la fonction password est déclaré dans le main et ne correspond pas à la fonction plus bas dans le code (surcharge). Si ce n'est pas le prototype, alors il y a un int en trop au début de phrase. - Absence de return dans la fonction password alors que tu indoques int en retour. - Fonction password appellée sans paramètre.
Des trucs pas beaux: - Variable globale ok alors que tu as le return de password qui pourrait servir. - Les accents dans du code affiché en console >_<.
A part ça, en théorie c'est 19976424 qui devrait dévérouiller le code.
@ Shakuras : Pas d'inquiétudes, on en est encore loin ^^. | |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 23 Fév 2008, 21:17 | |
| Bouh KoZzY, puisque c'est ça, 70 PO à tout les membres qui ont tenté de trouver la solution :p ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Sam 23 Fév 2008, 21:29 | |
| Et 140 pour moi pour le debug gratuit . | |
|
| |
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
| Sujet: Re: La programmation Sam 23 Fév 2008, 21:41 | |
| - Mod a écrit:
- Argh. Normal que ce soit dur à trouver avec un code qui déconne XD. Je veux bien la réponse du compilateur quand tu tentes de lui faire avaler ça ^^.
Erreurs : - Ton prototype de la fonction password est déclaré dans le main et ne correspond pas à la fonction plus bas dans le code (surcharge). Si ce n'est pas le prototype, alors il y a un int en trop au début de phrase. - Absence de return dans la fonction password alors que tu indoques int en retour. - Fonction password appellée sans paramètre.
Des trucs pas beaux: - Variable globale ok alors que tu as le return de password qui pourrait servir. - Les accents dans du code affiché en console >_<.
A part ça, en théorie c'est 19976424 qui devrait dévérouiller le code.
@ Shakuras : Pas d'inquiétudes, on en est encore loin ^^. Ben il serait temps que tu copies colles le code dans un compilateur et que tu vérifies par toi même que ce dernier fonctionne très bien! La surchage de fonction en C++ c'est sensiblement différent du C, ici la signature n'est pas la même et ce que j'ai fait est tout à fait valable. (en plus ça change absolument rien qu'il soit déclaré dans le main ou pas) Fonction password appelée sans paramètres car elle n'en a pas besoin ^^ J'ai mis ça uniquement pour tromper sinon la réponse aurait été trop évidente Bref, compile et test avant de me prendre pour un programmeur manchot qui code avec des moufles ^^ Tu as juste pour la réponse par contre Ps: Par contre merci pour les accents, j'oublie à chaque fois :p | |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Dim 24 Fév 2008, 09:17 | |
| Juste pour être sûr, j'ai compilé, et ça me donne : - Code:
-
error C4716: 'password' : must return a value - Citation :
- (en plus ça change absolument rien qu'il soit déclaré dans le main ou pas)
Ca change que ta fonction password ne sera accessible que dans le contexte local. Ce qui rend ta fonction inutilisable ailleurs que dans le main autant directement effectuer les opérations dans le main sans passer par une fonction. Enfin, j'ai peut-être tort de voir ça plus comme un "vrai" code qu'un code pour une énigme ^^. | |
|
| |
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
| Sujet: Re: La programmation Dim 24 Fév 2008, 13:22 | |
| Mod... Dis toi que si j'avais voulu coder un truc pareil réellement, un bête if avec "19976424" aurait suffit... Oui tu as tort de voir ça comme un "vrai" code ^^ Cependant, tu peux me dire avec quoi tu compiles stp, car chez moi j'ai pas d'erreur, et ça me lourderait assez de faire des erreurs pareilles sans le savoir à cause d'un compilateur qui me dit "oui Amen" .. Tu vois ce que je veux dire? | |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Dim 24 Fév 2008, 19:38 | |
| J'ai compilé sous Visual Studio 9 qui m'a donné l'erreur ci-dessus et je viens de tenter sous GCC pour lequel je n'ai aucun problème, ce qui me surprend assez... o_o | |
|
| |
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
| Sujet: Re: La programmation Dim 24 Fév 2008, 20:00 | |
| Je viens de re-tester (codes::block) ça marche très bien Bizarre..Faudrait trouver d'où vient le problème ... Si je vais faire un exécutable on verra. | |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Mer 27 Fév 2008, 22:00 | |
| Solution trouvée par hasard. Lorsque l'on programme en C suivant les normes ISO, on indique nécessairement le return. Apparemment Visual Studio 9 oblige à programmer suivant ces normes, contrairement à GCC (marrant de voir ça sachant qu'avec Internet Explorer et Firefox c'est l'inverse, le premier ne respecte pas les normes, le second si...). Après coup je me rend compte que j'ai appris à programmer en C suivant la norme, ce qui explique que je prenne l'absence de return pour une erreur. | |
|
| |
Godboy Maker Lv 6
Nombre de messages : 146 Age : 31
| Sujet: Re: La programmation Jeu 28 Fév 2008, 09:39 | |
| Wouw effacez ce post svp >_>
Dernière édition par Godboy le Jeu 28 Fév 2008, 16:30, édité 1 fois | |
|
| |
Empty Mangeur de manettes Lv 65
Nombre de messages : 16363 Age : 38
| Sujet: Re: La programmation Jeu 28 Fév 2008, 13:58 | |
| - Mod a écrit:
- Solution trouvée par hasard.
Lorsque l'on programme en C suivant les normes ISO, on indique nécessairement le return. Apparemment Visual Studio 9 oblige à programmer suivant ces normes, contrairement à GCC (marrant de voir ça sachant qu'avec Internet Explorer et Firefox c'est l'inverse, le premier ne respecte pas les normes, le second si...). Après coup je me rend compte que j'ai appris à programmer en C suivant la norme, ce qui explique que je prenne l'absence de return pour une erreur. Ah ok, désolé je t'avais mal jugé, j'ai cru que tu essayais de faire le malin en me décrédibilisant avec des arguments peu fondés ^^ Merci pour l'info, je tâcherai de suivre "la norme" à l'avenir (note que pour ceux qui n'ont pas trouvés, vous n'avez pas d'excuse puisqu'il n'y a pas besoin d'exécuter le code pour connaitre la réponse :p) | |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Ven 29 Fév 2008, 20:56 | |
| Yay, me revoila, f'sait longtemps tient J'ai un problème pour la création de mon forum. J'aimerais ouvrir une page admin, que si le membre en a l'autorisation. Donc j'ai une table "forum_membres" Dedans y'a le nom, le pass, etc... et le rang, contenu dans "membre_rang". Si le lvl est 4, c'est que je suis admin. Donc moi, j'ai fait ça pour afficher la page: - Code:
-
$requete2 = mysql_query(' SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo'].''or die (mysql_error()));
$data2 = mysql_fetch_assoc($requete2);
if ($data2['membre_rang'] = 4) {
//J'affiche ma page admin
}
else {
//T'a pas le droit d'être la
}
Le problème, c'est que la variable $data2['membre_rang'] est toujours égal à 4, que je soit connecté ou pas :/ Help ! ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: La programmation Ven 29 Fév 2008, 21:04 | |
| Tu es sûr que tes SESSIONS ont disparu ? Parfois les SESSIONS sont présentes dans un cookie appelé PHPSESSID, ça peut venir de là...
Sinon regarde si ça ne vient pas de la fonction "mysql_fetch_assoc", moi j'utilise toujours "mysql_fetch_array", il y a une légère différence. ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Ven 29 Fév 2008, 21:42 | |
| J'ai utiliser "mysql_fetch_array" et ça n'a rien changer. C'est aussi ce que je pensais pour les sessions, c'est chiant :/ Du coup, je vais trouver quelqu'un pour voir si il peut se connecter. Merci Edit : Bon, bin un ami a moi qui n'est pas inscrit sur le forum arrive à accéder au panneau d'admin, et chez lui, la variable $data est aussi égal à 4 ^^" (alors qu'elle est reservé au admin), peut-être une erreur SQL ? ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:04 | |
| Change cette ligne : - Code:
-
if ($data2['membre_rang'] = 4) par : - Code:
-
if ($data2['membre_rang'] == 4) Le = simple est l'affectation, le == correspond au test. Erreur casse-pieds n°1.^^ - Citation :
- Ah ok, désolé je t'avais mal jugé, j'ai cru que tu essayais de faire le malin en me décrédibilisant avec des arguments peu fondés ^^
Ah non, pas du tout, c'était juste une constatation ^^. Ca ne m'intéresse pas vraiment de faire le malin/descendre les gens ou autre. Il y en a déjà suffisamment qui le font :evil: .
Dernière édition par Mod le Sam 01 Mar 2008, 11:10, édité 2 fois | |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:06 | |
| Justement, c'est l'erreur que je viens de corriger a l'instant, en suivant un cours du SDZ ^^" Seulement, maintenant que je soit admin ou pas, je ne peux pas accèder au site ^^" Ma variable $data vaut rien du tout :/ Ca pourrait venir de ma requête avec la session ? Merci ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
Invité Invité
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:18 | |
| Pourquoi tu mets pas direct ceci : - Code:
-
if (mysql_fetch_assoc($requete2) = 4) ? |
|
| |
Mod Super Maker Lv 17
Nombre de messages : 647 Age : 36
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:21 | |
| Il y a aussi ce morceau qui semble un peu étrange : - Code:
-
$requete2 = mysql_query(' SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo'].''or die (mysql_error())); C'est la première fois que je vois un die dans la requête même, je ne vois pas bien quel peut être le résultat recherché, sachant que le mysql_error() ne peut jamais être valable, vu qu'il est un argument de la requête (en fait, tu appelles le retour d'erreur avant que la fonction pouvant générer l'erreur n'ait été appelée). Essaye plutôt ça : - Code:
-
$requete2 = mysql_query(' SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo']) or die (mysql_error()); | |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:22 | |
| Mex, tu t'es mit au PHP ? oO
Sinon, bah je préfère bien détailler mes formules, au moins je suis sur de pas faire d'erreur ^^" Mais bon j'en fait quand même :p
Edit pour Mod : Bah du coup maintenant, ma page n'affiche plus rien du tout ^^" ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
Invité Invité
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:27 | |
| En fait hum, la formation que tu as faite au début je la comprends pas, je mettrais ça comme ça : - Code:
-
$requete2 = "SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo'].''or die (mysql_error()))";
$data2 = mysql_query($requete2); |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:48 | |
| Ta requête est fausse :/
Bon, j'ai retiré le or die, c'est lui qui empêchait d'afficher les données...
Du coup, retour au point de départ, ma variable $data est toujours vide :/ ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
Invité Invité
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:51 | |
| Ok, vérifie l'orthographe de tes membre_rang forum_membres membre_pseudo et vérifie ta ponctuation parce qu'elle est illisible |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 01 Mar 2008, 11:52 | |
| - Citation :
- Ok, vérifie l'orthographe de tes membre_rang forum_membres membre_pseudo
Elle est juste. - Citation :
Vérifie ta ponctuation parce qu'elle est illisible Lol ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: La programmation Sam 01 Mar 2008, 16:54 | |
| - Mod a écrit:
-
- Code:
-
if ($data2['membre_rang'] = 4) par :
- Code:
-
if ($data2['membre_rang'] == 4) Le = simple est l'affectation, le == correspond au test. Erreur casse-pieds n°1.^^ Ah zut, comment j'ai pu louper ça !? C'est vraiment une erreur de base. or die (mysql_error()) n'est pas faux, il permet d'afficher précisément l'erreur de la requête quand il y en a une. ^^ Seulement ici il est mal placé. Il faut le placer comme ça : - Code:
-
mysql_query("") or die (mysql_error()); (en dehors de la parenthèse de mysql_query, quoi) Sinon ton problème est toujours le même Falcossj !!! :evil: Quand est-ce que tu vas comprendre ?? Regarde tes apostrophes ! Dans ta parenthèse mysql_query tu utilises des apostrophes normales > ' pour tout le code qui est à l'intérieur. Mais le problème se trouve dans le fait que le "pseudo" de $_SESSION['pseudo'] est entouré lui aussi d'apostrophes !! Du coup le serveur pense que tu sors de la requête, et ça foire. Tu as deux façons de "bien" faire. Celle là (en gardant des apostrophes partout) : - Code:
-
mysql_query(' SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION[\'pseudo\'].'') or die (mysql_error()); Ou celle là (en utilisant des guillemets et des apostrophes) : - Code:
-
mysql_query(" SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo']."") or die (mysql_error()); Essaye donc ce code là : - Code:
-
$requete2 = mysql_query(" SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '.$_SESSION['pseudo']."") or die (mysql_error());
$data2 = mysql_fetch_assoc($requete2);
if ($data2['membre_rang'] == 4) {
//J'affiche ma page admin
}
else {
//T'a pas le droit d'être la
}
Et ça devrait aller... :whah: ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
| |
Falco Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 13628 Age : 33
| Sujet: Re: La programmation Sam 01 Mar 2008, 16:56 | |
| Oui ça marche ^^" J'avais du mal à comprendre pour les guillemets, mais la c'est bon.
(enfait ça marche depuis ce matin, je me suis rendu compte moi même de l'erreur).
Merci. ____________ "Listen now, you don't understand That's not the point of Christmas land"
| |
|
| |
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: La programmation Sam 01 Mar 2008, 17:00 | |
| Non ! Je suis bête ! Ta variable $_POST['pseudo'] est une chaine de caractère et non pas un nombre !! Donc là ça se complique encore plus, tu es obligé de rajouter des guillemets après - Code:
-
WHERE membre_pseudo = !! (quelle idée de vérifier avec le pseudo et pas simplement avec l'id du membre...) La bonne requête est donc : - Code:
-
mysql_query(' SELECT membre_rang FROM forum_membres WHERE membre_pseudo = \''.$_SESSION[\'pseudo\'].'\'') or die (mysql_error()); Ou alors (en utilisant des guillemets et des apostrophes) : - Code:
-
mysql_query(" SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '".$_SESSION['pseudo']."'") or die (mysql_error()); Et le bon code (et là je pense que c'est vraiment le bon), est : - Code:
-
$requete2 = mysql_query(" SELECT membre_rang FROM forum_membres WHERE membre_pseudo = '".$_SESSION['pseudo']."'") or die (mysql_error());
$data2 = mysql_fetch_assoc($requete2);
if ($data2['membre_rang'] == 4) {
//J'affiche ma page admin
}
else {
//T'a pas le droit d'être la
} ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
| |
Contenu sponsorisé
| Sujet: Re: La programmation | |
| |
|
| |
| La programmation | |
|