Problème Php

Bonsoir,

J'ai réalisé ça mais lorsque on a sais son age il ne trouve pas la page car la variable $age n'est pas remplacée dans l'adresse.

Pourquoi elle n'est pas remplacée ?

<?php
if (isset($_POST['age']))
{
$age = $_POST['age'];
header('Location: index.php?age=$age');
}
else
{
?>
<p align="center">Bonjour,
Merci de saisir votre age :</br>
</p>
<form method="post">
<div align="center">
<input type="text" name="age" />
<input type="submit" value="Valider" />
</p>
</div>
</form>
<?php
}

?>

6 réponses

  1. Bonjour

    Cannot modify header information ça, c'est presque à coup sûr parce que tu as laissé des lignes vides avant le <?php

    echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?age=index.php?age=$age>';
    tu n'as pas lu les explications de iunity et Alian_42 ? Tu recommences exactement la même faute !
    1. Sinon j'ai essayé ça mais ça ne fonctionne pas :
      echo '<META HTTP-EQUIV="Refresh" CONTENT="0; URL=index.php?age=index.php?age=$age>';
      1. Oui mais j'ai un problème, quand je l'ais essayé en ligne sur un site free.
        J'ai eu ce message :

        Warning: Cannot modify header information - headers already sent by (output started at /mnt/165/sda/f/9/*****/index.php:3) in /mnt/165/sda/f/9/****/index.php on line 9
        1. Bonsoir,

          deux anomalies:

          header('Location: index.php?age=$age');

          entre les ' les variables ne sont pas interprétées

          mets:

          header("Location: index.php?age=$age"); 


          ou
          header('Location: index.php?age='.$age); 


          et revois les tutos sur les formulaires

          dans <form il faut name="...." method="...." action=".....">

          @lain
          1. Il faut remplacer
            header('Location: index.php?age=$age');

            par
            header('Location: index.php?age='.$age);


            Dans ton code, la variable $age se trouve entre les quotes ( ' ), et elle n'est donc pas interprétée. Tu pourrais aussi remplacer les quotes par des guillemets ( " ). De cette manière les variables sont interprétées quand même, mais l'exécution est plus lente.