Cours 3 : php, premier contact

Les grandes lignes

  • Les balises php

    Ceci est recopié tel quel,
    <?php echo "ceci est évalué par l'interpréteur."; ?>
    

    On peut appeler php en ligne de commande :

    [shell] cat test.php
    Ceci est recopié tel quel,
    <?php echo "ceci est évalué par l'interpréteur."; ?>
    [shell] php test.php
    Ceci est recopié tel quel, ceci est évalué par l'interpréteur
    

    Ce qu’affiche l’interpréteur, c’est ce que recevra le navigateur.

  • Du html au php

    • On écrit une version statique du html
    • On identifie les passages qui doivent être produits dynamiquement
    • On remplace chaque passage par un ou plusieurs appels de fonction et on écrit la fonction correspondante en haut du fichier
  • Un principe général en programmation : copier / coller => factoriser

  • Dictionnaires en php : tableaux avec des champs

    $user["name"] = "bob";
    
  • Récupération d’un paramètre dans un script

    $_REQUEST['parametre']
    

    Par exemple, pour récupérer le paramètre id et le mettre dans la variable $id :

    $id = $_REQUEST['id'];
    
  • Passage d’un paramètre dans l’url

    <a href="user.php?id=12">bob</a>
    
  • Envoi de données par l’utilisateur : formulaire simple

    <form action="traite-form.php" method="get">
        <label for="input-pseudo">pseudo</label>
        <input type="text" id="input-pseudo" name="pseudo" />
        <input type="submit" value="go" />
    </form>
    

    Quand on envoie le formulaire (essayer ici), le navigateur charge l’url suivante :

    traite-form.php?pseudo=bob
    

    donc dans traite-form.php, on récupérera le paramètre avec $_REQUEST['pseudo].

Le code, en vrac

Vous pouvez voir le résultat de la page d’accueil :

index.php

<!DOCTYPE html>

<?php

function get_users_list()
{
  $alain = array( '_id' => 1, 'name' => 'alain b' );
  $hugues = array( '_id' => 2, 'name' => 'hugues l' );
  return array( $alain, $hugues );
}

function user_url($user)
{
  $id = $user['_id'];
  return "user.php?id=$id";
}

function print_user_with_link($user)
{
  echo '<a href="' . user_url($user) . '">';
  echo $user['name'];
  echo '</a>';
}

function print_users_list()
{
  echo "<ul>\n";
  $users = get_users_list();
  foreach($users as $user)
  {
    echo "<li>";
    print_user_with_link($user);
    echo "<li>\n";
  }
  echo "</ul>\n";
}

?>

<html>

  <head>
    <meta charset="utf8" />
    <title>Photobase</title>
    <meta name="author" content="Christophe Prieur" />
    <link rel="stylesheet" href="html5.css" />
    <link rel="stylesheet" type="text/css" href="photobase.css" />
  </head>

  <body>

    <?php include 'header.php'; ?>

    <section id="users">
      <header>
        <h2>Utilisateurs du service</h2>
      <header>
      <?php
        print_users_list();
      ?>
    </section>

    <?php include 'footer.php'; ?>

  </body>

</html>

header.php

<header id="main_header">
  <h1><a href="./">Photobase</a></h1>
  <p>des photos, une base</p>
</header>

footer.php

<footer id="credits">
  <p>
    Photobase est un site jouet à visée pédagogique.
    Les photos et les noms de leurs auteurs sont empruntés à la plateforme
    <a href="http://www.flickr.com">Flickr</a>.
  </p>
  <p>
    Pour aller sur ma page principale, <a href="HOME">c'est
      ici</a>.
  </p>
</footer>

user.php

Le script commencera par la récupération :

  • de l’id
  • puis des infos de l’utilisateur à partir de l’id

    <!DOCTYPE html>
    <?php
      $user = array();
      $user['_id'] = $_REQUEST['id'];
      get_user($user);
    ?>
    

Liens utiles, billets précédents

Cette entrée a été publiée dans Cours, avec comme mot(s)-clef(s) , , , . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Merci de répondre à cette question pour prouver que vous n'êtes pas un robot :

Combien font 4 x 4 ?