Avis d'erreur lorsque les utilisateurs non enregistrés afficher postes

  • iWiGG_2010
  • Newbie
  • Newbie
  • Avatar de l’utilisateur
  • Inscription: Nov 22, 2011
  • Messages: 10
  • Loc: Australia
  • Status: Offline

Message Novembre 22nd, 2011, 6:51 pm

Bonjour à tous

Vous vous demandez si vous pouvez m'aider. Je suis nouveau sur php.

Je continue pour parvenir à cet avis :
Notice : Undefined index : user_id dans C:\wamp\www\website\view_topic.php sur la ligne 16

Ses une page de base de fourm. Je veux que les utilisateurs non enregistrés pour être en mesure d'afficher des postes mais pas poster une réponse.

Ce que quelqu'un sait ce qui se passe et comment je pourrais corriger merci.

PHP Code: [ Select ]
<?php include 'init.php'; ?>
 
<?php include 'template/header.php'; ?>
 
<br /><h3><p>View Topic</p></h3>
<p><br />
 
 
<?php
$cid = $_GET['cid'];
$tid = $_GET['tid'];
$sql = "SELECT * FROM `topics` WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) == 1) {
   echo "<table width='100%'>";
      if ($_SESSION['user_id']) {
         echo "<tr><td colspan='2'><center><input type='submit' value='Add Reply' onClick=\"window.location = 'post_reply.php?cid=".$cid."&tid=".$tid."'\" /></center><hr /><br />";
            } else {
             
               echo "<br /><tr><td colspan='2'><p>Please Log in to add a comment</p></td></tr>"; }
      while ($row = mysql_fetch_assoc($res)) {
         $sql2 = "SELECT * FROM `posts` WHERE `album_id`='".$cid."' AND `topic_id`='".$tid."' ORDER BY `post_date` DESC";  
         $res2 = mysql_query($sql2) or die(mysql_error());
         while ($row2 = mysql_fetch_assoc($res2)) {
            echo "<tr><td valign='top' style='border: 1px sold #FFF;'><div style='min-height: 125px;'><br /><p>".$row['topic_title']."<br /><br />by ".$row2['post_creator']." - ".$row2['post_date']."<br />".$row2['post_content']."</p></div></td>
           
            <tr><td colspan='2'><hr /></td></tr>";
         }
         $old_views = $row['topic_views'];
         $new_views = $old_views + 1;
         $sql3 = "UPDATE `topics` SET `topic_views`='".$new_views."' WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
         $res3 = mysql_query($sql3) or die(mysql_error());
      }
         echo "</table>";
} else {
   echo "<p>This topic does not exist</p>";  
}
?>
</p>
<p>&nbsp; </p>
<?php include 'template/footer.php'; ?>  
 
  1. <?php include 'init.php'; ?>
  2.  
  3. <?php include 'template/header.php'; ?>
  4.  
  5. <br /><h3><p>View Topic</p></h3>
  6. <p><br />
  7.  
  8.  
  9. <?php
  10. $cid = $_GET['cid'];
  11. $tid = $_GET['tid'];
  12. $sql = "SELECT * FROM `topics` WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
  13. $res = mysql_query($sql) or die(mysql_error());
  14. if (mysql_num_rows($res) == 1) {
  15.    echo "<table width='100%'>";
  16.       if ($_SESSION['user_id']) {
  17.          echo "<tr><td colspan='2'><center><input type='submit' value='Add Reply' onClick=\"window.location = 'post_reply.php?cid=".$cid."&tid=".$tid."'\" /></center><hr /><br />";
  18.             } else {
  19.              
  20.                echo "<br /><tr><td colspan='2'><p>Please Log in to add a comment</p></td></tr>"; }
  21.       while ($row = mysql_fetch_assoc($res)) {
  22.          $sql2 = "SELECT * FROM `posts` WHERE `album_id`='".$cid."' AND `topic_id`='".$tid."' ORDER BY `post_date` DESC";  
  23.          $res2 = mysql_query($sql2) or die(mysql_error());
  24.          while ($row2 = mysql_fetch_assoc($res2)) {
  25.             echo "<tr><td valign='top' style='border: 1px sold #FFF;'><div style='min-height: 125px;'><br /><p>".$row['topic_title']."<br /><br />by ".$row2['post_creator']." - ".$row2['post_date']."<br />".$row2['post_content']."</p></div></td>
  26.            
  27.             <tr><td colspan='2'><hr /></td></tr>";
  28.          }
  29.          $old_views = $row['topic_views'];
  30.          $new_views = $old_views + 1;
  31.          $sql3 = "UPDATE `topics` SET `topic_views`='".$new_views."' WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
  32.          $res3 = mysql_query($sql3) or die(mysql_error());
  33.       }
  34.          echo "</table>";
  35. } else {
  36.    echo "<p>This topic does not exist</p>";  
  37. }
  38. ?>
  39. </p>
  40. <p>&nbsp; </p>
  41. <?php include 'template/footer.php'; ?>  
  42.  
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Novembre 22nd, 2011, 6:51 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Novembre 26th, 2011, 11:04 pm

Cela signifie $ _SESSION [ user_id ] n'est pas définie.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • Bigwebmaster
  • Site Admin
  • Site Admin
  • Avatar de l’utilisateur
  • Inscription: Déc 20, 2002
  • Messages: 8926
  • Loc: Seattle, WA & Phoenix, AZ
  • Status: Offline

Message Novembre 27th, 2011, 12:10 am

Vous pouvez le résoudre en changeant la ligne 16 à ceci :

PHP Code: [ Select ]
      if (isset($_SESSION['user_id'])) {
Ozzu Hosting - Want your website on a fast server like Ozzu?
  • iWiGG_2010
  • Newbie
  • Newbie
  • Avatar de l’utilisateur
  • Inscription: Nov 22, 2011
  • Messages: 10
  • Loc: Australia
  • Status: Offline

Message Novembre 27th, 2011, 12:15 am

grand merci il œuvres:)
  • WritingBadCode
  • Graduate
  • Graduate
  • Avatar de l’utilisateur
  • Inscription: Avr 28, 2011
  • Messages: 214
  • Loc: Sweden
  • Status: Offline

Message Novembre 27th, 2011, 5:23 pm

Non pas que vous demandait mais je pense que vous devez revoir votre code qui dit :

Code: [ Select ]
$cid = $_GET['cid'];
$tid = $_GET['tid'];
$sql = "SELECT * FROM `topics` WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
$res = mysql_query($sql)
  1. $cid = $_GET['cid'];
  2. $tid = $_GET['tid'];
  3. $sql = "SELECT * FROM `topics` WHERE `album_id`='".$cid."' AND id='".$tid."' LIMIT 1";
  4. $res = mysql_query($sql)


Im pas un expert à des injections de MySQL, mais j'ai vu de nombreux exemples de pourquoi faire confiance à l'entrée d'utilisateur est la plupart du temps une mauvaise idée.:)

Vous êtes collecte et de chargement, quelle que soit la valeur ici sans aucune vérification et il exécute ensuite comme une requête MySQL.

Prenez l'habitude de toujours vérifier tout utilisateur possible d'entrée afin de limiter les possibilités d'abus de vos requêtes.
  • iWiGG_2010
  • Newbie
  • Newbie
  • Avatar de l’utilisateur
  • Inscription: Nov 22, 2011
  • Messages: 10
  • Loc: Australia
  • Status: Offline

Message Novembre 27th, 2011, 5:28 pm

Merci pour vos conseils. J'y regarde de plus près.

Afficher de l'information

  • Total des messages de ce sujet: 6 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 118 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC