PHP - petit rappel à travers les tps effectués

Tout ce qui est développement WEB.
Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1341
Inscription : 11 sept. 2011, 16:32

PHP - petit rappel à travers les tps effectués

Message par fabio » 14 déc. 2018, 11:50

Dans les réponses à ce topic, vous verrez quelques morceaux de code à conserver pour les réutiliser ou s'en inspirer. Les commentaires en PHP s'écrivent // pour commenter une ligne et /* ... */ pour commenter plusieurs lignes à la fois.

Bonne lecture :D
:ugeek:

Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1341
Inscription : 11 sept. 2011, 16:32

Re: PHP - for() et if()

Message par fabio » 14 déc. 2018, 11:52

Boucle for() et instructions conditionnelles
Ce que l'ordinateur fait le mieux, c'est répéter en boucle (itération). Dans cet exemple, on crée un tableau avec des valeurs de 0 à 99. On teste la parité et on change la couleur en fonction de cette parité.

Code : Tout sélectionner

<table border="1"><tr>
<?php
        // forme de la boucle - en premier l’initialisation de la variable que l'on va utiliser
        // en second, le test réalisé pour vérifier si on quitte ou pas la boucle
        // en troisième, l'instruction qui est exécutée à la fin du bloc qui permet
        // de faire évoluer la boucle       
	for($i=0; $i<100 ; $i=$i+1) 
		{
		// Un exemple de test if
		/*
		if($i%2 == 0)
			{
			$couleur = 'green';
			}
		else 
			{
			$couleur = 'red';
			}
		*/
		// la même chose que le if mais exprimé sous forme d'opérateur ternaire
		$couleur = $i%2?'red':'green';
		echo '<td style="background-color:'.$couleur.'">';
		echo $i;
		echo '</td>';
		// test qui permet de terminer une ligne 
		if($i%10 == 9)
			{
			echo '</tr><tr>';			
			}
		}
?>
</tr></table>

Utilisation de la fonction rand() qui permet de faire des générations de nombres pseudo aléatoires.

Code : Tout sélectionner

<table border="1"><tr>
<?php
	for($i=0; $i<100 ; $i=$i+1) 
		{
		$couleur = 'rgb('.rand(100,255).','.rand(100,255).','.rand(100,255).')';
		echo '<td style="background-color:'.$couleur.'">';
		echo $i;
		echo '</td>';
		if($i%10 == 9)
			{
			echo '</tr><tr>';			
			}
		}
?>
</tr></table>
:ugeek:

Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1341
Inscription : 11 sept. 2011, 16:32

Re: PHP - Formulaire

Message par fabio » 14 déc. 2018, 12:03

Code : Tout sélectionner

<!DOCTYPE html>
<html>
	<head>
	<title>Formulaire 01</title>
	<meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8">
	<meta http-equiv="content-style-type" content="text/css">
	<link href="formulaire01.css" rel="stylesheet" type="text/css">
</head>
<body>
	<form action="formulaire01_go.php" method="get">
		Login <input type="text" name="login"><br>
		Mot de passe <input type="text" name="mdp"><br>
		<input type="submit">
	</form>
</body>
</html>
La page appelée par le formulaire grâce à l'attribut action de la balise form.

Code : Tout sélectionner

<body>
	Page appelée par le formulaire<br>
	<?php
		// automatiquement, les valeurs passées dans le formulaire
		// sont placées dans une variable crée par PHP : $_GET
		echo 'Bonjour '.$_GET['login'];
		if(strlen($_GET['mdp']) < 5) 
			{
			echo '. Votre mot de passe est trop petit !';
			} 
	?>
</body>
:ugeek:

Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1341
Inscription : 11 sept. 2011, 16:32

Re: PHP - Super globales

Message par fabio » 14 déc. 2018, 12:19

var_dump() et super globales
Sous réserve que votre page contienne l'extension .php, apache va détecter les parties de code PHP dans votre page Web grâce à la balise <?php ?> et envoyer ce code à son module PHP qui va l’interpréter. Quand le module est appelé, il crée automatiquement un ensemble de variables que l'on qualifie de super globales. Il est très utile de vérifier lors du développement le contenu d'une variable grâce à var_dump(). Nous allons en profiter pour voir toutes les variables automatiquement crées par PHP quand on appelle le module PHP via apache. Attention, certaines de ces variables n'existent ou ne sont initialisées que dans certaines conditions : par exemple, $_GET est initialisée si vous passer dans l'url le complément ?nom=toto par exemple.b D'autres conditions sont bien plus complexes.

Code : Tout sélectionner

<?php
	echo '$GLOBALS<br>';
	var_dump($GLOBALS);
	echo '<hr>$_SERVER<br>';
	var_dump($_SERVER);
	echo '<hr>$_GET<br>';
	var_dump($_GET);
	echo '<hr>$_POST<br>';
	var_dump($_POST);
	echo '<hr>$_FILES<br>';
	var_dump($_FILES);
	echo '<hr>$_COOKIE<br>';
	var_dump($_COOKIE);
	echo '<hr>$_SESSION<br>';
	var_dump($_SESSION);
	echo '<hr>$_REQUEST<br>';
	var_dump($_REQUEST);
	echo '<hr>$_ENV<br>';
	var_dump($_ENV);	
?>
:ugeek:

Avatar de l’utilisateur
fabio
Gourou
Gourou
Messages : 1341
Inscription : 11 sept. 2011, 16:32

Re: PHP - Accès à la base Postgresql

Message par fabio » 14 déc. 2018, 14:25

Les fonctions Postgresql
L'accès à une base se fait généralement en quelques étapes
  • connexion à la base
  • fabrication de la chaîne de caractères qui va contenir la requête SQL (attention à la sécurité)
  • envoi de la requête au serveur et réception de la réponse

Code : Tout sélectionner

<table border="1">

<?php
	// connexion à la base, on peut tester les différentes valeurs 
	// avec un client psql en mode console 
	$conn = pg_connect('host=127.0.0.1 dbname=entreprise user=ent_admin password=admin');
	// création d'une chaîne qui va contenir la requête
	$s_req = 'select nom, libelle from employe join service on employe.id_service = service.id_service';	
	// envoi de la requête à la base (par défaut, la base ouverte)
	$req = pg_query($s_req);
	// $req contient une ressource, on peut récupérer les valeurs liées à cette ressource quand il s'agit 
	// d'une requête d'interrogation grâce à un pg_fetch()
	// on peut trouver la liste des pg_fetch() sur 
	// https://secure.php.net/manual/fr/ref.pgsql.php
	// ici on utilise pg_fetch_all() qui récupère l'intégralité du résultat de la requête
	// sous la forme d'un tableau indicé de tableaux associatifs
	$resultat = pg_fetch_all($req);
	// La boucle foreach permet de parcourir le tableau indicé résultat
	// en récupérant chaque élément du tableau  
	// dans notre cas, chaque élément du tableau est lui-même 
	// un tableau (associatif), la variable $ligne
	foreach($resultat as $ligne)
		{
		echo '<tr>';
		echo '<td>'.$ligne['nom'].'</td>';
		echo '<td>'.$ligne['libelle'].'</td>';
		echo '</tr>';
		}
	pg_close($conn);
?>
</table>

:ugeek:

Répondre