Projet collectif : quelques notions de php

Principe :

  • architecture client – serveur,
  • serveur A(pache) – M(ySQL) – P(hp)
  • pages générées sur le serveur et renvoyées au client.

En pratique :

  • Comment insérer du php ?
  • Syntaxe et exemples.
  • Intéraction avec un serveur MariaDB pour des requêtes SQL

Ci-dessous les notes d’Emir (merci) et quelques codes créés en classe.

Des codes PHP en vrac

Évidemment, comme ça, ils ne seront pas interprétés ! Il faudrait les avoir sur un serveur.

<?php 
	echo "Bastien est là, mais pas là !";
?>

Moins débutant, pour charger les mêmes haut et bas de page sur des pages d’un site :

<?php 
	include('debut.php');
?>
	<strong>Exemple2</strong>
<?php
	include('fin.php');
?>

Des variables ? Ce code sur le serveur

<?php
    $var1 = 6;
    $var2 = 7;
    echo "<p>". $var1 . " fois " . $var2;
    echo " fait " . ($var1 * $var2) . "</p>";
?>

produit ce code html sur le client

<p>6 fois 7 fait 42</p>

Interaction avec l’utilisateur

Ce code html génère un formulaire

<form action="ex3.php" method="get">
	<select name="var1">
		<option value="2">2</option>
		<option value="3" selected>3</option>
		<option value="6">6</option>
	</select>
		<select name="var2">
		<option value="21">21</option>
		<option value="14" selected>14</option>
		<option value="7">7</option>
	</select>
	<button type="submit">Envoyer</button>
</form>

qui ressemble à ceci :

le formulaire html lu par firefox

qui envoie les valeurs des variables par la méthode GET.

la barre d’adresse finit par /ex3.php?var1=3&var2=14

On peut les lire dans la barre d’adresses de la cible ex3.php, dont le code est ci-dessous :

<strong>
<?php
	if (isset($_GET['var1'])){
		$var1 = $_GET['var1'];	
		echo "On a reçu var1 = " . $var1;
	}
	else {
		$var1 = 6;
		echo "On pose var1 = 6 par défaut";
	}
	
	if (isset($_GET['var2'])){
		$var2 = $_GET['var2'];	
		echo "On a reçu var2 = " . $var2;
	}
	else {
		$var2 = 7;
		echo "On pose var2 = 7 par défaut";
	}
	
	for($i = 0 ; $i <= $var1 ; $i++ ){
		echo "<p>". $i . " fois " . $var2;
		echo " fait " . ($i * $var2) . "</p>";
	};
?>
</strong>

En changeant pour la méthode POST

<form action="reception_post.php" method="post">
	<select name="var1">
		<option value="2">2</option>
		<option value="3" selected>3</option>
		<option value="6">6</option>
	</select>
	<select name="var2">
		<option value="21">21</option>
		<option value="14" selected>14</option>
		<option value="7">7</option>
	</select>
	<button type="submit">Envoyer les valeurs</button>
</form>

.. on obtiendra la même chose

la barre d’adresse finit par /reception_post.php sans valeurs après

sans les valeurs dans la barre d’adresses. Le fichier reception_post.php :

<?php
	if (isset($_POST['var1'])){
		$var1 = $_POST['var1'];	
		echo "On a reçu var1 = " . $var1;
	}
	else {
		$var1 = 6;
		echo "On pose var1 = 6 par défaut";
	}
	
	if (isset($_POST['var2'])){
		$var2 = $_POST['var2'];	
		echo "On a reçu var2 = " . $var2;
	}
	else {
		$var2 = 7;
		echo "On pose var2 = 7 par défaut";
	}
	
	for($i = 0 ; $i <= $var1 ; $i++ ){
		echo "<p>". $i . " fois " . $var2;
		echo " fait " . ($i*$var2) . "</p>";
	};
?>

Interaction avec une base de données

<?php
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=tv;charset=utf8', 'utilisateur', 'mot_de_passe');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}

$reponse = $bdd->query('SELECT nom, quand FROM anniv ORDER BY nom');

while ($donnees = $reponse->fetch())
{
	// echo 'ici';
	echo $donnees['nom'] . ' né le ' . $donnees['quand'] . '<br />';
}

$reponse->closeCursor();

?>

En supposant qu’un utilisateur avec mot_de_passe a sur la même machine que le serveur localhost accès à une base de données tv comportant une table anniv avec des champs nom et quand 😉

ici trois entrées dans la table anniv 😉 N’oubliez pas le mien !

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.