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 :

  • Vous avez un fichier 'global.php' contenant diverses informations ou méthodes.
  • Vous souhaitez y accéder depuis n'importe où de votre site sans le recopier dans chaque sous-répertoire ou inscrire le chemin relatif jusqu'à ce fichier dans chacun des programmes.
  • On suppose que vos fichiers .php se trouvent dans le site web principal (www.<mondomaine.ext>)
  • Vous devez donc créer “www/include” (sans les guillemets et en minuscules) et y stocker votre fichier “global.php” (il se trouve donc dans www/include/global.php vu depuis FTP)
  • Pour l'appeler depuis un fichier .php quelque soit l'endroit où il se trouve à l'intérieur du site web principal, il suffit de faire :
<?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

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 :

  • pas plus de 35 destinataires par appels à la fonction
  • taille des mails limité à 2Mo
  • détection antispam

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 example 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 expediteur
$to = "vous@domaine.com"; // le destinataire
$subject = "Test fonction mail() de PHP"; // le sujet du mail
$email = NULL;
$message = NULL;
 
// recuperation du champs email
if (!empty($_POST['email'])) {
  $email = $_POST['email'] ;
}
// recuperation du champs message
if ($email && !empty($_POST['message'])) {
  $message = "Message envoyé par $email :\n" . $_POST['message'];
}
 
if ($email && $message)
{
 
  # En-têtes oàbligatoires 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 "Envoie réussi";
  }
} 
else {
  echo "Erreur: vous devez specifier 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:

  • la version 4 qui est utilisée par défaut pour les fichiers nommés .php3 et .php
  • la version 5 qui est utilisée par défaut pour les fichiers nommés .php5

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.

 
hebergement-web/php.txt · Dernière modification: 2008/06/29 15:19 par obooklage
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki