Ceci est une ancienne révision du document !
Déclaration de variable sous forme de tableau et affiche d'élément concaténés :
Variable de Variable :
<?php
$var = 'hello';
$hello = 'coucou';
$coucou = 'toto';
echo $var."\n";
echo ${$var}."\n";
echo ${${$var}}."\n";
$tableau1 = array ('benoit', 'magalie', 'toto');
$tableau2 = array (33, 27, 20);
//Ci-dessous, il suffit juste de changer la valeur de $var et c'est les données d'un tableau différent qui s'affichent.
//$var = 'tableau1';
$var = 'tableau2';
$nb_elements = count (${$var});
for ($i=0; $i<$nb_elements; $i++) {
echo ${$var}[$i]."\n";
}
//echo $nb_elements."\n";
?>
<?php
// Les variables inclus dans un autres script peuvent être exploité sans contraintes
include ('include.php');
$var_interne = 'test';
echo $var_externe."\n";
echo $var_interne."\n";
// En revanche certaines règles s'imposent pour transmettre une variable dans une fonction
$toto = 5;
function ma_fonction () {
// La valeur de toto n'est pas encore transmise, il y aura une erreur
echo $toto."\n";
// Ici la valeur toto est transmise
global $toto;
// Elle peut désormais s'afficher
echo $toto."\n";
}
// On la fonction qu'on a créée
ma_fonction();
?>
Une variable dite static est une variable locale à une fonction mais qui a la particularité de se souvenir de sa valeur.
<?php
function ma_fonction () {
// La valeur ci-dessous sera toujours réinitialiser à un au lancement de la fonction
//$toto = 1;
// Si on souhaite conserver la dernière valeur de $toto il faut préfixer la déclaration de variable par "static"
static $toto = 1;
echo $toto."\n";
$toto++;
}
ma_fonction();
$nb_run = 5;
$i = 1;
while ($i < $nb_run) {
ma_fonction();
$i = $i + 1;
}
<?php
$toto = 'Coucou';
function ma_fonction ($var) {
// Ci-dessous le echo sera en erreur car $toto inconnu
//echo $toto."\n";
// Ci-dessous la variable $toto est transmise via la variable $var
echo $var."\n";
}
// On lance la fonction en transmettant la variable $toto
ma_fonction(&$toto);
?>
$var1 = 3;
$var2 = 3;
if ($var1 == $var2) {
echo 'var1 egal a var2'."\n";
}
elseif ($var1 > $var2) {
echo 'var1 superieur a var2'."\n";
}
elseif ($var1 < $var2) {
echo 'var1 inferieur a var2'."\n";
}
$myname = 'Benoit';
switch ($myname) {
case 'Toto' :
echo 'Ton nom est Toto'."\n";
break;
case 'Titi' :
echo 'Ton nom est Titi'."\n";
break;
case 'Benoit' :
echo 'Ton nom est Benoit'."\n";
break;
default :
echo 'je ne sais pas ton nom'."\n";
}
$varfor = 10;
for ($i = 0; $i < $varfor; $i++) {
echo $i.' inferieur a '.$varfor."\n";
}
echo $i.' egale a '.$varfor."\n";
$varwhile = 5;
$i = 0;
while ($i < $varwhile) {
echo $i.' inferieur a '.$varwhile."\n";
$i = $i + 1;
}
$data = fopen('data.txt', 'w+');
// On ecrite texte
fputs ($data, "texte\n");
// On se positionne au 4eme caractere depuis le debut du fichier
fseek ($data, 4);
// On insere a o au cinquieme caractere
fputs ($data, "o\n");
// On reinsere tu texte partir de le sixieme postion
fseek ($data, 5);
fputs ($data, " ou SMS\n");
// On clos l'ouverture de fichier
fclose ($data);
//ON ROUVRE LE FICHIER ET affiche le contenu du fichier mais les 5 premiers caracteres
$data = fopen('data.txt', 'r');
$contenu = fgets ($data, 6);
echo $contenu."\n";
<html>
<head>
<title>Formulaire de test</title>
</head>
<body>
<form action = "traitement.php" method="post">
Votre nom : <input type = "text" name = "nom"></br>
Votre age : <input type = "text" name = "age"></br>
<input type = "submit" value = "Soumettre">
</form>
</body>
</html>
<html>
<head>
<title>Traitement du formulaire</title>
</head>
<body>
<?php
//Methode classique
echo 'Votre Nom est '.$_POST['nom'].' et votre age est '.$_POST['age'].'</br>';
//Methode simple, on récupère d'un coup toute les variables de type $_POST ce qui permet de simplifier la syntaxe pour l'usage des variables.
extract ($_POST);
echo 'Votre Nom est '.$nom.' et votre age est '.$age.'<br />';
?>
</body>
</html>
Page du formulaire (formulaire.php) :
<html>
<head>
<title>Formulaire de test</title>
</head>
<body>
<?php
// On verifie s'il le navigateur n'a pas de cookie nommé "pseudo" et qui à l'adresse de notre serveur Web.
if (isset($_COOKIE['pseudo'])) {
echo 'Bonjour '.$_COOKIE['pseudo'];
}
//Sinon on rempli le formulaire pour se faire connaitre
else {
echo '<form action = "traitement.php" method="post">';
echo ' Votre nom : <input type = "text" name = "nom"></br>';
echo ' Votre age : <input type = "text" name = "age"></br>';
echo ' <input type = "submit" value = "Soumettre">';
echo '</form>';
}
?>
</body>
</html>
Page de traitement (traitement.php) :
<?php
if (isset ($_POST['nom'])) {
//On défini la durée de validité de notre cookies, ci-dessous 120 secondes
$temp = 120;
// On crée le Cookie en récupérant la valeur de "nom" saisie dans le formulaire.
setcookie ("pseudo", $_POST['nom'], time() + $temp);
// Fonction permettant de faire des redirections
function redirection($url){
if (headers_sent()){
print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
}
else {
header("Location:$url");
}
}
// On lance la fonction de redirection pour rediriger l'internaute vers formulaire.php
redirection ('formulaire.php');
}
else {
echo 'La variable du formulaire n\'est pas déclarée.';
}
?>
Nous allons créer 4 pages :
<html> <head> <title>Formulaire de Login</title> </head> <body> <form action="login.php" method="post"> Votre login : <input type="text" name="login"><br /> Votre mot de passe : <input type="password" name="pwd"><br /> <input type="submit" value="Connexion"> </form> </body> </html>
<?php
// Ci-dessous les login et mot de passe valides defini en dur. Ces donnees seraient peut placees en base de données
$login_valide = "moi";
$pwd_valide = "lemien";
// On verifie que le login et le mot de passe du formulaire sont definis
if (isset($_POST['login']) && isset ($_POST['pwd'])){
// On compare le login et le mot de passe du formulaire avec les login et pass valide defini plus haut
if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']){
// S'ils correspondent on demarre la session
session_start ();
// On enregistre les parametres comme variables de sessions
$_SESSION['login'] = $_POST['login'];
$_SESSION['pwd'] = $_POST['pwd'];
// On recupere quelques parametre concernant notre session
$_SESSION['ID'] = session_id();
$_SESSION['name'] = session_name();
// On redirige le visiteur authentifié vers notre section membre
header ('location: page_membre.php');
}
else {
// Sinon le visiteur est non reconnu
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
echo '<meta http-equiv="refresh" content="0;URL=index.htm"';
}
}
else {
echo 'Veuillez renseigner tous les champs';
}
?>
<?php
// On demarre la session (ceci est a faire sur toutes les pages de notre section membre
session_start();
// On recupere nos variables de session pour valider que les login et pass sont toujours valide avant d'afficher le contenu
if (isset($_SESSION['login']) && isset($_SESSION['pwd'])) {
echo '<html>';
echo '<head>';
echo '<title>Page de notre section membre</title>';
echo '</head>';
echo '<body>';
// On affiche quelque elements relatifs à notre session
echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est '.$_SESSION['pwd'].'.<br />';
echo 'Votre NOM de session '.$_SESSION['name'].' et votre ID de session est '.$_SESSION['ID'].'.<br />';
echo '</body>';
echo '<a href="./logout.php">Deconnection</a>';
}
else {
echo 'Vous n\'etes pas authentifier';
}
?>
<?php
// On demarre la session (comme dans toute nos pages membres
session_start ();
// On supprime les variables de session
session_unset ();
// On detruit notre session
session_destroy ();
// On redirige le visiteur sur la page d'accueil
header ('location: index.htm');
?>
<html>
<head>
<title>Formulaire pour envoyer un fichier</title>
</head>
<body>
<form action="send_fichier.php" method="post" enctype="multipart/form-data">
Votre fichier : <input type="file" name="mon_fichier">
<input type="hidden" name="MAX_FILE_SIZE" value=200000000000>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
<html>
<head>
<title>Page de récupération du fichier</title>
</head>
<body>
<?php
// On test si les variable sont défnies
if (isset($_FILES['mon_fichier']['name']) && isset($_FILES['mon_fichier']['size']) && isset($_FILES['mon_fichier']['tmp_name']) && isset($_FILES['mon_fichier']['type']) && isset($_FILES['mon_fichier']['error'])) {
// On affiche les différentes valeurs relatives a notre fichier
echo 'Nom d\'origine : '.$_FILES['mon_fichier']['name'].'<br />';
echo 'Taille : '.$_FILES['mon_fichier']['size'].'<br />';
echo 'Nom sur le serveur : '.$_FILES['mon_fichier']['tmp_name'].'<br />';
echo 'Type de fichier : '.$_FILES['mon_fichier']['type'].'<br />';
echo 'Code erreur : '.$_FILES['mon_fichier']['error'].'<br />';
// Ci-dessous on enregistre le fichier dans son répertoire définitif
$dir_destination = '/var/www/test-php';
move_uploaded_file($_FILES['mon_fichier']['tmp_name'], $dir_destination.'/'.$_FILES['mon_fichier']['name']);
}
else {
echo 'Nos variables ne sont pas déclarées.';
}
?>
</body>
</html>
<?php
// On defini les parametre d'acces a la base de donnees dans une variable
$param_access_db = mysql_connect ('127.0.0.1', 'root', 'abcd1234');
// On se connect a la base de données "phpdb" avec les parametre de la variable ci-dessus
mysql_select_db ('phpdb', $param_access_db);
// On stock le requete SQL dans une variable
$sql = 'SELECT * FROM liste_proprietaire';
// On lance la requete
$req = mysql_query($sql);
// On stock les donnees dans un tableau
$data = mysql_fetch_array($req);
// On libere le memoire
mysql_free_result ($req);
// Ci-dessous on ne peut afficher qu'un seul resultat
echo 'Nom :'.$data['nom']."\n";
echo "\n";
// On stock la requete SQL dans une variable
$sql = 'SELECT * FROM liste_proprietaire';
// On lance la requete
$req = mysql_query($sql) or die ('Erreur SQL :'.$sql.":\n".mysql_error()."\n");
// Tant qu'il y a des resultat a notre requete les affiches comme on veut
while ($data = mysql_fetch_array($req)) {
echo 'Nom :'.$data['nom']."\n";
echo 'Tel :'.$data['telephone']."\n";
echo "\n";
}
// On libere le memoire
mysql_free_result ($req);
// On ferme la connexion SQL
mysql_close ();
?>
Voir sql pour connaitre les requêtes SQL