|
|
|
|
Bonjour, j'ai recement eu un probleme avec le livre d'or.
Voici le code source :
<?php
include ("includes/header.php");
include ("includes/menu.php");
include_once ("includes/bdd.php");
?>
<div id="corps">
<form method="post" action="livreor.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
<?php if(isset($_SESSION['id']))
{ ?>
Pseudo : <strong><?php echo $_SESSION['pseudo'] ;?></strong><br />
<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo'] ?>"/>
<?php }
else
{ ?>
Pseudo : <input name="pseudo" /><br />
<?php } ?>
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("****", "****", "****");
mysql_select_db("riridi");
// --------------- 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 = nl2br(mysql_real_escape_string(htmlspecialchars($_POST['message']))); // De même pour le message ; Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
$ip = $_SERVER['REMOTE_ADDR'];
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . $ip . "')");
}
// --------------- 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 = 20; // Essayez de changer ce nombre pour voir :o)
// 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 '<div="message_or"><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p></div>';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
<div id="clear:both">
<?php include("includes/pied.php")?>
Configuration: Windows XP Firefox 3.0.5
Aussi rajoute or die (mysql_error());après mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . $ip . "')"); comme ca mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . $ip . "')")or die (mysql_error()); au cas ou cela serait une erreur de requête SQL.
Windows XP ne peut pas démarrer choisissez un OS :
- MS-DOS 6.0 - Windows 3.1 |
Excuse moi arthezius
|
<?php
include ("includes/header.php");
include ("includes/menu.php");
include_once ("includes/bdd.php");
?>
<div id="corps">
<form method="post" action="livreor.php">
<p>Mon site vous plaît ? Laissez-moi un message !</p>
<p>
<?php if(isset($_SESSION['id']))
{ ?>
Pseudo : <strong><?php echo $_SESSION['pseudo'] ;?></strong><br />
<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo'] ;?>"/>
<?php }
else
{ ?>
Pseudo : <input name="pseudo" /><br />
<?php } ?>
Message :<br />
<textarea name="message" rows="8" cols="35"></textarea><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<p class="pages">
<?php
mysql_connect("***", "***i", "***");
mysql_select_db("***");
// --------------- 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 = nl2br(mysql_real_escape_string(htmlspecialchars($_POST['message']))); // De même pour le message ; Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
$ip = $_SERVER['REMOTE_ADDR'];
// On peut enfin enregistrer :o)
mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "', '" . $ip . "')")or die (mysql_error());
}
// --------------- 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 = 20; // Essayez de changer ce nombre pour voir :o)
// 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 '<div="message_or"><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p></div>';
}
mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
?>
<div id="clear:both">
<?php include("includes/pied.php")?>
Toujours plus haut, toujours plus loin toujours plus .......... heuu... Patientez S.V.P M.Web-actu a oublié ce qu'il voulez dire |
Vérifie le schéma de ta table. D'après cette page http://www.vulgarisation-informatique.com/... lorsque cette erreur arrive cela veut dire que tu as oublie de précisé une colonne dans ta requête.
|
Si tu as une table dans ta base de donnée qui comporte 5 colonnes (tu peux vérifier en cas de doute via phpmyadmin) et que tu veux entrer des données via un INSERT INTO, il faut être sur que les données iront dans les bonnes colonnes.
INSERT INTO livreor VALUES ('', '', '', '')
C'est le cas d'une table à 4 colonnes. Chaque '' correspondant à une colonne. Si tu as 2 colonnes, le code sera: INSERT INTO livreor VALUES ('', '')
Si tu as 5 colonnes, le code sera: INSERT INTO livreor VALUES ('', '', '', '', '')
Si tu as 6 colonnes, le code sera: INSERT INTO livreor VALUES ('', '', '', '', '', '')
Si tu as 10 colonnes, le code sera: INSERT INTO livreor VALUES ('', '', '', '', '', '', '', '', '', '')
Etc... J'espère avoir été clair. Webmaster indépendant. |
Et la colonne ou tu met l'adresse IP elle est où ? rajoute s'en une en fin de table si elle n'existe pas. Comme disait Giheller par contre l'inverse ( 4 valeurs dans un table qui n'a que 3 colonnes) donne le message d'erreur spécifié c'est peut-être l'erreur que tu as fais
Windows XP ne peut pas démarrer choisissez un OS :
|