PHP_SELF

Résolu/Fermé
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 - 4 janv. 2009 à 16:50
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 - 4 janv. 2009 à 20:46
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>';
}


?>

2 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 janv. 2009 à 18:13
Bonsoir,

essayes comme ça:

<form method="post" action=" <?php $_SERVER['PHP_SELF'] ; ?>">
0
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3
4 janv. 2009 à 18:17
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
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3
4 janv. 2009 à 18:19
<?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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 janv. 2009 à 18:32
<?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
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3
4 janv. 2009 à 18:41
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
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3
4 janv. 2009 à 18:55
Le probleme c'est que la derniére etape ca marche pas , l'insertion ci, mais l'affichage non, ta une idée?
0
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3
4 janv. 2009 à 18:58
// --------------- 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
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010
4 janv. 2009 à 20:17
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
cotta Messages postés 294 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 3 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
4 janv. 2009 à 20:21
stp tu peut me renvoyé ta solution j'ai l'affichage decalé j peu pas lire,
excuse moi pr ce derangement
0