Ceci est une ancienne révision du document !
<?php … ?> inclure du code php dans du code html (enregistrée en .php)
<?php include(“menu.php”); ?> inclure une autre page php dans cette page
- VARIABLES -
$variable une valeur est toujours précédée d'un '$'
– CONCATANATION – <?php les “ permettent d'insérer une variable au milieu du texte (' ne le permet pas) $age_du_visiteur = 17; echo “Le visiteur a $age_du_visiteur ans”; ?> <?php méthode alternative, à préferer $age_du_visiteur = 17; echo 'Le visiteur a ' . $age_du_visiteur . ' ans'; ?>
– TRANSCODAGE – $variable1 = (int) $variable2 ; pour forcer la variable 1 en int, si pas possible (ex: string), alors 0..
- CONDITIONS -
if (== AND > OR < >= ⇐ ! {
...
} elseif {
...
} else { } — <?php astuce qui permet d'insérer facilement du code php sans la fonction echo if ($variable == 23) { ?> <strong>Bravo !</strong> Vous avez trouvé le nombre mystère ! <?php } ?> — switch ($note) on indique sur quelle variable on travaille { case 0: dans le cas où $note vaut 0
echo "Tu es vraiment un gros Zér0 !!!"; break; defaut: echo '...';
} ne marche pas avec les comparaison > == etc.. ———– - BOUCLES - ———– while (condition) { instructions } for ( $i=1 ; $i⇐100 ; $i++) {
//instructions
}
- FONCTIONS -
– EXEMPLE DE FONCTIONS PRATIQUES – strlen($phrase) retourne la longueur d'une chaine de caractère str_replace('c','d',$chaine) remplace une chaine de caractère par une autre strtolower($chaine) convertit la chaine en miniscule date('Y'/m/d/H/i) renvoie l'année, le mois, le jour, l'heure, la minute
– CREATION DE FONCTION – function Nom(paramètres) {
//Instructions
}
- TABLEAUX -
$variable = array (,
..) on décrit le tableau ds son intégralité en une seule fois
$variable[0] = '..'; on choisi le contenu de chaque case
$variable[] = .. ; on laisse php créer la numérotation
echo $variable[i] ; on doit tjs préciser la case pour exploiter les infos
– TABLEAU ASSOCIATIF – $coordonnees = array ( création du tableau asociatif
'prenom' => 'François', 'nom' => 'Dupont');
$coordonnees['prenom'] = 'François'; aute moyen de créer un tableau associatif echo $coordonnees['ville']; utilisation du tableau
– PARCOURIR UN TABLEAU – utiliser une boucle for foreach($prenoms as $element) {..} le contenu de chaque ligne du tableau est stocké dans $element foreach($coordonnees as $cle ⇒ $element) pour récupérer la clé et l'élement
– AFFICHER RAPIDEMENT UN TABLEAU – echo '<pre>'; il faut rajouter les balises <pre> pour avoir les retours à la ligne entre chaque élément du tableau print_r($coordonnees); echo '</pre>';
– RECHERCHE DANS UN TABLEAU – array_key_exists vérifier si une clé existe dans le tableau in_array vérifier si une valeur existe dans le tableau array_search pour récupérer la clé d'une valeur dans un tableau
- TRANSMETTRE DES DONNEES D'UNE PAGE A L'AUTRE -
– AVEC UNE URL – page.php?param1=valeur1¶m2=valeur2 Concept '&' '&' en HTML, '&' doit être écrit '&' dans les href $_GET['param1'] la variable $_GET[] contient les valeurs écrites dans l'url isset($_GET[]) fonction qui teste si la variable existe
– AVEC UN FORMULAIRE – $_POST['nom'] procéder aux précautions d'usage concernant des infos venant de l'utilisateur
– ECHAPPER DU CODE HTML – htmlspecialchars($_POST[]) fonction php qui dit fait que les balises HTML contenues dans $_POST[] ne s'executent pas, mais sont affichées comme du texte strip_tags() fonction qui retire les balises HTML au lieu de les executer (ou les afficher par htmlspecialchars() )
– FICHIER PAR FORMULAIRE – $_FILES['nom'] le fichier est stocké dans un dossier temporaire, il faut le “vérifier” avant de le stocker définitivement : $_FILES['nom'][attribut] on utilise les attributs suplémentaires suivants : name nom du fichier type indique le type de fichier, par exemple image/gif size indique la taille en octet (pas plus de 8Mo, limité par php ..) tm_name contient l'emplacement temporaire error contient le code d'erreur de transfert, 0 = pas d'erreur pathinfo($_FILE[][name]) renvoie un array avec le nom et l'extension, ds la va $infosfichier = pathinfo($_FILES['monfichier']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)); move_upload_file() lorsque tt est bon, on déplace le fichier vers son emplacement définitif
- VARIABLES SUPERGLOBALES -
– SESSION – – COOKIES –
- LIRE ET ECRIRE DS UN FICHIER -
– OUVRIR ET FERMER LE FICHIER – $monfichier = fopen('nomfichier',attribut) permet d'ouvrir le fichier fclose($monfichier) permet de fermer le fichier attribut peut prendre les valeurs suivantes : r lecture seule r+ lecture/ecriture a écriture seule (si le fichier n'existe pas, il est créé !) a+ ecriture/lecture (fichier créé si inexistant)
– LIRE – fgetc() lire caractère par caractère fgets() lire ligne par ligne
– ECRIRE – fputs() écrit une ligne dans le fichier
– LOCALISATION DS LE FICHIER – il y a un curseur qui indique à php ou on en est ds le fichier, lecture et ecriture utilise le même curseur fseek($monfichier, 0) repositionne le curseur au début
- INTERAGIR AVEC UNE BASE DE DONNEES -
on utilisera PDO, en utilisant de la POO
– SE CONNECTER A LA BDD –
$bdd = new PDO('mysql:host=localhost;dbname=test','root',);
et pour tester la présence d'erreur (et ne pas les afficher par défaut sur la page :
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root',
,$pdo_options);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
– EFFECTUER UNE REQUETE (LIRE DES DONNEES) – $reponse = $bdd→query('Tapez votre requête SQL ici'); retourne la réponse de Mysql, inexploitable directement en php $donnees = $reponse→fetch(); parcourt la requête, ligne par ligne (curseur virtuel, boucle…) while ($donnees = $reponse→fetch()) fetch() renvoie false lorsqu'il n'y a plus de données {
$donnees['nomColonne'];
} $reponse→closeCursor(); indique que la requête est terminée, ce qui permet d'effectuer une autre requete sans encombre
– REQUETE AVEC VARIABLE METHODE SECURISEE n°1 : ? – $req = $bdd→prepare('SELECT nom FROM jeux_video WHERE possesseur =?'); $req→execute(array($_GET['possesseur'])); il est possible de mettre plusieurs ?, il faut alors mettre plusieurs variables dans array(xx,yy)
– REQUETE AVEC VARIABLE METHODE SECURISEE n°2 : marqueur nominatif – $req = $bdd→prepare('SELECT nom, prix FROM jeux_video WHERE possesseur = :possesseur AND prix ⇐ :prixmax'); $req→execute(array('possesseur' ⇒ $_GET['possesseur'], 'prixmax'⇒ $_GET['prix_max'])); il faut bien mettre les ':' dans la préparation de la requête devant le marqueur. plus besoin des les donner dans l'ordre :)
– ECRIRE DANS UNE BDD – $bdd→exec('requete Mysql');
– ECRIRE AVEC UNE VARIABLE – mêmes fonctions et mêmes méthodes que pour lire avec une variable
echo mysql_error();
- ENTRE NAVIGATION ET SCRIPT -
header('Location: page.php'); permet de retourner à la page citée