Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
Raphael
# 16 Oct 2007 - 11:10:28
Citer
Mangez des kiwiz !
Administrateur
10370 Posts
Bonjour à tous,

Depuis l'arrivée des Kiwiz, les membres proposent un peu partout dans le forum leur candidature pour la rédaction de tutoriels, articles ou billet.

Voici donc un sujet unique pour regrouper toutes ces propositions et pour en discuter.

Je modifierai la liste en fonction des nouvelles propositions.

Propositions actuelles :
- FlorentG : "HTTP" (à préciser)
- Oryo : "Faire un menu avec onglets en CSS"
- Victor BRITO : "le CMS PluXML"
- Necromantik : "négociation de contenu" (à préciser)
- Sylvain : "comment se faire contacter sur son site internet"
- Thomas D. : "Les CMS Plume et/ou Dotclear 1" (à préciser)
Modifié par Raphael (16 Oct 2007 - 11:10)

La FAQ répond à 90% des questions de ce forum. En général, 5 min de recherches suffisent...

http://blog.goetter.fr 
^
Florent V.
# 17 Oct 2007 - 09:58:35
Citer
On va manger des chips.
Modérateur
11436 Posts
Sujet épinglé pour éviter de le perdre en deuxième page du salon. cligne

http://www.covertprestige.net 
^
carobee
# 24 Oct 2007 - 09:19:33
Citer
241 Posts
Arg ! Zut ! Moi qui hésitais entre faire un tuto sur les onglets ou faire un tuto sur Dotclear ! Il faut que je trouve une autre idée biggrin

(ces Kiwiz nous rendront tous fous !)

Informaticienne, mais je me soigne

http://www.carobee.com 
^
Necromantik
# 24 Oct 2007 - 18:52:56
Citer
244 Posts
Bonsoir,

vu que je m'ennuyais j'ai pondu un petit quizz, qu'en pensez-vous ? Faites vos remarques et vérifiez que je n'aie pas fait d'erreur biggol .

Sujet: PHP
Niveau: Difficile (je penses, à vous de confirmer)
Les réponses sont à la fin.

Question 1:
On évalue le code suivant:
$kiwi = 'vert';
$manger = &$kiwi;
$manger = array();
$manger['kiwi'] = $kiwi;

Qu'avons-nous pour le dîner ?


A. beaucoup beaucoup de kiwi.
B. Un kiwi.
C. du vert !
D. rien.




Question 2:
Sachant que l'on veut retrouver une portion de texte sous la forme crochet gauche, 2 à 6 caractères alphanumériques ou souligné, crochet droit avec preg_match, quelle expression utiliser:


A. "/\\[[A-Za-z0-9]{2,6}\\]/"
B. '`\[\w{2,6}\]`'
C. '#\[[A-Z0-9_]{2,6}\]#iA'
D. "`\[\w{2,6}\]`"
E. A et B
F. B et D




Question 3:
Soit query() un fonction faisant une requête SQL et escape() une fonction effectuant un échappement des caractères potentiellement dangereux. Quelle requête est sécurisée de manière optimale ?


A. query('SELECT * FROM `table` WHERE champ1='.$a.' AND champ2='.$b);
B. query('SELECT * FROM `table` WHERE champ1='.escape($a).' AND champ2='.escape($b));
C. query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND champ2="%d"', escape($a), escape($b));
D. query(escape('SELECT * FROM `table` WHERE champ1='.$a.' AND champ2='.$b));
E. query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND champ2="%d"', escape($a), $b);




Question 4:
On interprète le code suivant:
$a = 'ki' || 'wi';
$b = 'ki' or 'wi';

Que donne var_dump($a, $b); ?


A. bool(true) bool(true).
B. string(2) "ki" bool(true).
C. bool(true) string(2) "ki".
D. 1 1.
E. ki wi !




Question 5:
Au cas ou j'utilise la fonction header() de php afin d'envoyer un code 404, puis exit(), qu'est-ce qui est affiché (aucun envoi n'a encore été fait au client) ?


A. Une page blanche avec "HTTP/1.1 404 Not Found".
B. la page normale.
D. Une erreur PHP.
E. La page d'erreur de mon site.
F. Une page blanche.




Question 6:
Ma page index.php contient le code suivant:
$a = 'a'.file_exists(__FILE__);
$a1 = 'wiki';
$a2 = 'kiwi';
echo ${$a};

Qu'est-ce qui s'affiche si on y accède ?


A. Une page blanche.
B. kiwi.
D. wiki.
E. Une erreur PHP.
F. Aucune des solutions précédentes.




Question 7:
Quel est l'effet de l'utilisation de la structure return(); dans un fichier inclus (sans être dans une fonction) ?


A. Retour au script parent sans exécuter la suite du fichier.
B. Une erreur PHP.
C. Arrêt du script à la manière de exit().
D. Aucun, il est ignoré.
E. Cela dépend s'il a été inclus avec require() ou include().




Question 8:
Que donne le code suivant en PHP5:
$b = false;
$a = unset($b);
var_dump($a);



A. NULL
B. Une erreur PHP.
C. bool(true)
D. bool(false)
E. ressource(#)




Question 9:
PHP offre deux approches pour analyser un fichier XML, quelle est leur principale différence ?


A. L'une commence par la fin du fichier, l'autre par le début.
B. L'une charge toute l'arborescence du fichier en mémoire alors que l'autre travail sur un flux.
C. L'une supporte l'ouverture de fichiers distant, pas l'autre.
D. L'une utilise une approche objet, pas l'autre.
E. Il n'y a qu'une façon d'analyser directement un fichier xml.




Question 10:
Laquelle de ces affirmation concernant PHP6 est fausse:


A. Le type string est destiné à disparaître
B. La syntaxe "goto label" sera utilisable.
C. Une classe fille pourra avoir plusieurs classes mères.
D. On pourra utiliser: foreach($a as $key => list($value1, $value2)).
E. Les espaces de nom feront leur apparition.
F. Les directives magic_quotes_gpc et register_global disparaîtront.







Réponses:
1) A, la simple assignation d'un tableau vide ne supprime pas la référence, il faudrait utiliser unset() avant. Manger contient donc:
array(1) {
["kiwi"]=>
array(1) {
["kiwi"]=>
array(1) {
["kiwi"]=>
*RECURSION*
}
}
}

Soit un joli paquet de kiwi murf .


2) B, tous les autres masques sont invalides:
A. Il manque le souligné.
C. L'option "A" force la validation de tout le texte et non pas une portion.
D. Les guillemets doubles provoquent l'interprétation des backslash et les crochets ne sont plus échapés pour preg_match().


3) E, les autres requêtes ne sont pas optimales:
A. Il n'y a aucun échappement.
B. Les variables à insérer sont bien échappées mais elle ne sont pas entourées de guillemets.
C. Il est inutile d'échapper la 2eme variable, en effet %d force son interprétation comme un nombre;
D. L'échappement de toute la requête la rend totalement inutile.


4) C, l'opérateur "||" ayant une précédence supérieure à "=" et "or" une précédence inférieure on peut lire le code ainsi:
$a = ('ki' || 'wi');
($b = 'ki') or 'wi';



5) F, le header est bien envoyé mais sans passer par le serveur ce qui fait que le gestionnaire censé afficher la page d'erreur 404 n'est pas déclenché.


6) D, $a contient 'a1', donc ${$a} correspond à ${a1} soit 'wiki';


7) A, et si un paramètre est ajouté il peut être récupérer comme retour de include();


8) B, unset() n'a aucune valeur de retour depuis PHP4, tenter d'utiliser le retour provoque donc une erreur d'analyse.


9) E, seul simpleXML offre une manière de lire directement un fichier, les autres fonctions travaillent sur des chaînes de caractères.


10) C, toutes les autres affirmations sont justes (le type "string" deviendra "unicode").

ob_end_flush();

^
Julien Royer
# 30 Oct 2007 - 13:26:13
Citer
Coin coin
Modérateur
3537 Posts
Salut,

Ce quiz a l'air très bien, même si je ne suis pas assez calé en PHP pour confirmer que toutes les réponses sont OK.

^
Raphael
# 06 Nov 2007 - 12:27:19
Citer
Mangez des kiwiz !
Administrateur
10370 Posts
Bon, vu que ça n'a pas l'air de bouger, je valide ce Quiz et te félicite pour tes 10 kiwiz gagnés.
Merci pour ta participation, Necromantik smile

EDIT : le quiz est en ligne : http://quiz.alsacreations.com/?quiz=14

EDIT 2 : il semblerait qu'il y'ait quelques petites contestations possibles (notamment au niveau des formulations), rapportées par Dew qui est encore déçu par son score langue
Modifié par Raphael (06 Nov 2007 - 13:41)

La FAQ répond à 90% des questions de ce forum. En général, 5 min de recherches suffisent...

http://blog.goetter.fr 
^
dew
# 06 Nov 2007 - 13:49:29
Citer
Administrateur
653 Posts
En effet rolleyes

Très rapidement, voici mes contestations de mauvais perdant :
1) La question est formulée de manière obscure. On ne sait si on doit analyser le contenu final de $manger ou non, qui est en soi vide à la fin et ne contient (à mon sens) pas "beaucoup beaucoup de kiwis" mais "beaucoup beaucoup de vide".

3) Optimal != sécurisé...

4) Il serait bien de préciser quel code est envoyé en argument grâce à header().

5) Il vaudrait mieux écrire return, sans ();

9) J'ai considéré les deux approches par "avec simpleXML" et "sans simpleXML". Il n'y a donc pas qu'une façon d'analyser un fichier XML, et le mot "directement" mériterait d'être précisé.

^
Necromantik
# 06 Nov 2007 - 20:47:57
Citer
244 Posts
Youpie des retours biggol

Réponses à Dew dans l'ordre:
1) Je te l'accorde, le but était une formulation humoristique mais la clarté en pâtit. Je vais tenter de la reformuler d'une manière plus limpide.

3) Là je comprends pas la remarque. La question est "sécurisée de manière optimale", donc sécurisée complètement mais sans en faire trop, ce qui au mieux ne sert à rien au pire est contre-productif.

4) Il s'agit en l'occurrence de "HTTP/1.1 404 Not Found"

5) Effectivement, à reporter directement sur le site.

9) Oui, c'est aussi ce que j'ai considéré. Et, sauf erreur de ma part, il n'existe pas d'autre moyen que simpleXML pour lire directement un fichier.
Par directement j'entends en une seule instruction. Mais effectivement la question est peut-être tirée par les cheveux, je vais travailler à une reformulation également.

ob_end_flush();

^
Necromantik
# 10 Nov 2007 - 10:53:13
Citer
244 Posts
Voilà une reformulation des deux questions peu claires, qu'en pensez-vous ?


Question 1:
On évalue le code suivant:
$kiwi = 'vert';
$fruit = &$kiwi;
$fruit = array();
$fruit[] = $kiwi;

Que contient $fruit ?

A. Infiniment de rien.
B. Un kiwi.
C. Du vert.
D. La variable n'est pas définie.



Question 9:
PHP possède deux analyseurs XML, quelle est leur principale différence ?

A. Il n'y a qu'un analyseur XML.
B. L'un commence par la fin du fichier, l'autre par le début.
C. L'un ignore les erreurs, l'autre arrête l'analyse.
D. L'un nécessite une DTD pour travailler, l'autre pas.
E. L'un charge toute la chaine en mémoire, l'autre travail sur un flux.



Réponses:
1) A, la simple assignation d'un tableau vide ne supprime pas la référence, il faudrait utiliser unset() avant. $fruit contient donc:
array(1) {
[0]=>
array(1) {
[0]=>
array(1) {
[0]=>
*RECURSION*
}
}
}


9) E, il est possible d'utiliser simpleXML ou les fonctions xml. SimpleXML charge l'intégralité de la chaine en mémoire et construit l'arborescence. SAX (le moteur utiliser par les fonctions xml), lui lit la chaine par petits morceaux (flux).

ob_end_flush();

^
dew
# 21 Nov 2007 - 12:55:03
Citer
Administrateur
653 Posts
Ca me semble tout bon cligne

^
Raphael
# 21 Nov 2007 - 13:10:34
Citer
Mangez des kiwiz !
Administrateur
10370 Posts
Hop, mis à jour smile

La FAQ répond à 90% des questions de ce forum. En général, 5 min de recherches suffisent...

http://blog.goetter.fr 
^
FlorentG
# 21 Feb 2008 - 10:03:18
Citer
862 Posts
Bonjour !

Alors, avec 4 mois d'absences, je donne quelque nouvelles confused confused J'ai malheureusement pas trop de temps pour le tuto "HTTP", même si j'y réfléchi assez souvent. Je sais pas trop quand est-ce que je pourrais me lancer dessus, je préfère ne pas trop donner de date pour l'instant.

A la base, ça part d'un constat qu'énormément de gens ont des problèmes lors de développement de sites : problème de cache, de cookies, de session, de redirection, mauvaise utilisation des méthodes (GET ou POST), etc. Tous ces problèmes pouvant être résolus facilement avec une bonne connaissance du protocole HTTP et de divers outils d'analyse. Ca reste un standard assez oublié (plus que l'xhtml et les css je trouve langue ).

Sinon la principale difficulté est au niveau du contenu du tuto : jusqu'où on va. Sachant que c'est assez lié au développement, doit allez jusqu'à parler de PHP et d'exemple de codes pour gérer l'HTTP ?

On peut expliquer l'HTTP sous toutes ses coutures, mais le mec qui a son erreur "header aldready sent" en PHP, ça va pas trop l'aider. Pourtant la réponse y est, c'est d'abord les headers ensuite le contenu. Manque juste le parallèle entre les deux.

Qu'en pensez-vous ? D'autres gens seraient chaud à travailler dessus ? (Si j'ai quelqu'un qui fait ça en même temps, j'arriverai sans problème à trouver le temps nécessaire)

Plus tu pédales moins vite, moins t'avances plus vite.

msn 
^
Igor
# 08 May 2008 - 20:55:07
Citer
Modérateur
5102 Posts
up

Bonjour à tous,

La rubrique des tutoriels Gestionnaires de contenu (CMS) semble bloquée depuis son lancement avec CMS Made Simple et SPIP. C'est dommage bawling .

Il doit bien se trouver un membre d'Alsacréations pour profiter de son long week-end pour nous proposer une présentation d'un CMS. Certains s'étaient même avancés murf .

Y-a vraiment personne pour présenter Dotclear 1 et/ou 2, Wordpress, EzPublish, Joomla etc. ?

http://www.igor-web.net/ 
^

référencesLes références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org

Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe

Nikozen : Hébergement - Réalisation : Alsacreations.fr

Powered by Phedio v3.8 beta © dew
Contacter l'administrateur - 17.9 ms - Charte