Aucune reponse la base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Aucune reponse la base de données

par Ryle » 19 mars 2008, 09:37

Je note que tu n'as pas remplacé tous les "<?" par des "<?php" j'en vois encore deux qui trainent... et le problème vient vraissemblablement de là, puisque le navigateur reçoit une partie de ton code php alors qu'il ne devrait pas le voir....

Si les short tags ne sont pas activés, ce code n'est pas considéré comme du php, donc pas exécuté sur le serveur, mais bêtement envoyé au navigateur qui fait son possible pour afficher un truc qui n'a aucun sens. Il va nottament considérer ceci comme une balise html :

Code : Tout sélectionner

<? // Fonction d'écriture des messages et réponses function ecrit($id) { $SQL = "SELECT * FROM forum_messages WHERE ID=".$id . " OR reponse=".$id." ORDER BY ID"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { // Bouton "Répondre" ? if(!$val["reponse"]) { echo "<button onclick='repond(".$val["ID"].")'>
puisqu'elle commence par "<" et se termine par ">". Ce qui explique qu'il t'affiche à l'écran ce qui suit dans ton code...

par zeus » 18 mars 2008, 21:40

Donnes nous le nom de ton fichier.

Où se trouve ton serveur web ? Est-ce qu'il est démarré ? que se passe-t-il quand tu appelles directement http://localhost/ ?

par Invité » 18 mars 2008, 20:59

Voila le code généré par la page :
<HTML><HEAD>
   <TITLE>Mini-forum : Etape 2</TITLE>
   <SCRIPT language="JavaScript"><!--
      function repond(id) {
         document.form1.reponse.value=id
         document.form1.submit()
      }
   --></SCRIPT>
</HEAD><BODY bgcolor="#FFFFFF"><center>

   <!-- Formulaire de saisie -->

   <table>
      <form method="post" action="index.php" name="form1">
         <tr>
            <td align=right>Login</td><td>
               <input name="login" maxlength=15>
            </td><td rowspan=3>
               <textarea name="message" cols=60 rows=5
                  ></textarea>
            </td>
         </tr><tr>
            <td align=right>Email</td><td>
               <input name="email" maxlength=50>
            </td>
         </tr><tr>
            <td colspan=2 align=center>
               <input type="submit" value="Nouveau sujet">
               <input type="hidden" name="reponse">
            </td>
         </tr>
      </form>
   </table>

   <!-- Affichage des messages -->

   <table border=1 cellspacing=0 cellpadding=5 width=100%>

      <?
// Fonction d'écriture des messages et réponses
function ecrit($id) {
   $SQL = "SELECT * FROM forum_messages WHERE ID=".$id
      . " OR reponse=".$id." ORDER BY ID";
   $res = mysql_query($SQL);
   while($val=mysql_fetch_array($res)) {
      // Bouton "Répondre" ?
      if(!$val["reponse"]) {
         echo "<button onclick='repond(".$val["ID"].")'>"
            . "Répondre</button>";
      } else {
         echo "<hr size=1>";
      }
      // Ecrit la date du message
      echo date("d/m/Y",$val["quand"]);
      // Ecrit le login de l'auteur
      echo " - ".$val["login"];
      echo "<br>";
      // Ecrit le message, n'autorise pas les code html ;)
      echo htmlentities($val["message"]);
   }
}

      // Requête de sélection des messages initiaux
      $SQL = "SELECT ID FROM forum_messages"
         . " WHERE reponse=0 ORDER BY ID DESC";
      $res = mysql_query($SQL);
      // Tant qu'il y a des messages
      while($val=mysql_fetch_array($res)) {
         // Nouvelle ligne
         echo "<tr><td>";
         // Ecrit le message et ses réponses
         ecrit($val["ID"]);
         // Fin de ligne
         echo "</td></tr>";
      }
      ?>

   </table>

</center></BODY></HTML><?

// === DECONNEXION ===
mysql_close();

?>

par Ryle » 18 mars 2008, 19:13

Sur la page générée, tu fais un "clic droit" > "Afficher le source" (ou via le menu "Affichage" > "Source" en général)

Cela devrait te montrer le code html qui a été généré par php et donc le code que le navigateur tente d'interpreter. On y verra peut être ce qui cloche et pourquoi la fin de ton code php n'est pas interprété comme tel :)

par chipielechats » 18 mars 2008, 19:04

Comment je fais pour te montrer le code source généré par le deuxieme tableau ?

par Ryle » 18 mars 2008, 17:22

Tu peux nous montrer le code source généré pour le second tableau ? Doit y avoir un problème d'apostrophe ou de guillemet autour d'un attribut...

par chipielechats » 18 mars 2008, 16:28

cela ne change rien !

par Ryle » 18 mars 2008, 11:25

Et avec de vraies balises "<?php" plutôt que les open short tags "<?" qui ne sont peut être pas activés sur ton serveur, ça marcherait-y pas mieux ? :)

par Invité » 18 mars 2008, 11:16

Re: Aucune reponse la base de données

par zeus » 17 mars 2008, 19:39

il ne s'execute pas.
C'est à dire ?
Rien ne s'affiche ? erreurs ?

Est-ce que ton serveur est configuré pour afficher les erreurs ? (fait un phpinfo() et donne nous la valeur de la variable 'error_reporting')

Aucune reponse la base de données

par chipielechats » 17 mars 2008, 19:29

Bonjour, voila j'ai un probleme avec mon code php, il ne s'execute pas. Et je ne trouve pas l'erreur. Pouvez vous m'aidez sil vous plait !


Code : Tout sélectionner

# # Base de données: `forum` # Structure de la table `forum_messages` # CREATE TABLE forum_messages ( ID int(11) NOT NULL AUTO_INCREMENT, quand int(11) DEFAULT NULL, login varchar(15) NOT NULL DEFAULT '', email varchar(50) NOT NULL DEFAULT '', message text NOT NULL, reponse int(11) NOT NULL DEFAULT '0', KEY ID (ID) ) TYPE=MyISAM
<?
/*
   Mini-forum en PHP - Etape 2
   http://www.asp-php.net/scripts/asp-php/mini-forum.php
*/
 
// === CONNEXION A LA BD ===
 
// On teste si on est en local ou non
$isLocal = ($_SERVER["SERVER_NAME"]=="localhost");
// Paramètres de connexion en local ou sur site
// Remplacer ??? par les paramètres del'hébergement
$host = ($isLocal) ? "localhost" : "???"; 
$user = ($isLocal) ? "root" : "???"; 
$pass = ($isLocal) ? "" : "???"; 
$bdd = ($isLocal) ? "forum" : "???";
// connexion
mysql_connect($host,$user,$pass);
mysql_select_db($bdd);
 
 
// === AJOUT DU MESSAGE EVENTUEL ===
 
if(@$_POST["message"]) {
   $SQL = "INSERT into forum_messages"
      ."(quand,login,email,message"
      .",reponse) VALUES(" . time()
      .",'".$_POST["login"]."'"
      .",'".$_POST["email"]."'"
      .",'".addslashes($_POST["message"])."'"
      .",'".$_POST["reponse"]."'"
      .")";
   mysql_query($SQL);
}
 
// === AFFICHAGE DE LA PAGE ===
 
?><HTML><HEAD>
   <TITLE>Mini-forum</TITLE>
   <SCRIPT language="JavaScript"><!--
      function repond(id) {
         document.form1.reponse.value=id
         document.form1.submit()
      }
   --></SCRIPT>
</HEAD><BODY bgcolor="#FFFFFF"><center>
 
   <!-- Formulaire de saisie -->
 
   <table>
      <form method="post" action="index.php" name="form1">
         <tr>
            <td align=right>Login</td><td>
               <input name="login" maxlength=15>
            </td><td rowspan=3>
               <textarea name="message" cols=60 rows=5
                  ></textarea>
            </td>
         </tr><tr>
            <td align=right>Email</td><td>
               <input name="email" maxlength=50>
            </td>
         </tr><tr>
            <td colspan=2 align=center>
               <input type="submit" value="Nouveau sujet">
               <input type="hidden" name="reponse">
            </td>
         </tr>
      </form>
   </table>
 
   <!-- Affichage des messages -->
 
   <table border=1 cellspacing=0 cellpadding=5 width=100%>
 
      <?
// Fonction d'écriture des messages et réponses
function ecrit($id) {
   $SQL = "SELECT * FROM forum_messages WHERE ID=".$id
      . " OR reponse=".$id." ORDER BY ID";
   $res = mysql_query($SQL);
   while($val=mysql_fetch_array($res)) {
      // Bouton "Répondre" ?
      if(!$val["reponse"]) {
         echo "<button onclick='repond(".$val["ID"].")'>"
            . "Répondre</button>";
      } else {
         echo "<hr size=1>";
      }
      // Ecrit la date du message
      echo date("d/m/Y",$val["quand"]);
      // Ecrit le login de l'auteur
      echo " - ".$val["login"];
      echo "<br>";
      // Ecrit le message, n'autorise pas les code html ;)
      echo htmlentities($val["message"]);
   }
}
 
      // Requête de sélection des messages initiaux
      $SQL = "SELECT ID FROM forum_messages"
         . " WHERE reponse=0 ORDER BY ID DESC";
      $res = mysql_query($SQL);
      // Tant qu'il y a des messages
      while($val=mysql_fetch_array($res)) {
         // Nouvelle ligne
         echo "<tr><td>";
         // Ecrit le message et ses réponses
         ecrit($val["ID"]);
         // Fin de ligne
         echo "</td></tr>";
      }
      ?>
 
   </table>
 
</center></BODY></HTML><?
 
// === DECONNEXION ===
mysql_close();
 
?>