Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie komentarzy
Forum PHP.pl > Forum > PHP
aagaaz
Zrobiłam skrypt dodawania i wyswietlania komentarzy...
Wyswietlanie jest na stronie komentarze.php a chciałabym aby wyswietlanie działalo na kazdej stronie z aktualnosciami , które wlasnie sa do komentowania...

Co muszę zmienić...questionmark.gif
Formularz mam zamieszczony na stronie aktualnosci..

  1. <?php
  2.  
  3. include ('db.php');
  4.  
  5. //utworzenie krótkich nazw zmiennych
  6. $id = $_POST['id'];
  7. $uzytkownikid=$_POST['uzytkownikid'];
  8. $tekstkomen = $_POST['tekstkomen'];
  9. $datakomen = $_POST['datakomen'];
  10.  
  11.  
  12.  
  13.  
  14. if (isset($_POST['tekstkomen']))
  15. {
  16.  
  17. $dodaj=@mysql_query("INSERT INTO komentarze SET
  18. tekstkomen='$tekstkomen',
  19. datakomen=CURDATE()");
  20.  
  21. echo'Twój komentarz został dodany.<br /><br />';
  22. }
  23. else
  24. {
  25. 'Błąd podczas dodawania komentarza';
  26. }
  27. $zapytanie=mysql_query("SELECT * FROM komentarze") or die ("Błąd zapytania SQL");
  28. while($wiersz=mysql_fetch_array($zapytanie))
  29. {
  30.  
  31. $tekstkomen=$wiersz[1];
  32. $datakomen=$wiersz[2];
  33.  
  34. echo '<div class="ramka">';
  35. echo "<TR>
  36. <strong><TD>$tekstkomen</TD>
  37. <TD>$datakomen</TD>
  38. <br/></strong>
  39. </TR>\n</div>";
  40.  
  41.  
  42. }
  43.  
  44.  
  45. print"</TABLE>";
  46.  
  47.  
  48.  
  49. ?>



Formularz:

  1. <form action="komentarze.php" method="post" />
  2. Login: <input type="textbox" name="login"><br /><br />
  3. Tytuł: <input type="textbox" name="tytul"><br /><br />
  4. <label> Wpisz tutaj komunikat/komentarz : <br />
  5. <textarea name="tekstkomun" rows="10" cols="40">
  6. </textarea></label><br />
  7. <input type="submit" value="Wyślij" />
  8. </form>
gostek99
sprobuj tak

  1. <?php
  2.  
  3.  
  4.  
  5. include ('db.php');
  6.  
  7.  
  8. $zapytanie=mysql_query("SELECT * FROM komentarze") or die ("Błąd zapytania SQL");
  9.  
  10. while($wiersz=mysql_fetch_array($zapytanie))
  11.  
  12. {
  13.  
  14.  
  15.  
  16. $tekstkomen=$wiersz[1];
  17.  
  18. $datakomen=$wiersz[2];
  19.  
  20.  
  21.  
  22. echo '<div class="ramka">';
  23.  
  24. echo "<TR>
  25.  
  26. <strong><TD>$tekstkomen</TD>
  27.  
  28. <TD>$datakomen</TD>
  29.  
  30. <br/></strong>
  31.  
  32. </TR>\n</div>";
  33.  
  34.  
  35.  
  36.  
  37.  
  38. }
  39.  
  40.  
  41.  
  42.  
  43.  
  44. print"</TABLE>";
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53. ?>
  54.  
  55.  
  56.  


i wklej to na strony z aktualnosciami
aagaaz
Zmieniłam trochę koncepcję... Zrobiłam komentarze na odzielnej stronie...

  1. <h3>Wasze komentarze</h3><br />
  2. <?php
  3. include ('db.php');
  4.  
  5. //utworzenie krótkich nazw zmiennych
  6. $id = $_POST['id'];
  7. $login=$_POST['login'];
  8. $tytul=$_POST['tytul'];
  9. $tekstkomen = $_POST['tekstkomen'];
  10. $datakomen = $_POST['datakomen'];
  11. $iduzytkownik=$_POST['iduzytkownik'];
  12.  
  13.  
  14.  
  15.  
  16. if (isset($_POST['tekstkomen']))
  17. {
  18.  
  19. $dodaj=@mysql_query("INSERT INTO komentarze SET
  20. login='$login',
  21. tytul='$tytul',
  22. tekstkomen='$tekstkomen',
  23. datakomen=CURDATE()");
  24.  
  25. echo'Twój komentarz został dodany.<br /><br />';
  26. }
  27. else
  28. {
  29. 'Błąd podczas dodawania komentarza';
  30. }
  31. $zapytanie=mysql_query("SELECT * FROM komentarze") or die ("Błąd zapytania SQL");
  32. while($wiersz=mysql_fetch_array($zapytanie))
  33. {
  34. $login=$wiersz[1];
  35. $tytul=$wiersz[2];
  36. $tekstkomen=$wiersz[3];
  37. $datakomen=$wiersz[4];
  38.  
  39. echo '<div class="ramka">';
  40. echo "<TR>
  41. <strong>
  42. <TD>$login</TD>
  43. <TD>$tytul</TD>
  44. <TD>$tekstkomen</TD>
  45. <TD>$datakomen</TD>
  46. <br/></strong>
  47. </TR>\n</div>";
  48.  
  49.  
  50. }
  51.  
  52.  
  53. print"</TABLE>";
  54.  
  55. if($_SESSION['logged'] == 'true'){
  56.  
  57.  
  58. <br /><br />
  59. <h3>Możesz dodać swój komentarz ...</h3>
  60. <br/><br/>
  61.  
  62.  
  63. <form action="komentarze.php" method="post" />
  64. Login: <input type="textbox" name="login"><br /><br />
  65. Tytuł: <input type="textbox" name="tytul"><br /><br />
  66. <label> Wpisz tutaj komunikat/komentarz : <br />
  67. <textarea name="tekstkomen" rows="10" cols="40">
  68. </textarea></label><br />
  69. <input type="submit" value="Wyślij" />
  70.  
  71. </form>';
  72. }
  73. else {
  74. echo'<h3>Musisz się zalogować aby dodawać komentarze</h3>';
  75. }
  76.  
  77.  
  78.  
  79.  
  80.  
  81. ?>


Natomiast logowanie mi nie działa... Nie wiem czemu ... Może te dwa skrypty na siebie nachodzą i dlatego... Jest taka mozliwość...

Logowanie sprawdzam za pomocą sprawdz3.php

  1. <?php
  2. include('db.php');
  3.  
  4. if (isset($_SESSION['login']))
  5. {
  6. echo '<h3><br />Witaj '.$_SESSION['login'].'!<br /></h3>';
  7.  
  8.  
  9.  
  10. $zapytanieSelect="SELECT ostatnie_log FROM uzytkownicy WHERE login='$login'";
  11.  
  12. $wykonaj = mysql_query ($zapytanieSelect);
  13.  
  14. $wiersz=mysql_fetch_array($wykonaj);
  15. echo'<h3>Data ostatniego logowania:</h3>';
  16. echo $wiersz['ostatnie_log']."<br>";
  17.  
  18. $zapytanieUpdate="UPDATE `logowanie`.`uzytkownicy` SET `ostatnie_log` = now(), login='$login'
  19. WHERE `uzytkownicy`.`login` ='$login'" ;
  20. $updateDatyLogowania=mysql_query($zapytanieUpdate);
  21.  
  22.  
  23.  
  24.  
  25.  
  26. <form action="wyloguj.php" method="post" >
  27. <p>
  28. <input type="submit" name="Wyloguj" value="Wyloguj" size="20" class="button">
  29. </p>
  30.  
  31. <a href="edytujlogin.php">Edytuj profil</a><br/>
  32. <a href="czlonek.php">Dodawanie plików</a>
  33.  
  34. </form>';}
  35.  
  36. else{
  37. if (isset($login))
  38. {
  39. echo '<h3>Zalogowanie niemożliwe</h3>';
  40. }
  41. else
  42. {
  43. echo'<h4>Zaloguj się , aby w pełni korzystać z serwisu</h4>';
  44. }
  45. ?>
  46.  
  47. <form action='login.php' method='post'>
  48. <table><tr>
  49. <td>Login: <input type="text" name="login"></td>
  50. </tr><tr>
  51. <td>Hasło: <input type="password" name="haslo"></td>
  52. </tr><tr>
  53. <td><input type="submit" name="ok" value="Zaloguj"></td>
  54. </tr><tr>
  55. <td><a href="logowanie/zmiana_hasla.php">Nie pamiętasz hasła</a></td>
  56. </tr><tr>
  57. <td>Nie masz konta? <br /><a href="logowanie/register.php" target="_blank">Załóż sobie</a></td>
  58. </tr>
  59. <input name="URI" type="hidden" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
  60. </table></form>
  61. <?php
  62. }
  63.  
  64. ?>
  65.  


Jest jeszcze jeden problem...

Loguję się jako michal... klikam na stronę komentarze i w okienku zamiast witaj michal ... pojawia się witaja aga1 , gdzie agi wogole nie mam w bazie...
Skąd to się bierze...

W Pliku komentarze mam wstawione sprawdzenie zalogowania:
  1. <?php
  2. include('db.php');
  3.  
  4. if (isset($_SESSION['login']))
  5. {
  6. echo '<h3><br />Witaj '.$_SESSION['login'].'!<br /></h3>';
  7.  
  8.  
  9.  
  10. $zapytanieSelect="SELECT ostatnie_log FROM uzytkownicy WHERE login='$login'";
  11.  
  12. $wykonaj = mysql_query ($zapytanieSelect);
  13.  
  14. $wiersz=mysql_fetch_array($wykonaj);
  15. echo'<h4>Data ostatniego logowania:</h4>';
  16. echo $wiersz['ostatnie_log']."<br /><br />";
  17.  
  18.  
  19. <a href="edytujprofil.php">Edytuj hasło</a><br/>
  20. <a href="czlonek.php">Dodaj pliki</a>
  21.  
  22.  
  23. <form action="wyloguj.php" method="post" >
  24. <p>
  25. <input type="submit" name="Wyloguj" value="Wyloguj" size="20" class="button">
  26. </p>
  27. </form>';
  28.  
  29. $zapytanieUpdate="UPDATE `logowanie`.`uzytkownicy` SET `ostatnie_log` = now(), login='$login'
  30. WHERE `uzytkownicy`.`login` ='$login'" ;
  31. $updateDatyLogowania=mysql_query($zapytanieUpdate);
  32. }
  33.  
  34. else{
  35. if (isset($login))
  36. {
  37. echo '<h3>Zalogowanie niemożliwe</h3>';
  38. }
  39. else
  40. {
  41. echo'<h4>Zaloguj się , aby w pełni korzystać z serwisu</h4>';
  42. }
  43.  
  44. ?>
  45.  
  46. <form action='login.php' method='post'>
  47. <table><tr>
  48. <td>Login: <input type="text" name="login"></td>
  49. </tr><tr>
  50. <td>Hasło: <input type="password" name="haslo"></td>
  51. </tr><tr>
  52. <td><input type="submit" name="ok" value="Zaloguj"></td>
  53. </tr><tr>
  54. <td><a href="logowanie/zmiana_hasla.php">Nie pamiętasz hasła</a></td>
  55. </tr><tr>
  56. <td>Nie masz konta? <br /><a href="logowanie/register.php" target="_blank">Załóż sobie</a></td>
  57. </tr>
  58. <input name="URI" type="hidden" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
  59. </table></form>
  60. <?php
  61. }
  62. ?>


Wyczyściłam historię przeglądarki, ciasteczka... Jak może byc powód takiej zmiany...

Proszę o pomoc...
CuteOne
sprawdz3.php login='$login'" gdzie masz zadeklarowaną zmienną $login?

drugi błąd to samo... tyle, że pobierasz agę z bazy danych i / lub session
aagaaz
Poprawiłam tą zmienną a do tego czemu wyświetlała się aga1 doszłam sama...

Wystarczyło zmienić jeden nawias } w pliku komentarze.... w tym kawałku kodu...



else {
echo'<h2>Musisz się zalogować, aby dodawać komentarze </h2>';
tutaj był nawias } przeniosłam go na koniec kodu ...

include('db.php');

$zapytanie=mysql_query("SELECT * FROM komentarze ORDER BY `komentarze`.`datakomen` ASC ") or die ("Błąd zapytania SQL");

echo"<TABLE ALIGN = CENTER BGCOLOR=#CCCCFF CELLPADDING=10 BORDER=6 class=formTable >";
echo"<TR><TH>LOGIN</TH>
<TH>TYTUŁ</TH>
<TH>TEKST KOMENTARZA</TH>
<TH>DATA KOMENTARZA</TH>
</TR>\n";

while($wiersz=mysql_fetch_array($zapytanie))
{
$login=$wiersz[1];
$tytul=$wiersz[2];
$tekstkomen=$wiersz[3];
$datakomen=$wiersz[4];

echo "<TR>
<strong>
<TD>$login</TD>
<TD>$tytul</TD>
<TD>$tekstkomen</TD>
<TD>$datakomen</TD>
<br/></strong>
</TR>\n";


}


print"</TABLE>";
}


Jeszcze pytanie

Mam tu kod wstawiania komentarza:

$dodaj=@mysql_query("INSERT INTO komentarze SET autor='$autor',tekstkomen='$tekstkomen',datakomen=CURDATE()");

A to tabela komentarze:
  1. CREATE TABLE IF NOT EXISTS `komentarze` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `autor` text NOT NULL,
  4. `tekstkomen` text NOT NULL,
  5. `datakomen` date NOT NULL DEFAULT '0000-00-00',
  6. `iduzytkownik` int(11) NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=114 ;


I chciałabym aby w polu iduzytkownik pojawiło się id zalogowanego uzytkownika.
Tabela uzytkownicy:

  1. CREATE TABLE IF NOT EXISTS `uzytkownicy` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `login` varchar(65) NOT NULL DEFAULT '',
  4. `haslo` varchar(65) NOT NULL DEFAULT '',
  5. `haslo2` varchar(65) NOT NULL DEFAULT '',
  6. `email` varchar(60) NOT NULL DEFAULT '',
  7. `data_rejestracji` date NOT NULL DEFAULT '0000-00-00',
  8. `ostatnie_log` date NOT NULL DEFAULT '0000-00-00',
  9. PRIMARY KEY (`id`),
  10. KEY `id` (`id`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;


Jak mam to zrobić...Mozecie mi pomóc...
CuteOne
Każda akcja użytkownika to zapis do bazy aktualnego czasu.. potem tylko zliczasz użytkowników, których ostatnia akcja < time() - 300 //5 min
aagaaz
Ale chodzi mi o to aby zapisywało się id uzystkownika z tabeli uzytkownicy do iduzytkownika do tabeli komentarze.
CuteOne
$dodaj=@mysql_query("INSERT INTO komentarze SET autor='$autor',tekstkomen='$tekstkomen',datakomen=CURDATE()");

POCZYTAJ TROCHĘ O INSERT.... google -> mysql insert
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.