PHP Flashcards

1
Q

fonction rechercher et remplacer

A

$ma_variable = str_replace(‘b’, ‘p’, ‘bim bam boum’);

echo $ma_variable;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

js: par quoi est encadrée une chaîne de caractères?

A

Par des apostrophes ou des guillemets, cela a peu d’importance.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

js: récupérer la valeur d’un poste de tableau

A

il suffit de spécifier l’index voulu, entre crochets:

myArray[1] = ‘Clarisse’;
alert(myArray[1]); // Affiche : « Clarisse »

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Tester si le fichier a bien été envoyé

A

if (isset($_FILES[‘monfichier’]) AND $_FILES[‘monfichier’][‘error’] == 0)
{
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

js: Que contiennent les objets?

A

un constructeur ; des propriétés ; des méthodes
var myString = ‘Ceci est une chaîne de caractères’; // On crée un objet String
alert(myString.length); // On affiche le nombre de caractères, au moyen de la propriété « length »
alert(myString.toUpperCase()); // On récupère la chaîne en majuscules, avec la méthode toUpperCase()

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Les boutons d’options

A

Aimez-vous les frites ?
input type=”radio” name=”frites” value=”oui” id=”oui” checked=”checked” label for=”oui” Oui /label
input type=”radio” name=”frites” value=”non” id=”non” label for=”non” Non /label
Comme vous pouvez le voir, les deux boutons d’option ont le même nom (« frites »). C’est très important, car ils fonctionnent par groupes : tous les boutons d’option d’un même groupe doivent avoir le même nom. Cela permet au navigateur de savoir lesquels désactiver quand on active un autre bouton du groupe. Il serait bête en effet de pouvoir sélectionner à la fois « Oui » et « Non ».

Pour pré-cocher l’un de ces boutons, faites comme pour les cases à cocher : rajoutez un attribut checked=”checked”. Ici, comme vous pouvez le voir, « Oui » est sélectionné par défaut.

Dans la page cible, une variable$_POST[‘frites’]sera créée. Elle aura la valeur du bouton d’option choisi par le visiteur, issue de l’attribut value. Si on aime les frites, alors on aura$_POST[‘frites’] = ‘oui’.

Il faut bien penser à renseigner l’attribut value du bouton d’option car c’est lui qui va déterminer la valeur de la variable.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

règles de coding

A

PSR (PHP Standard Recommandations)

outil de contrôle: PHPCS-Fixer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

parcourir un tableau

A

for, foreach, print_r

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Valider l’upload du fichier

A

Si tout est bon, on accepte le fichier en appelant move_uploaded_file().
Cette fonction prend deux paramètres :

le nom temporaire du fichier (on l’a avec $_FILES[‘monfichier’][‘tmp_name’]) ;

le chemin qui est le nom sous lequel sera stocké le fichier de façon définitive. On peut utiliser le nom d’origine du fichier$_FILES[‘monfichier’][‘name’]ou générer un nom au hasard.

Je propose de placer le fichier dans un sous-dossier « uploads ».
On gardera le même nom de fichier que celui d’origine. Comme$_FILES[‘monfichier’][‘name’]contient le chemin entier vers le fichier d’origine (C:\dossier\fichier.pngpar exemple), il nous faudra extraire le nom du fichier. On peut utiliser pour cela la fonctionbasename qui renverra juste « fichier.png ».

// Testons si le fichier a bien été envoyé et s’il n’y a pas d’erreur
if (isset($_FILES[‘monfichier’]) AND $_FILES[‘monfichier’][‘error’] == 0)
{
// Testons si le fichier n’est pas trop gros
if ($_FILES[‘monfichier’][‘size’] <= 1000000)
{
// Testons si l’extension est autorisée
$infosfichier = pathinfo($_FILES[‘monfichier’][‘name’]);
$extension_upload = $infosfichier[‘extension’];
$extensions_autorisees = array(‘jpg’, ‘jpeg’, ‘gif’, ‘png’);
if (in_array($extension_upload, $extensions_autorisees))
{
// On peut valider le fichier et le stocker définitivement
move_uploaded_file($_FILES[‘monfichier’][‘tmp_name’], ‘uploads/’ . basename($_FILES[‘monfichier’][‘name’]));
echo “L’envoi a bien été effectué !”;
}
}
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Le formulaire d’envoi de fichier

A

Dès l’instant où votre formulaire propose aux visiteurs d’envoyer un fichier, il faut ajouter l’attribut enctype=”multipart/form-data”à la balise form.

form action=”cible_envoi.php” method=”post” enctype=”multipart/form-data”

Grâce à enctype, le navigateur du visiteur sait qu’il s’apprête à envoyer des fichiers.

Maintenant que c’est fait, nous pouvons ajouter à l’intérieur du formulaire une balise permettant d’envoyer un fichier. C’est une balise très simple de type input type=”file” . Il faut penser comme toujours à donner un nom à ce champ de formulaire (grâce à l’attribut name) pour que PHP puisse reconnaître le champ par la suite.

form action=”cible_envoi.php” method=”post” enctype=”multipart/form-data”
Formulaire d’envoi de fichier :
input type=”file” name=”monfichier”
input type=”submit” value=”Envoyer le fichier”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

js: création et affichage du tableau nicks

A

var nicks = [ ], // Création du tableau vide nick;
while (nick = prompt(‘Entrez un prénom :’)) { // Si la valeur assignée à la variable « nick » est valide (différente de « null ») alors la boucle s’exécute
nicks.push(nick); // Ajoute le nouveau prénom au tableau
}
if (nicks.length > 0) { // On regarde le nombre d’items
alert(nicks.join(‘ ‘)); // Affiche les prénoms à la suite
} else {
alert(‘Il n'y a aucun prénom en mémoire !’);
}
nous vérifions si le tableau contient des items, avec la condition nicks.length > 0. Le contenu du tableau est alors affiché avec la méthode join(), qui permet de spécifier le séparateur. Car en effet, si nous avions fait alert(nicks), les prénoms auraient été séparés par une virgule.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

fonction écrire en minuscule

A

$chaine = ‘COMMENT CA JE CRIE TROP FORT ???’;
$chaine = strtolower($chaine);
echo $chaine;

(ou strtoupper pour l’inverse)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

fonction mélanger les lettres

A

$chaine = ‘Cette chaîne va être mélangée !’;
$chaine = str_shuffle($chaine);
echo $chaine;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

js: ajouter des items à un objet tableau

A

ici, pas de méthode push() car elle n’existe tout simplement pas dans un objet vide, il faudrait pour cela un tableau. En revanche, il est possible d’ajouter un item en spécifiant un identifiant qui n’est pas encore présent. Par exemple, si nous voulons ajouter un oncle dans le tableau :
family[‘uncle’] = ‘Didier’; // « Didier » est ajouté et est accessible via l’identifiant « uncle »
Ou bien sous cette forme :
family.uncle = ‘Didier’; // Même opération mais d’une autre manière

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

js: confirmer une action

A

Afin d’aller un petit peu plus loin dans le cours, nous allons apprendre l’utilisation d’une fonction bien pratique :confirm()! Son utilisation est simple : on lui passe en paramètre une chaîne de caractères qui sera affichée à l’écran et elle retourne un booléen en fonction de l’action de l’utilisateur ; vous allez comprendre en essayant :
if (confirm(‘Voulez-vous exécuter le code JavaScript de cette page ?’)) {
alert(‘Le code a bien été exécuté !’);
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

créer le bouton de validation du formulaire

A

input type=”text” name=”prenom”
input type=”submit” value=”Valider”

le champ input type=”submit” permet de créer le bouton de validation du formulaire qui commande l’envoi des données, et donc la redirection du visiteur vers la page cible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Vérifier l’extension du fichier

A

La fonction pathinfo renvoie un array contenant entre autres l’extension du fichier dans$infosfichier[‘extension’]. On stocke ça dans une variable$extension_upload.

Une fois l’extension récupérée, on peut la comparer à un tableau d’extensions autorisées (un array) et vérifier si l’extension récupérée fait bien partie des extensions autorisées à l’aide de la fonction in_array().

if (isset($_FILES[‘monfichier’]) AND $_FILES[‘monfichier’][‘error’] == 0)
{
// Testons si le fichier n’est pas trop gros
if ($_FILES[‘monfichier’][‘size’] <= 1000000)
{
// Testons si l’extension est autorisée
$infosfichier = pathinfo($_FILES[‘monfichier’][‘name’]);
$extension_upload = $infosfichier[‘extension’];
$extensions_autorisees = array(‘jpg’, ‘jpeg’, ‘gif’, ‘png’);
if (in_array($extension_upload, $extensions_autorisees))
{

            }
    }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

les opérations

A

+ - / * et %(donne le reste d’une division ex: 7 % 3 => 1) (modulo)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

js: interaction avec l’utilisateur

A
var userName = prompt('Entrez votre prénom :');
alert(userName); // Affiche le prénom entré par l'utilisateur
var start = 'Bonjour ', name, end = ' !', result;

name = prompt(‘Quel est votre prénom ?’);
result = start + name + end;
alert(result);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

js: code conditionnel autre que if else

A
var drawer = parseInt(prompt('Choisissez le tiroir à ouvrir (1 à 4) :'));
switch (drawer) {
    case 1:
        alert('Contient divers outils pour dessiner : du papier, des crayons, etc.');
    break;
case 2:
    alert('Contient du matériel informatique : des câbles, des composants, etc.');
break;

case 3:
    alert('Ah ? Ce tiroir est fermé à clé ! Dommage !');
break;

case 4:
    alert('Contient des vêtements : des chemises, des pantalons, etc.');
break;

default:
    alert("Info du jour : le meuble ne contient que 4 tiroirs et, jusqu'à preuve du contraire, les tiroirs négatifs n'existent pas."); }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Ls champs cachés

A

supposons que vous ayez besoin de « retenir » que le pseudo du visiteur est « Mateo21 ». Vous allez taper ce code :
input type=”hidden” name=”pseudo” value=”Mateo21”
À l’écran, sur la page web on ne verra rien. Mais dans la page cible, une variable$_POST[‘pseudo’] sera créée, et elle aura la valeur « Mateo21 » !

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

js: un tableau, codage:

A

Le contenu du tableau se définit entre crochets, et chaque valeur est séparée par une virgule. Les valeurs sont introduites comme pour des variables simples, c’est-à-dire qu’il faut des guillemets ou des apostrophes pour définir les chaînes de caractères :

var myArray_a = [42, 12, 6, 3];
var myArray_b = [42, 'Sébastien', 12, 'Laurence'];
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Vérifier si une valeur existe dans l’array

A

$fruits = array (‘Banane’, ‘Pomme’, ‘Poire’, ‘Cerise’, ‘Fraise’, ‘Framboise’);

if (in_array(‘Myrtille’, $fruits))
{
echo ‘La valeur “Myrtille” se trouve dans les fruits !’;
}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

définir un formulaire

A

balise
method=get pour récupérer les données de l’url
method=post pour récupérer es données dans le formulaire
action=définit le formulaire cible

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Le traitement de l’envoi en PHP

A

le fichier a été envoyé sur le serveur mais il est stocké dans un dossier temporaire.
Il faut le contrôler avant de l’accepter avec move_uploaded_file

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Les cases à cocher

A

input type=”checkbox” name=”case” id=”case”
label for=”case” Ma case à cocher /label
L’utilisation de la balise label n’est pas obligatoire mais je la recommande fortement. Elle permet d’associer le libellé à la case à cocher qui a le même id que son attribut for, ce qui permet de cliquer sur le libellé pour cocher la case. On y gagne donc en ergonomie.

Là encore, on donne un nom à la case à cocher via l’attribut name(ici : « case »). Ce nom va générer une variable dans la page cible, par exemple$_POST[‘case’].

Si la case a été cochée, alors$_POST[‘case’] aura pour valeur « on ».

Si elle n’a pas été cochée, alors$_POST[‘case’]n’existera pas. Vous pouvez faire un test avecisset($_POST[‘case’])pour vérifier si la case a été cochée ou non.

Si vous voulez que la case soit cochée par défaut, il faudra lui rajouter l’attribut checked=”checked”. Par exemple :
input type=”checkbox” name=”case” checked=”checked”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Vérifier la taille du fichier

A

if (isset($_FILES[‘monfichier’]) AND $_FILES[‘monfichier’][‘error’] == 0)
{
// Testons si le fichier n’est pas trop gros
if ($_FILES[‘monfichier’][‘size’] <= 1000000)
{

    } }
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

js: utilisation des objets littéraux dans une variable

A

les fonctions, avec return, ne savent retourner qu’une seule variable. Si on veut retourner plusieurs variables, il faut les placer dans un tableau et retourner ce dernier. Mais il est plus commode d’utiliser un objet littéral.

L’exemple classique est la fonction qui calcule des coordonnées d’un élément HTML sur une page Web. Il faut ici retourner les coordonnées x et y.

function getCoords() {
    /* Script incomplet, juste pour l'exemple */
    return {
        x: 12,
        y: 21
    };
}

var coords = getCoords();

alert(coords.x); // 12
alert(coords.y); // 21
La valeur de retour de la fonction getCoords() est mise dans la variable coords, et l’accès à x et y en est simplifié.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

fonction longueur d’une chaîne

A

$phrase = ‘Bonjour tout le monde ! Je suis une phrase !’;
$longueur = strlen($phrase);
echo ‘La phrase ci-dessous comporte ‘ . $longueur . ‘ caractères :<br></br>’ . $phrase;

30
Q

la liste déroulante

A

select name=”choix”

option value=”choix1”>Choix 1Choix 2Choix 3Choix 4

31
Q

js: une fonction

A

Le mot-clé function est présent à chaque déclaration de fonction. C’est lui qui permet de dire « Voilà, j’écris ici une fonction ! » ;

Vient ensuite le nom de votre fonction, ici myFunction;

S’ensuit un couple de parenthèses contenant ce que l’on appelle des arguments. Ces arguments servent à fournir des informations à la fonction lors de son exécution. Par exemple, avec la fonction alert() quand vous lui passez en paramètre ce que vous voulez afficher à l’écran ;

Et vient enfin un couple d’accolades contenant le code que votre fonction devra exécuter.

32
Q

Js: où placer le code js, pourquoi?

A

Il vaut mieux privilégier un fichier externe plutôt que d’inclure le code JavaScript directement dans la page, car le fichier externe est mis en cache par le navigateur et n’est donc pas rechargé à chaque chargement de page, ce qui accélère l’affichage de la page.

33
Q

js: tester l’existence de variables

A

Il se peut que vous ayez un jour ou l’autre besoin de tester l’existence d’une variable ou d’en vérifier son type. Dans ce genre de situations, l’instruction typeof est très utile, voici comment l’utiliser :

var number = 2;
alert(typeof number); // Affiche : « number »
var text = 'Mon texte';
alert(typeof text); // Affiche : « string »
var aBoolean = false;
alert(typeof aBoolean); // Affiche : « boolean »
Simple non ? Et maintenant voici comment tester l'existence d'une variable :

alert(typeof nothing); // Affiche : « undefined »
Voilà un type de variable très important ! Si l’instruction typeof vous renvoie undefined, c’est soit que votre variable est inexistante, soit qu’elle est déclarée mais ne contient rien.

34
Q

Comment vérifier un fichier reçu?

A

$_FILES[‘monfichier’][‘name’]
Contient le nom du fichier envoyé par le visiteur.

$_FILES[‘monfichier’][‘type’]
Indique le type du fichier envoyé. Si c’est une image gif par exemple, le type seraimage/gif.

$_FILES[‘monfichier’][‘size’]
Indique la taille du fichier envoyé. Attention : cette taille est en octets. Il faut environ 1 000 octets pour faire 1 Ko, et 1 000 000 d’octets pour faire 1 Mo.
Attention : la taille de l’envoi est limitée par PHP. Par défaut, impossible d’uploader des fichiers de plus de 8 Mo.

$_FILES['monfichier']['tmp_name']
Juste après l'envoi, le fichier est placé dans un répertoire temporaire sur le
serveur en attendant que votre script
PHP décide si oui ou non il accepte de
le stocker pour de bon. Cette variable
contient l'emplacement temporaire du
fichier (c'est PHP qui gère ça).

$_FILES[‘monfichier’][‘error’]
Contient un code d’erreur permettant de savoir si l’envoi s’est bien effectué ou s’il
y a eu un problème et si oui, lequel. La
variable vaut 0 s’il n’y a pas eu d’erreur.

35
Q

vérification php.ini

A

error_reporting et display_errors ont respectivement les valeurs E_ALL & on.

36
Q

js: boucle choisie pour l’incrémentation

A
Dans les parenthèses de la boucle ne se trouve plus juste la condition, mais trois blocs : initialisation, condition, et incrémentation. Ces trois blocs sont séparés par un point-virgule ; c'est un peu comme si les parenthèses contenaient trois instructions distinctes.
for (var iter = 0; iter < 5; iter++) {
    alert('Itération n°' + iter);
}
for (var nicks = '', nick; true;) {
    nick = prompt('Entrez un prénom :');  
    if (nick) {
        nicks += nick + ' ';  
    } else {
        break;  
    }	
}
alert(nicks);
37
Q

récupérer la date

A
$jour = date('d');				
$mois = date('m');				
$annee = date('Y');				
$heure = date('H');				
$minute = date('i');				
// Maintenant on peut afficher ce qu'on a recueilli				
echo 'Bonjour ! Nous sommes le ' . $jour . '/' . $mois . '/' . $annee . 'et il est ' . $heure. ' h ' . $minute;
38
Q

js: Pourquoi ne pas appliquer lefor insur les tableaux avec index ?

A

Parce que les tableaux se voient souvent attribuer des méthodes supplémentaires par certains navigateurs ou certains scripts tiers utilisés dans la page, ce qui fait que la boucle for in va vous les énumérer en même temps que les items du tableau.

Il y a aussi un autre facteur important à prendre en compte : la boucle for in est plus gourmande qu’une boucle for classique.

39
Q

créer un tableau associatif

A

$coordonnees = array ( ‘prenom’ => ‘François’, ‘nom’ => ‘Dupont’, ‘adresse’ => ‘3 Rue Paradis’, ‘ville’ => ‘Marseille’);

40
Q

les conditions

A

if else == > < >= <= != AND && OR !=

41
Q

parcourir un tableau numéroté

A

for ($numero = 0; $numero < 5; $numero++)
{
echo $prenoms[$numero] . ‘ // affichera $prenoms[0], $prenoms[1] etc. ´;
}

42
Q

js: où placer l’élément script

A

Une page Web est lue par le navigateur de façon linéaire, c’est-à-dire qu’il lit d’abord le “head”, puis les éléments de “body” les uns à la suite des autres. Si vous appelez un fichier JavaScript dès le début du chargement de la page, le navigateur va charger ce fichier, et si ce dernier est volumineux, le chargement de la page s’en trouvera ralenti.
Pour pallier ce problème, il est conseillé de placer les éléments “script” juste avant la fermeture de l’élément “body”

43
Q

js: boucle d’entrée de prénoms

A
var nicks='',nick;
while (true){
nick=prompt('prénom');
if (nick){
nicks+=nick;
} else {
break;
}
}
alert(nicks);
44
Q

les variables

A

commencent par $, peuvent être alpha, int(42) numérique (55,3) booléenne(true, false) ou nulle (null)

45
Q

js: la conversion de type

A

tout ce qui est écrit dans le champ de texte de prompt() est récupéré sous forme d’une chaîne de caractères, que ce soit un chiffre ou non. Du coup, si vous utilisez l’opérateur +, vous ne ferez pas une addition mais une concaténation !

C’est là que la conversion des types intervient. Le concept est simple : il suffit de convertir la chaîne de caractères en nombre. Pour cela, vous allez avoir besoin de la fonction parseInt()
var first, second, result;

first = prompt(‘Entrez le premier chiffre :’);
second = prompt(‘Entrez le second chiffre :’);
result = parseInt(first) + parseInt(second);
alert(result);

46
Q

Récupérer la clé d’une valeur dans l’array

A

$fruits = array (‘Banane’, ‘Pomme’, ‘Poire’, ‘Cerise’, ‘Fraise’, ‘Framboise’);

$position = array_search(‘Fraise’, $fruits);
echo ‘“Fraise” se trouve en position ‘ . $position . ‘<br></br>’;

47
Q

Afficher un guillemet

A

'

48
Q

parcourir un tableau associatif

A
$coordonnees = array ( 'prenom' => 'François', 'nom' => 'Dupont', 'adresse' => '3 Rue Paradis', 'ville' => 'Marseille'); 
foreach($coordonnees as $element) 
{ 
echo $element . ''; 
}
49
Q

passer de paramètres dans une url

A

Lorsqu’on fait un lien vers une page, il est possible d’ajouter des paramètres sous la forme bonjour.php?nom=Dupont&prenom=Jean qui seront transmis à la page.
La page bonjour.php recevra ces paramètres dans un array nommé$_GET:

$_GET[‘nom’]aura pour valeur «Dupont»;
$_GET[‘prenom’]aura pour valeur «Jean».

50
Q

js: accès aux items d’un tableau

A

nous avons créé un objet, et les identifiants sont en réalité des propriétés, exactement comme la propriété length d’un tableau ou d’une chaîne de caractères. Donc, pour récupérer le nom de la sœur, il suffit de faire :
family.sister;
Il existe une autre manière, semblable à celle qui permet d’accéder aux items d’un tableau en connaissant l’indice, sauf qu’ici on va simplement spécifier le nom de la propriété :family[‘sister’];
Cela va nous être particulièrement utile si l’identifiant est contenu dans une variable, comme ce sera le cas avec la boucle que nous allons voir après. Exemple :
var id = ‘sister’;
alert(family[id]); // Affiche : « Laurence »
Cette façon de faire convient également aux propriétés de tout objet. Ainsi, si notre tableau se nomme myArray, nous pouvons faire myArray[‘length’]pour récupérer le nombre d’items.

51
Q

Serveur PHP sous Windows

A

WAMP (Apache, php, mysql)

52
Q

js: ajouter un poste à un tableau (3 méthodes)

A

push()permet d’ajouter un ou plusieurs items:
La méthode unshift() fonctionne comme push(), excepté que les items sont ajoutés au début du tableau. Cette méthode n’est pas très fréquente mais peut être utile.

Les méthodes shift() et pop() retirent respectivement le premier et le dernier élément du tableau.
var myArray = [‘Sébastien’, ‘Laurence’, ‘Ludovic’, ‘Pauline’, ‘Guillaume’];
myArray.shift(); // Retire « Sébastien »
myArray.pop(); // Retire « Guillaume »
alert(myArray); // Affiche « Laurence,Ludovic,Pauline »

53
Q

js: noms des interpréteurs sous ie8 ie9 firefox chrome

A

Chakra JScript SpiderMonkey V8

54
Q

js: accéder aux items d’un tableau par un identifiant

A
var family = {
    self: 'Sébastien',
    sister: 'Laurence',
    brother: 'Ludovic',
    cousin_1: 'Pauline',
    cousin_2: 'Guillaume'
};
55
Q

js: parcourir un objet littéral

A
var family = {
    self:     'Sébastien',
    sister:   'Laurence',
    brother:  'Ludovic',
    cousin_1: 'Pauline',
    cousin_2: 'Guillaume'
};
for (var id in family) { // On stocke l'identifiant dans "id" pour parcourir l'objet "family".
	alert(family[id]);		
}
La boucle for in est l'équivalent de la boucle foreach du PHP : elle est très simple et ne sert qu'à une seule chose : parcourir un objet.
Le fonctionnement est quasiment le même que pour un tableau, excepté qu'ici il suffit de fournir une « variable clé » qui reçoit un identifiant (au lieu d'un index) et de spécifier l'objet à parcourir :
56
Q

js: transformer une chaîne de caractères en tableau

et l’inverse

A

Les chaînes de caractères possèdent une méthode split() qui permet de les découper en un tableau, en fonction d’un séparateur
var cousinsString = ‘Pauline Guillaume Clarisse’,
cousinsArray = cousinsString.split(‘ ‘);
alert(cousinsString);
alert(cousinsArray);
L’inverse de split(), c’est-à-dire créer une chaîne de caractères depuis un tableau, se nomme join():
var cousinsString_2 = cousinsArray.join(‘-‘);
alert(cousinsString_2);
Comme vous pouvez le constater, une méthode peut très bien retourner une valeur, tout comme le ferait une fonction indépendante d’un objet. D’ailleurs, on constate que split() et join() retournent toutes les deux le résultat de leur exécution, elles ne l’appliquent pas directement à l’objet.

57
Q

js:origine

A

créé en 1995 par Brendan Eich chez Netscape, envoyé à ECMA (European Computer Manufacturers Association)
version actuelle ECMAScript5 (2009)

58
Q

une grande zone de texte

A

textarea name=”message” rows=”8” cols=”45”>
Votre message ici.
textarea
il n’y a pas d’attribut value. En fait, le texte par défaut est ici écrit entre les balises . Si vous ne voulez rien mettre par défaut, alors n’écrivez rien
Les attributs rows et cols permettent de définir la taille de la zone de texte en hauteur et en largeur respectivement

59
Q

js: portée des variables

A

toute variable déclarée dans une fonction n’est utilisable que dans cette même fonction ! Ces variables spécifiques à une seule fonction ont un nom : les variables locales.

Lorsqu’une variable n’est accessible que dans une partie de votre code, on dit qu’elle se trouve au sein d’un « scope ». Retenez bien ce terme, il vous servira à l’avenir.

60
Q

Résoudre le problème XXS

A

il faut protéger le code HTML en l’échappant, c’est-à-dire en affichant les balises (ou en les retirant) plutôt que de les faire exécuter par le navigateur
Pour échapper le code HTML, il suffit d’utiliser la fonction htmlspecialchars qui va transformer les chevrons des balises HTML<> en < et &gt ;respectivement. Cela provoquera l’affichage de la balise plutôt que son exécution.

Je sais comment tu t’appelles, hé hé. Tu t’appelles
echo htmlspecialchars($_POST[‘prenom’]);
Le code HTML qui en résultera sera propre et protégé car les balises HTML insérées par le visiteur auront été échappées :

<p>Je sais comment tu t'appelles, hé hé. Tu t'appelles <strong>Badaboum</strong></p>

61
Q

La faille XXS

A

cross-site scripting
technique qui consiste à injecter du code HTML contenant du JavaScript dans vos pages pour le faire exécuter à vos visiteurs.
Je sais comment tu t’appelles, hé hé. Tu t’appelles php echo $_POST[‘prenom’];
Je sais comment tu t’appelles, hé hé. Tu t’appelles
script type=”text/javascript” alert(‘Badaboum’) script

62
Q

créer un tableau numéroté

A
// La fonction array permet de créer un tableau 
$prenoms = array ('François', 'Michel', 'Nicole', 'Véronique', 'Benoît');
63
Q

js: cas spécial de l’opérateur OU

A
Celui-ci, en plus de sa fonction principale, permet de renvoyer la première variable possédant une valeur évaluée à true! Exemple :
var conditionTest1 = '', conditionTest2 = 'Une chaîne de caractères';
alert(conditionTest1 || conditionTest2)

ce code nous retourne la valeur « Une chaîne de caractères ». Pourquoi ? Eh bien parce que l’opérateur OU va se charger de retourner la valeur de la première variable dont le contenu est évalué à true!

64
Q

erreur de début

A

Ici, j’ai eu le malheur de mettre un peu de code HTML avant le session_start(), et c’est ce qui a provoqué l’erreur. Mettez le session_start()en tout premier, et vous n’aurez plus de problème:

65
Q

La syntaxe d’un objet

A

Précédemment vous avez vu que pour créer un array vide il suffisait d’écrire :
var myArray = [];
Pour les objets c’est à peu près similaire sauf que l’on met des accolades à la place des crochets :
var myObject = {};
Pour définir dès l’initialisation les items à ajouter à l’objet, il suffit d’écrire :
var myObject = {
item1: ‘Texte 1’,
item2: ‘Texte 2’
};
Comme l’indique ce code, il suffit de taper l’identifiant souhaité suivi de deux points et de la valeur à lui attribuer. La séparation des items se fait comme pour un tableau, avec une virgule.

66
Q

parcourir un tableau associatif et sa clé

A

$coordonnees = array (
‘prenom’ => ‘François’,
‘nom’ => ‘Dupont’,
‘adresse’ => ‘3 Rue du Paradis’,
‘ville’ => ‘Marseille’);
foreach($coordonnees as $cle => $element)
{
echo ‘[’ . $cle . ‘] vaut ‘ . $element . ‘
‘;
}

67
Q

js: parcourir un tableau avec for

A
var myArray = ['Sébastien', 'Laurence', 'Ludovic', 'Pauline', 'Guillaume'];
Le principe pour parcourir un tableau est simple : il faut faire autant d'itérations qu'il y a d'items. Le nombre d'items d'un tableau se récupère avec la propriété length, exactement comme pour le nombre de caractères d'une chaîne de caractères. À chaque itération, on va avancer d'un item dans le tableau, en utilisant la variable de boucle i: à chaque itération, elle s'incrémente, ce qui permet d'avancer dans le tableau item par item. Voici un exemple :

for (var i = 0; i < myArray.length; i++) {
alert(myArray[i]);
}
mieux:
for (var i = 0, c = myArray.length; i < c; i++) {
alert(myArray[i]);
}

68
Q

js: déclarer une variable

A
Pour déclarer une variable, il vous suffit d'écrire la ligne suivante :
var myVariable;
Le JavaScript étant un langage sensible à la casse, faites bien attention à ne pas vous tromper sur les majuscules et minuscules utilisées car, dans l'exemple suivant, nous avons bel et bien trois variables différentes déclarées :
var myVariable;
var myvariable;
var MYVARIABLE;
Le mot-clé var est présent pour indiquer que vous déclarez une variable. Une fois celle-ci déclarée, il ne vous est plus nécessaire d'utiliser ce mot-clé pour cette variable et vous pouvez y stocker ce que vous souhaitez var myVariable;
myVariable = 2;
Il est possible de simplifier ce code en une seule ligne :
var myVariable = 5.5; // Comme vous pouvez le constater, les nombres à virgule s'écrivent avec un point.
De même, vous pouvez déclarer et assigner des variables sur une seule et même ligne :
var myVariable1, myVariable2 = 4, myVariable3;
Ici, nous avons déclaré trois variables en une ligne mais seulement la deuxième s'est vu attribuer une valeur.

Une petite précision ici s’impose : quand vous utilisez une seule fois l’instruction var pour déclarer plusieurs variables, vous devez placer une virgule après chaque variable (et son éventuelle attribution de valeur) et vous ne devez utiliser le point-virgule (qui termine une instruction) qu’à la fin de la déclaration de toutes les variables.

69
Q

les boucles

A

$nombre_de_lignes = 1; WHILE ($nombre_de_lignes <= 100) { echo ‘Je ne dois pas regarder les mouches voler quand j'apprends le PHP.
‘; $nombre_de_lignes++; // $nombre_de_lignes = $nombre_de_lignes +1
}
FOR ($nombre_de_lignes = 1; $nombre_de_lignes <= 100; $nombre_de_lignes++)
{
echo ‘Ceci est la ligne n°’ . $nombre_de_lignes . ‘’;
}

70
Q

js: les ternaires

A
var startMessage = 'Votre catégorie : ',
    endMessage,
    adult = confirm('Êtes-vous majeur ?');
endMessage = adult ? '18+' : '-18';
alert(startMessage + endMessage);

La variable endMessage va accueillir le résultat de la ternaire ;
La variable adult va être analysée par la ternaire ;
Un point d’interrogation suivi d’une valeur (un nombre, du texte, etc.) ;
Deux points suivis d’une deuxième valeur et enfin le point-virgule marquant la fin de la ligne d’instructions.
Le fonctionnement est simple : si la variable adult vaut true alors la valeur retournée par la ternaire sera celle écrite juste après le point d’interrogation, si elle vaut false alors la valeur retournée sera celle après les deux points.
var result, number = 42;
result=(number>10) ? ‘Plus grand que 0’ : ‘Plus petit que 10’ ;
alert (result);