Table des matières

Qu'est ce que PHP ?

PHP (venant de l'acronyme récursif PHP: Hypertext Preprocessor), est un langage de scripts libre principalement utilisé pour être exécuté par un serveur HTTP, mais il peut fonctionner comme n'importe quel langage interprété de façon locale, en exécutant les programmes en ligne de commande.
PHP est un langage procédural disposant en version 5 de fonctionnalités de modèle objet complètes. En raison de la richesse de sa bibliothèque, on désigne parfois PHP comme une plate-forme plus qu'un simple langage. (Définition de wikipédia)

Configuration du PHP d'Online

phpinfo est une fonction du langage PHP, elle permet de connaître les modules activés, la configuration du serveur, les restrictions et les paramètres de compilation du langage .

<?php
 
   // Affichage des informations sur le PHP utilisé :
   echo phpinfo();
 
?>

Vous pouvez consulter les PHPInfos de nos PHP ici :

Vous pouvez envoyer vos demandes de mise à jour, d'ajout de fonctionnalités ou de modifications en écrivant au service Feature Request

Comment utiliser les sessions ?

Les sessions sont un moyen pour conserver des informations pendant une visite. PHP4 inclue un 'gestionnaire de session' simplifiant le mécanisme.

Le gestionnaire de session est activé sur Online Hébergement. Par défaut, il s'agit des sessions 'fichiers' mais vous pouvez bien sûr développer votre propre systême.

Afin de permettre une gestion transparente des sessions, l'option –enable-trans-sid est activée. Elle permet une réécriture des URLs ou l'envoi de cookies permettant de suivre votre visiteur.

Important : Pour que vos sessions 'fichiers' (mode par défaut) fonctionnent, vous devez créer un répertoire “sessions” (en minuscules sans les guillemets)

à la racine de votre site Web (ou du cas échéant, de votre site Web secondaire).

Sinon un message d'erreur vous signalant l'impossibilite de sauvegarder les sessions apparaitra.

Quelques liens :

Un exemple simple :

1) il faut se connecter en ftp et créer le repertoire “sessions” (en minuscules sans les guillemets) à la racine de votre site Web.

C'est dans ce repertoire que seront sauvegardées vos sessions.

Créez un fichier “start.php” (attention a l'extension .php) contenant :

<?php
  session_start();
  session_register ("count");
  $count = 42;
  echo "On enregistre ".$count." <br>";
?>
  Pour aller a la page suivante, <A HREF="nextpage.php">cliquez ici</A>

Créez un fichier “nextpage.php” contenant :

<?php
  session_start();
  session_register("count");
  echo "La valeur précédente de count etait " . $count ."<br>";
?>

Téléchargez les fichiers dans votre compte et faites un test en appelant l'URL correspondante de start.php

Répertoire Racine (DocumentRoot)

Attention: Il est primordial de ne jamais utiliser de chemin absolu codé en ‘dur’, car le chemin est susceptible de changer et votre site serait alors inaccessible.

Cependant, vous pouvez(devez) utiliser la variable $DOCUMENT_ROOT qui pointe a la racine du site Web (ou du site secondaire) dans lequel se trouve votre script, vous serez donc sur de ne jamais avoir de déconvenues.

Exemple : Vous voulez savoir quel est le chemin correspondant a http://www.monsite.ext/unrepertoire/unautrerepertoire/

Il s’agit de $chemin = “$DOCUMENT_ROOT/unrepertoire/unautrerepertoire/”;

Répertoire d'inclusion (IncludePath)

Dans le cadre de la réalisation d'un site important, il est possible de centraliser les fichiers fréquemment inclus. Pour cela, un répertoire est ajouté par défaut à la liste de recherche des fichiers inclus.

Il n'est pas créé par défaut, pour ce faire, il suffit de créer un répertoire nommé “include” (sans les guillemets et en minuscules) à la racine du site web (ex: “www/include”).

Un tel répertoire n'est utilisable qu'à l'intérieur du site où il a été créé. Cela signifie que le répertoire du site Web principal (qui est donc nommé: “www/include”) n'est pas accessible d'un site Web secondaire (comme blog.domaine.com).

Exemple :

<?php
 include("global.php"); 
 // suite du code...
?>

ou encore

<?php
 require("global.php"); 
 // suite du code...
?>

(selon la méthode d'inclusion souhaitée)

Connexion à une base de donnée

Connexion persistante

Les connexions persistantes ne sont pas possibles du fait de l’architecture et sont effectuées en tant que connexion standard.

Connexion à votre base de donnée Online en PHP

Voir la section : Connexion à votre base de donnée Online

Uploader des fichiers

L'upload de fichiers via PHP est activé, la taille maximale d'un fichier est 10 Mo.

Vous devez renommer le fichier uploadé via la fonction move_updloaded_file avant la fin de votre script. Le fichier temporaire (nommée phpXXXXX) est effacé à la fin du script PHP4 le recevant.

 
<form method="post" enctype="multipart/form-data" action="upload.php">
<p>
<input type="file" name="fichier" size="30">
<input type="submit" name="upload" value="Uploader">
</p>
</form>
 
<?php
if( isset($_POST['upload']) ) // si formulaire soumis
{
   $tmp_file = $_FILES['fichier']['tmp_name'];
   $name_file = $_FILES['fichier']['name'];
 
 
    if( !is_uploaded_file($tmp_file) )
    {
          exit("Le fichier est introuvable");
    }
 
    if( !move_uploaded_file($tmp_file, $name_file) )
    {
          exit("Impossible de copier le fichier vers $name_file");
    }
 
    echo "Le fichier a bien été uploadé et se trouve ici $name_file";
}
 
?>

Envoyer des emails

La fonction mail() de PHP est activée, cependant il y a quelques limitations :

La fonction mail renvoie TRUE en cas de succès et FALSE si l'une de ces conditions n'est pas respectée.

Nous supposons dans cet exemple que le nom de domaine hébergé est “domaine.com”.

<?php
 
// Adresse valide du destinataire
$to = "contact@domaine.com";
 
// Sujet du message 
$subject = "Test fonction mail() de PHP";
 
// Corps du message
$message = "Bonjour,\nl'envoi du mail via PHP a reussit. Le webmaster\n";
 
// En-têtes du message
$headers = "From: Webmaster Site <webmaster@domaine.com>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
 
// Appel à la fonction mail
if ( mail($to, $subject, $message, $headers) == TRUE )
{
   echo "Envoi du mail reussi.";
}
else
{
   echo "Erreur : l'envoi du mail a echoue.";
}
 
?>

Créer un formulaire de contact (form2mail)

Nous supposons dans cet exemple que le nom de domaine hébergé est “domaine.com”.

Créer un fichier “form.html” que vous mettrez en ligne via FTP.

<html>
<body> 
<form action="form2mail.php" method="post">
Entrez votre adresse mail: <input type="text" name="email"><br>
Message:<br>
<textarea name="message" rows="8" cols="50"></textarea><br>
<input type="submit" value="Envoyer le mail">
</form> 
</body>
</html>

Créer un second fichier “form2mail.php” que vous mettrez en ligne via FTP.

<?php
 
/* Initialisation des variables */
$from = "webmaster@domaine.com"; // l'expéditeur : remplacer ici domaine.com par votre domaine
$to = "vous@domaine.com"; // le destinataire : mettez ici votre adresse mail
 
/* Préparation */
$subject = "Test fonction mail() de PHP"; // le sujet du mail
$email = NULL;
$message = NULL;
 
/* Récupération du champs email */
if (!empty($_POST['email'])) {
  $email = $_POST['email'] ;
}
/* Récupération du champs message */
if ($email && !empty($_POST['message'])) {
  $message = "Message envoyé par $email :\n" . $_POST['message'];
}
 
/* Envoi*/
if ($email && $message)
{
 
  /* En-têtes obligatoires du message */
  $headers = "From: Webmaster <$from>\n";
  $headers .= "To: Contact <$to>\n";
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-type: text/plain; charset=iso-8859-15\n";
 
 /*  Appel a la fonction mail */
  if (!mail($to, $subject, $message, $headers)){
     echo "Erreur: Impossible d'envoyer le mail";
  } else {
     echo "Envoi réussi";
  }
} 
else {
  echo "Erreur: vous devez spécifier une adresse email valide et un texte\n";
}
 
?>

Activer PHP5

Attention: Quand vous uploadez votre fichier .htaccess, vérifier bien que le mode de transfert FTP est "TEXTE" et non pas "BINAIRE", sinon vous aurez une erreur http 500.

Online vous propose deux versions de PHP:

Si vous souhaitez faire exécuter vos fichiers .php (ou .php3) par le moteur PHP5, il vous suffit de rajouter la ligne suivante dans un fichier .htaccess :

# Pour faire parser les fichiers .php par PHP5
AddType application/x-httpd-php5 .php

# Pour faire parser les fichiers .php3 par PHP5
AddType application/x-httpd-php5 .php3

Restrictions

Safe Mode

Le safe mode est activé en PHP4 (pas en PHP5), et ce paramètre n'est pas modifiable .

chmod & chown

La modifications des droits est prohibé, les fichiers uploadés via PHP et/ou via FTP ont déja les droits suffisants pour faire toutes les opérations nécessaires .

system / exec / popen

L'exécution de programme binaires, d'exécutables ou de cgi est prohibé pour des raisons de sécurité.

ASP/CGI

Pas d'asp, ni de cgi (cgi-bin), ni de programmes exécutables.