PHP_SELF

Résolu
cotta Messages postés 308 Statut Membre -  
cotta Messages postés 308 Statut Membre -
Bonjour,
mon pb c'est que je veut afficher le contenu de mon livre d'orsur une méme page, j'au utilisé le PHP_SELF mais j'ai constament ce msg d'erreur !!

You don't have permission to access /web_ormes-immo/ormes/<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>c:\program files\easyphp12-8\www\web_ormes-immo\ormes\livreor.php</b> on line <b>429</b><br /> on this server.

voila mon script:

<?php

$localhost="localhost"; //Non du l'hote
$user="root"; //Nom de user
$passwoed="";// Mot de passe de user
$base ="agence_ormes"; //le nom de votre base// ";
$table ="livreor"; //la table sur laquelle ce script va enrengistrer les donnees (ex: livre_or)//

?>

<form method="post" action=" <?php $PHP_SELF ; ?>">
<p></p>
<p>
<span class="txt-livreor"> Pseudo :   <input name="pseudo" /><br /></span>
<span class="txt-livreor" > Message :  <br /></span>
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Envoyer" class="txt-mois">
<input type="reset"value="Effacer" class="txt-mois">
</p>
</form>

<p class="pages">

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("agence_ormes");

// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
// On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
// De même pour le message
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

// On met dans une variable le nombre de messages qu'on veut par page
$nombreDeMessagesParPage = 5; // on va essayez de changer ce nombre pour voir
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
// On calcule le nombre de pages à créer
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
// Puis on fait une boucle pour écrire les liens vers chacune des pages
echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>

<?php

// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
$page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
}

?>
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonsoir,

    essayes comme ça:

    <form method="post" action=" <?php $_SERVER['PHP_SELF'] ; ?>">
    
    0
    1. cotta Messages postés 308 Statut Membre 3
       
      slt, cava
      oui je l'ai essayé mais j'ai encore ce message d'erreur:

      Notice: Undefined index: pseudo in c:\program files\easyphp12-8\www\web_ormes-immo\ormes\livreor.php on line 440

      Notice: Undefined index: message in c:\program files\easyphp12-8\www\web_ormes-immo\ormes\livreor.php on line 441
      Page : 1

      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp12-8\www\web_ormes-immo\ormes\livreor.php on line 498

      je sais pas pourquoi il reconnait pas le tableau, le probléme c'est que j'ai déja fait ce script et ca maché trés bien !!!
      0
    2. cotta Messages postés 308 Statut Membre 3
       
      <?php

      $localhost="localhost"; //Nom du l'hote
      $user="root"; //Nom de user
      $passwoed="";// Mot de passe de user
      $base ="agence_ormes"; //le nom de votre base// ";
      $table ="livreor"; //la table sur laquelle ce script va enrengistrer les donnees (ex: livre_or)//
      $req= "select * from $table ";

      ?>



      <form method="post" action=" <?php $_SERVER['PHP_SELF'] ; ?>">
      <p></p>
      <p>
      <span class="txt-livreor"> Pseudo :   <input name="pseudo" /><br /></span>
      <span class="txt-livreor" > Message :  <br /></span>
      <textarea name="message" rows="8" cols="35"></textarea><br />
      <input type="submit" value="Envoyer" class="txt-mois">
      <input type="reset"value="Effacer" class="txt-mois">
      </p>
      </form>

      <p class="pages">

      <?php
      mysql_connect("localhost", "root", "");
      mysql_select_db("agence_ormes");

      // --------------- Etape 1 -----------------
      // Si un message est envoyé, on l'enregistre
      // -----------------------------------------
      $pseudo=$_POST['pseudo'];
      $message=$_POST['message'];

      if (isset($_POST['pseudo']) AND isset($_POST['message']))
      {
      $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
      // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
      $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
      // De même pour le message
      $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />

      // On peut enfin enregistrer :o)

      mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
      }

      // --------------- Etape 2 -----------------
      // On écrit les liens vers chacune des pages
      // -----------------------------------------

      // On met dans une variable le nombre de messages qu'on veut par page
      $nombreDeMessagesParPage = 5; // on va essayez de changer ce nombre pour voir
      // On récupère le nombre total de messages
      $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
      $donnees = mysql_fetch_array($retour);
      $totalDesMessages = $donnees['nb_messages'];
      // On calcule le nombre de pages à créer
      $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
      // Puis on fait une boucle pour écrire les liens vers chacune des pages
      echo 'Page : ';
      for ($i = 1 ; $i <= $nombreDePages ; $i++)
      {
      echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
      }
      ?>

      </p>

      <?php

      // --------------- Etape 3 ---------------
      // Maintenant, on va afficher les messages
      // ---------------------------------------

      if (isset($_GET['page']))
      {
      $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
      }
      else // La variable n'existe pas, c'est la première fois qu'on charge la page
      {
      $page = 1; // On se met sur la page 1 (par défaut)
      }

      // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

      $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

      while ($donnees = mysql_fetch_array($reponse))
      {
      echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
      }


      ?>
      0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    <?php
    
    $localhost="localhost"; //Nom du l'hote
    $user="root"; //Nom de user
    $passwoed="";// Mot de passe de user
    $base ="agence_ormes"; //le nom de votre base// ";
    $table ="livreor"; //la table sur laquelle ce script va enrengistrer les donnees (ex: livre_or)//
    $req= "select * from $table ";
    
    ?>
    
    
    
    <form method="post" action=" <?php $_SERVER['PHP_SELF'] ; ?>">
    <p></p>
    <p>
    <span class="txt-livreor"> Pseudo :   <input name="pseudo" /><br /></span><!-- tu n'as pas l'impession qu'il manque des attributs à cet <input ?? type=  value=-->
    <span class="txt-livreor" > Message :  <br /></span>
    <textarea name="message" rows="8" cols="35"></textarea><br />
    <input type="submit" value="Envoyer" class="txt-mois">
    <input type="reset"value="Effacer" class="txt-mois">
    </p>
    </form>
    
    <p class="pages">
    
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("agence_ormes");
    
    // --------------- Etape 1 -----------------
    // Si un message est envoyé, on l'enregistre
    // -----------------------------------------
    //ci dessous pourquoi tu récuperes pseudo et message alors qu etu le fias 5 ligne splus base
    //et tu ne peux le faire que si tu as teste if(isset(...
    //$pseudo=$_POST['pseudo'];
    //$message=$_POST['message'];
    
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    {
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
    $message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
    // De même pour le message
    $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
    
    // On peut enfin enregistrer :o)
    
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
    }
    
    // --------------- Etape 2 -----------------
    // On écrit les liens vers chacune des pages
    // -----------------------------------------
    
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 5; // on va essayez de changer ce nombre pour voir
    // On récupère le nombre total de messages
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
    echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
    
    </p>
    
    <?php
    
    // --------------- Etape 3 ---------------
    // Maintenant, on va afficher les messages
    // ---------------------------------------
    
    if (isset($_GET['page']))
    {
    $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
    $page = 1; // On se met sur la page 1 (par défaut)
    }
    
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
    
    $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
    
    while ($donnees = mysql_fetch_array($reponse))
    {
    echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
    }
    
    
    ?>
    0
    1. cotta Messages postés 308 Statut Membre 3
       
      Ah oui ta raison ca marche, j'ai trouvé l'insertion dans ma table livreor,

      mais il ya une chose qui va me rendre folle pourquoi ce msg d'erreur :



      Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp12-8\www\web_ormes-immo\ormes\livreor.php on line 498


      pourkoi il ne reconné ps le tableau?
      0
    2. cotta Messages postés 308 Statut Membre 3
       
      Le probleme c'est que la derniére etape ca marche pas , l'insertion ci, mais l'affichage non, ta une idée?
      0
    3. cotta Messages postés 308 Statut Membre 3
       
      // --------------- Etape 3 ---------------
      // Maintenant, on va afficher les messages
      // ---------------------------------------

      if (isset($_GET['page']))
      {
      $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
      }
      else // La variable n'existe pas, c'est la première fois qu'on charge la page
      {
      $page = 1; // On se met sur la page 1 (par défaut)
      }

      // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
      $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

      $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

      while ($donnees = mysql_fetch_array($reponse))
      {
      echo '<table height="10%" width="80%" border="0" bordercolor="lavender">
      <tr bgcolor="#0099FF">
      <td width="100%" height="5%" align="center" valign="middle">' . $donnees['pseudo'] . '</tr>
      <tr align="center" valign="middle"><td width="100%" height="50%" bordercolor="lavender" bgcolor="white"> a écrit :<br />'
      . $donnees['message'] . '</p>';
      }

      mysql_close();
      ?>
      0
    4. Alain_42 Messages postés 5413 Statut Membre 904 > cotta Messages postés 308 Statut Membre
       
      Ce message d'erreur veut dire que la ressource passsée à mysql_fetch_array n'est pas bonne donc ça vient de ta requette juste avant:

      mets comme ça:

      
      $reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage) or die("Pb requette: ".mysql_error());
      
      
      
      0
    5. cotta Messages postés 308 Statut Membre 3 > Alain_42 Messages postés 5413 Statut Membre
       
      stp tu peut me renvoyé ta solution j'ai l'affichage decalé j peu pas lire,
      excuse moi pr ce derangement
      0