Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Komentarz
Forum PHP.pl > Forum > Przedszkole
MateuszS
Może mi ktoś pomóc z skryptem komentarza? Napisałem coś prostego:

  1. <html>
  2. <head>
  3.    <title>Komentarz</title>
  4.    <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  5. </head>
  6. <body>
  7. <form method="POST">
  8.  
  9. <br /><br />
  10.  
  11. Nick: <br />
  12.    <input size="15" name="nick" type="text" />
  13. <br /><br />
  14.  
  15. Komentarz: <br />
  16.    <input type="text" name="komentarz" style="height: 100px; width: 180px;" />
  17. <br />
  18.    <input type="submit" value="Zkomentuj">
  19.  
  20.  
  21. <?php
  22.  
  23. $polaczenie = mysql_connect('localhost', 'root', 'root');
  24. $db = mysql_select_db('login', $polaczenie);
  25.  
  26. $nick = $_POST['nick'];
  27. $komentarz = $_POST['komentarz'];
  28.  
  29. echo '<br /><br />';
  30.  
  31. $odpytanie = mysql_query("SELECT nick,punktacja FROM `tabela2`
  32.                      WHERE (nick='$nick') AND (komentarz='$komentarz')");                          
  33.                              
  34. if (empty($komentarz) OR empty($nick))
  35. {
  36.    echo 'Musisz wpisać nick i treść komentarza';
  37. }
  38. elseif($zapytanie)
  39. {
  40.  
  41. $zapytanie = mysql_query("INSERT INTO `tabela2` (nick,komentarz)
  42.                              VALUES ('$nick','$komentarz')")
  43.                              or die(mysql_error());
  44.  
  45. }
  46.  
  47. while ($wynik = mysql_fetch_assoc($odpytanie))
  48.    {
  49.        echo $wynik['nick'];
  50.        echo '<br /><br />';
  51.        echo $wynik['komentarz'];
  52.    }
  53.          
  54.                            
  55.  
  56. ?>
  57.  
  58. </body>
  59. </html>


I have not idea what is wrong... może wy widzicie błąd.
Ociu
Proszę na następny raz używać odpowiedniego bbCode.
Wiesz. Ostatnio nasza forumowa szklana kula trochę śnieży. Błędy jakieś są ?
mike
Po co korzystasz z funkcji ob_*?
Spawnm
a więc:
  1. <?php
  2. if (empty($komentarz) OR empty($nick))
  3. {
  4.   echo 'Musisz wpisać nick i treść komentarza';
  5. }
  6. elseif($zapytanie)
  7. {
  8.  
  9. $zapytanie = mysql_query("INSERT INTO `tabela2` (nick,komentarz)
  10.                             VALUES ('$nick','$komentarz')")
  11.                             or die(mysql_error());
  12.  
  13. }
  14. ?>

zmienna $zapytanie powstaje tylko jeśli już istnieje? błąd logiczny...

  1. <?php
  2. $odpytanie = mysql_query("SELECT nick,punktacja FROM `tabela2`
  3.                     WHERE (nick='$nick') AND (komentarz='$komentarz')");
  4. //...
  5. while ($wynik = mysql_fetch_assoc($odpytanie))
  6.   {
  7.       echo $wynik['nick'];
  8.       echo '<br /><br />';
  9.       echo $wynik['komentarz'];
  10.   }
  11. ?>

nie pobierasz komentarz tylko punktacja , a jesli operujesz nazwami tablicy to dajesz mysql_fetch_array()
MateuszS
Sorka ale mi ten bbcode nie dziala, ogolnie mi to forum szwankuje troche, bez urazy... nie mam pojecia o co chodzi z tym

A ten dziwne, bo kiedy odswiezam caly czas mi sie komentarz dodaje... ten ktory dodalem ostatnio. O co moze chodzic?
Spawnm
Cytat(MateuszScirka @ 29.12.2008, 18:05:30 ) *
A ten dziwne, bo kiedy odswiezam caly czas mi sie komentarz dodaje... ten ktory dodalem ostatnio. O co moze chodzic?


odświeżasz z wysłaną treścią, co owocuje jej kolejnym dodaniem.
po dodaniu treści daj :
header('location: '.$_SERVER['PHP_SELF']);
wróci to tej samej strony ale bez treści get/post co zablokuje możliwość ponownego zapisu tej samej informacji.

adit:
źle mi się napisało location tongue.gif
MateuszS
  1. <?php
  2.  
  3. $polaczenie = mysql_connect('localhost', 'root', 'root');
  4. $db = mysql_select_db('login', $polaczenie);
  5.  
  6. $nick = $_POST['nick'];
  7. $komentarz = $_POST['komentarz'];
  8. $data = date("Y-m-d");
  9.  
  10. echo '<body bgcolor="orange" alink="white" vlink="white" link="white">';
  11.  
  12. if(empty($nick) or empty($komentarz))
  13. {
  14.    echo '<center><font size="4">';
  15.    echo 'Musisz wypełnić wszystkie pola.<br />';
  16.    echo '<a href="index.php">Wroc</a>';
  17. }
  18. else
  19. {
  20.    $zapytanie = mysql_query("INSERT INTO `tabela2` (nick,data,komentarz)
  21.                              VALUES ('$nick','$data','$komentarz')")
  22.                                      or die(mysql_error());
  23.  
  24.                                      
  25.    echo '<center><font size="4">';
  26.    echo 'Twój komentarz został pomyślnie dodany <br />';
  27.    echo '<a href="index.php">Dodaj kolejny komentarz.<br /><br /></a>';
  28.    header('loaction: '.$_SERVER['PHP_SELF']);
  29. }
  30.  
  31. $odpytanie = mysql_query("SELECT nick,data,komentarz FROM `tabela2`");
  32.  
  33. while($wynik = mysql_fetch_assoc($odpytanie))
  34. {
  35.    echo '<center>';
  36.    echo '<font color="green">' . $wynik['nick'] . '</font>' . '<b> ' . $wynik['data'] . '</b><br /><br />';
  37.    echo $wynik['komentarz'] . '<br /><br />';
  38.    echo '----------------------<br /><br /><br />';
  39.    header('loaction: '.$_SERVER['PHP_SELF']);
  40. }
  41.  
  42. ?>


Dodalem nawet w 2 miejscach, nie dziala sad.gif
Spawnm
jaki warning ci wyskakuje?

header dajesz przed html.
MateuszS
Nie wyskakuje warning smile.gif Chodzi o to ze po odswiezaniu dodaje caly czas komentarz a nie powinno. Troche tego na forum widzialem, ale nie potrafie zastosowac bez pomocy
Spawnm
zobacz to:

  1. <?php
  2. $polaczenie = mysql_connect('localhost', 'root', 'root');
  3. $db = mysql_select_db('login', $polaczenie);
  4.  
  5. $nick = $_POST['nick'];
  6. $komentarz = $_POST['komentarz'];
  7. $data = date("Y-m-d");
  8.  
  9.  
  10. if(!empty($nick) && !empty($komentarz))
  11. {
  12.   $zapytanie = mysql_query("INSERT INTO `tabela2` (nick,data,komentarz)
  13.                             VALUES ('$nick','$data','$komentarz')")
  14.                                     or die(mysql_error());
  15.   header('location: '.$_SERVER['PHP_SELF']);
  16.  exit;
  17. }
  18.  
  19. $odpytanie = mysql_query("SELECT nick,data,komentarz FROM `tabela2`");
  20. echo '<body bgcolor="orange" alink="white" vlink="white" link="white">';
  21. while($wynik = mysql_fetch_array($odpytanie))
  22. {
  23.   echo '<center>';
  24.   echo '<font color="green">' . $wynik['nick'] . '</font>' . '<b> ' . $wynik['data'] . '</b><br /><br />';
  25.   echo $wynik['komentarz'] . '<br /><br />';
  26.   echo '----------------------<br /><br /><br />';
  27. }
  28.  
  29. ?>
MateuszS
Działa ;] Bóg zapłać ;] A teraz czas na wytłumaczenie. Czemu dodałeś exit; ? Do tego jeszcze nie doszedłem
Spawnm
exit; kończy program, po co ma się reszta wykonywac skoro nikt tego nie zobaczy bo zostanie strona wcześniej odświeżona smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.