Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Strona z komentarzami
Forum PHP.pl > Forum > Przedszkole
mauri
Jak dołączyć do strony www link taki, aby pokazała się strona z możliwością wpisywania przez każdego swoich uwag, artykułu lub innych treści, najlepiej bez logowania a tylko z hasłem. Schemat na razie jest taki: index.html pokazuje linki do kilku galerii a chciałbym aby jeden z linków kierował do takiego forum dyskusyjnego jak wyżej. Uczestnik forum powinien wpisać hasło ale to nie musi być konieczne. Wymaganie moje jest minimalne więc może nie muszę instalować całego CMS?
!*!
Chodzi Ci o shoutbox?
Szymciosek
Albo shoutbox jak napisał kolega/koleżanka wyżej, albo jakiś guestbook.
Myślę, że jedno jak i drugie spełni swoje zadanie.
teez
Na indexie dajesz formularz :

  1. <form action="comment.php" method="POST">
  2. <textarea name="komentarz" cols=40 row=6>Wpisz swój komentarz</textarea>
  3. <input type="submit" value="Dodaj">


comment.php

  1. if(empty($_POST['komentarz']){
  2. echo 'wypełnij komentarz';
  3. }
  4. else
  5. {
  6. $koment = $_POST['komentarz']
  7. $zap = "INSERT INTO baza (`komentarz`) VALUES ('$koment')";
  8. Header ("Location: index.php");
  9. }


I zrób bazę z rubryką komentarz atrybuty LONGTEXT NOT NULL

Jeżeli chcesz komentarze przypisywać do newsów to najlepiej pod każdym rób inną akcję np. ( action="comment.php?id="'.$row['idnewsa'].'"")
A nastepnie niech przesyła do bazy do rubryki idnewsa zmienną $GET_['id'] i później aby to odtworzyć pod danym newsem ( komentarze do niego )
  1. SELECT FROM BAZA WHERE IDNEWSA = '".$row['idnewsa']."'


Yo.
mauri
Bardzo pomogłeś zeez, coś chce działać ale nie mogę sobie poradzić z tabelą; po załadowaniu strony dostaję:

Parse error: syntax error, unexpected '{' in /homez.106/xxxxxxxxx/comment.php on line 2

a tabelę wymyśliłem taką jak na obrazku:



Szymciosek
Pokaż kod - to podstawa.
Michasko
W kodzie podanym przez teez jest drobna literówka - brakuje nawiasu domykającego w IF-ie.
mauri
Kod html:

Kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body>
Tu nie ma na razie nic - będą próby z komentarzami...


<form action="comment.php" method="POST">
<textarea name="komentarz" cols=40 row=6>Wpisz swój komentarz</textarea>
<input type="submit" value="Dodaj">

</body>
</html>


Po załadowaniu tego kodu pojawia się stronka jak na obrazku:



Po dodaniu comment.php

Kod
<?php
if(empty($_POST['komentarz'])){
echo 'wypełnij komentarz';
exit;
}
else
{
$koment = $_POST['komentarz']
$zap = "INSERT INTO baza (`komentarz`) VALUES ('$koment')";
mysql_query($zap);
Header ("Location: index.php");
}

?>


otrzymuję komunikat jak wyżej czyli:

Parse error: syntax error, unexpected T_VARIABLE in /xxxxxxxxxx/comment.php on line 9
Michasko
Chłopie, naucz się czytać komunikaty błędów.
Masz dokładnie napisane, w której linijce którego pliku masz błąd:
Cytat
/xxxxxxxxxx/comment.php on line 9
do tego masz wyraz
Cytat
unexpected
, czyli interpreter się czegoś nie spodziewał. Czego?
Cytat
T_VARIABLE
- zmiennej. Czyli prawdopodobnie w poprzedniej linijce brakuje Ci średnika, nawiasu, albo czegoś takiego. Sprawdzasz:
Kod
$koment = $_POST['komentarz']
i faktycznie, nie ma średnika.
teez
Wybacz, pisane z 'palca', ale sądziłem że z tak śmiesznym błędem już sobie poradzisz.. baaasmiley.gif
mauri
Średnik wstawiłem i dopiero się zaczęło:

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /homez.106/xxxx/comment.php on line 10

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /homez.106/xxxx/comment.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at /homez.106/xxxx/comment.php:10) in /homez.106/xxxx/comment.php on line 11


Duży kłopot...
Szymciosek
Masz połączenie z bazą czy tylko skopiowałeś ten przykładzik z nadzieją, że to już wszystko i będzie działać?
!*!
mauri - nie przesadzaj, to są podstawy podstaw, weź się za jakiś kurs PHP, albo chociaż przeczytaj http://pl.wikibooks.org/wiki/PHP
mauri
Oczywiście, że mam połączenie z bazą, instalowałem phpnuke, Joomla, coppermine, drupal itp. - i wszystko chodziło. Niestety, edytowanie plików php to - wiem - trudna sprawa. Myślałem, że - jak w tytule wątku - wstawienie czegoś gdzie można byłoby pisać komentarze, będzie całkiem proste. Dziękuję za pomoc, może trzeba postudiować php i MySQL.
Szymciosek
Bo takie komentarze są proste, to raczej nie ma nic z edycją plików php, bo tylko dodajesz kolejne wartości do bazy danych, a gdzieś indziej je odczytujesz i wyświetlasz.

Czego potrzebujesz:
- Połączenie z bazą + wiedza o zapisie i odczycie do i z bazy
- Skryptu, który wyświetli wszystkie wpisy i dodatkowo formularz, który pozwoli na dodanie kolejnego

To chyba na tyle.
Dodatkowych rzeczy nie będę wypisywał, bo chodzi Ci chyba o najprostsze rozwiązanie.
mauri
Dokładnie tak. Ale utworzenie nawet prostej tabeli w bazie wymaga sporo wiedzy. Skrypcik html od zeez działa dobrze dopóki nie następuje wywołanie comment.php - tu się waliło... Szkoda...
Szymciosek
Przysiądziesz na chwilę do kursu przy hasłach:
- Php insert into
- Php select from

i już będziesz umiał coś, a myślę, że nie jest dla Ciebie problemem zrobienie pętli na otrzymanych wyniku i wyświetlenie kolejnych danych z bazy.
!*!
Cytat(mauri @ 10.02.2013, 20:30:58 ) *
Ale utworzenie nawet prostej tabeli w bazie wymaga sporo wiedzy.

W linku jaki podałem masz gotowiec.
mauri
Cytat(!*! @ 10.02.2013, 20:40:04 ) *
W linku jaki podałem masz gotowiec.

Czy mówisz o linku do podręcznika http://pl.wikibooks.org/wiki/PHP ?

Szymciosek
Na pewno o tym, w końcu do tego dał link. Niżej masz temat BAZY DANYCH. Te tematy sobie przejrzyj i na pewno coś wyniesiesz.
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.