Problème header php

Résolu
Bonjour,

Je rencontre un petit problème en PHP, j'aimerais rediriger l'utilisateur vers une page précise.

Voici le code source :

<?php
require('comunia/data.php');
mysql_connect('localhost','root','');
mysql_select_db('identity');
?>
  <?php
if(!empty($_POST) && !empty($_POST['id']) && !empty($_POST['comment']))
{

  $id = stripcslashes($_POST['id']);
  $comment = stripcslashes($_POST['comment']);

  $req = $bdd->prepare('INSERT INTO place (id,comment) VALUES (:id,:comment)');
$req->execute(array(':id'=>$id, ':comment'=>$comment));
  $req->closeCursor();
    $id = strip_tags($_GET['id']);
  $req = $bdd->prepare('SELECT * FROM page WHERE id=:id');
  $req->execute(array(':id'=>$id));
  while($data = $req->fetch(PDO::FETCH_OBJ)):

header("location:page.php?id=echo $id;");
endwhile;
}
else{
	header('Location :index.php');
}
?>


Je sais bien qu'il y a des erreurs un peu partout mais je ne suis que bidouilleur, pas développeur malheureusement. Si vous pouvez m'aidez ça serait ultra sympa.

5 réponses

  1. Est-ce que cela ne vient t'il pas plutôt de ma reqête, parce que ce script la est plutôt correct quand pensez vous ?
    header("location:page.php?id="echo $data->id;");
    0
    1. il faut écrire :
      header('Location: /page.php?id= '.$data->id);

      dans ce cas

      au lieu du echo (inutile d'afficher le texte et il n'a rien a faire là) il faut le concaténer

      par contre un header location doit être suivit d'un exit() pour que l'exécution s'arrête

      si il n'est pas suivit d' exit() l'exécution se poursuit jusqu'à la fin (souvent inutilement)
      0
    2. Yeahhhh ça fonctionne !!!! Merci :)
      0
  2. Oui voilà pourtant il est bien définit, vue que j'ai deux variables ID je me suis dit que ça pouvait poser un problème. Ça peut venir de là ?
    0
    1. Ah oui j'ai oublié de préciser l'erreur que cela me fait,

      Undefined index: id in C:\wamp\www\comment.php on line 16
      et puis cela me redirige pas vers ma page (page.php?id=identifiant) ça marque exactement ce que j'ai mis à la place, CAD que ça me met ça,
      location:page.php?id=echo $id;
      0
      1. header('Location: /page.php?id= '.$id);

        remplace par ça mais le message d'erreur dit que la variable $id n'est pas définit
        0
    2. bonsoir pour le header met plutot

      header('Location: /');

      sinon c'est ta connexion a la db qui n'est pas cohérente tu te connectes avec les fonctions mysql et tu fais tes requêtes avec pdo

      il vaut mieux faire ses requêtes en pdo mais il faut te connecter avec

      $bdd = new PDO('mysql:dbname=testdb;host=localhost','root','');
      0
      1. Oui c'est déjà fait mais merci comme même :)
        data.php (database)
        <?php
        try{
        $bdd = new PDO('mysql:host=localhost;dbname=identity', 'root', '') or die(print_r($bdd->errorInfo()));
        $bdd->exec('SET NAMES utf8');
        }
        
        catch(Exeption $e){
        die('Erreur:'.$e->getMessage());
        }
        ?>
        0
    3. hello

      essaye plutot ça à la place de: header("location:.....");

      echo '<meta http-equiv="refresh" content="0;URL=page.php">';

      0 correspond au nombre de seconde avant l'envoi de la page.
      0