-Irek-
6.11.2011, 17:45:59
Mam taki kod:
<?
include 'konfiguracja.php';
db_connect();
check_login();
// pobieramy dane usera
$user_data = get_user_data();
or
die('Nieudane polaczenie z baza danych...'); or
die('Nie udalo sie wybrac bazy danych...');
echo '<br><br><br><font face="arial" size="5"><b>Dodaj komentarz:</b></font><br><br>'; echo '<form method="POST" action="./galeria.php?newsy=dopisz"> <font face="arial" size="2"><b>Nick:</b></font><br>
<input type="text" value="'.$user_data['user_name'].'" disabled="true" size="64"><br><br>
<font face="arial" size="2"><b>Tresc:</b></font><br>';
require('ulatwienie.inc');
echo '<br><textarea rows="5" id="tresc" name="tresc" cols="42"></textarea><br> <input type="image" src="./img/dodajnews.png" />
</form>';
if(isset($_GET['newsy']) && $_GET['newsy']=='edytuj' && isset($_GET['id'])) {
$id=$_GET['id'];
$link=mysql_query("SELECT * FROM komentarze WHERE id='$id'"); }
elseif(isset($_GET['newsy']) && $_GET['newsy']=='dopisz') {
$tresc=$_POST['tresc'];
$nick=$user_data['user_name'];
$data=date('d.m.Y, H:i');
mysql_query("INSERT INTO komentarze VALUES(0,'$tresc','$nick','$data')"); echo '<div align="left"><b><font face="arial" color="red"><br>Pomyslnie dodalem komentarz.</font><br /><br></b></div>';
}
db_close();
?>
Jak zrobić aby uzytkownik mógł napisać jeden komentarz na minute?
mikiz65
6.11.2011, 18:13:28
Wstaw taki kod:
//Wpisywanie komentarze ...................
if($czas["$nick"]+60<mktime())
{
print_r($czas);
$godzina = mktime();
$czas["$nick"] = $godzina;
}
else
{
echo("Za malo czasu");
}
-Irek-
6.11.2011, 20:47:43
Może kolega podpowie w której lini mam to wstawić bo mi jakoś nie idzie?
mikiz65
6.11.2011, 21:28:11
Trudno mi to powiedzieć, bo nie mam całego programu. Nie wiem co się dzieje przedtem, ani potem. Nie wiem, czy to jest jeden skrypt, czy kilka (wtedy trzeba te zmienne przekazywać pomiędzy skryptami). To trzeba dopasować do całości programu tak, ażeby były cały czas aktywne w czasie, kiedy ktoś dopisuje komentarze.
-Irek-
6.11.2011, 21:35:43
Do działania potrzebne są tylko ten skrypt co podałem wczesniej i skrypt który pokazuje komentarze:
<?
include_once('emotikonuj.php');
or
die('Nieudane polaczenie z baza danych...'); or
die('Nie udalo sie wybrac bazy danych...'); $link=mysql_query("SELECT * FROM komentarze ORDER BY id desc LIMIT 10"); {
echo '<fieldset id="komentarz"><legend>'; echo '<strong><font color="orange" size="6" face="arial">'; echo '</font></strong> '; echo '<font color="orange" size="4" face="arial"><i>'; echo '</p></legend><br>'; echo '<font face="arial" color="white">'; echo emotikonuj
($wiersz['tresc']); }
?>
A chodzi mi o to że gdy ktoś ma wolnego neta to klika przycisk do wysłania komentarza kilka razy i jest on kilka razy wysyłany do bazy.
-Irek-
6.11.2011, 21:38:45
Do działania potrzebne są tylko ten skrypt co podałem wczesniej i skrypt który pokazuje komentarze:
<?
include_once('emotikonuj.php');
or
die('Nieudane polaczenie z baza danych...'); or
die('Nie udalo sie wybrac bazy danych...'); $link=mysql_query("SELECT * FROM komentarze ORDER BY id desc LIMIT 10"); {
echo '<fieldset id="komentarz"><legend>'; echo '<strong><font color="orange" size="6" face="arial">'; echo '</font></strong> '; echo '<font color="orange" size="4" face="arial"><i>'; echo '</p></legend><br>'; echo '<font face="arial" color="white">'; echo emotikonuj
($wiersz['tresc']); }
?>
A chodzi mi o to że gdy ktoś ma wolnego neta to klika przycisk do wysłania komentarza kilka razy i jest on kilka razy wysyłany do bazy.
mikiz65
6.11.2011, 21:59:46
To zrób coś takiego:
//Zczytujesz wszystkie zapisy nicka
$pytanie = "SELECT * FROM komentarze WHERE nick='$nick'";
$result = mysql_query($pytanie) or die(mysql_error());
//Ustawiasz zapis na Prawde
$zapis = TRUE:
//Sprawdzasz całą tabelę po kolei
foreach $result as $data
{
$obiekt = mysql_fetch_array($result);
//Jesli istnieje juz taka tresc, to zmien na Falsz
if($obiekt['tresc']==$tresc)
{
$zapis=FALSE;
}
}
//Jesli Prawda to zapisz
if($zapis)
{
//Twoja komenda
mysql_query("INSERT INTO komentarze VALUES(0,'$tresc','$nick','$data')");
}
else
//Jesli Falsz to nie zapisu, daj komunikat lub co chcesz
{
echo("Juz jest zapisany");
}
//Nie testowalem tego, wiec sprawdz, czy nie ma tam literowek
-Irek-
6.11.2011, 22:12:10
w 58 lini wyskakuje mi takie coś:
Cytat
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in /var/www/virtual/klasa-z-klasa.cba.pl/inc/adminK.inc on line 58
-Irek-
6.11.2011, 22:13:31
chodzi o : foreach $result as $data
-Irek-
6.11.2011, 22:21:01
Dałem twój kod między $data=date('d.m.Y, H:i'); a } db_close(); i nie ma żadnej zmiany.
mikiz65
6.11.2011, 22:52:45
Sorki, trzeba w pętli for
$pytanie = "SELECT * FROM komentarze WHERE nick='$nick'";
$zapis = TRUE;
for($i=0; $i<=$ilr; $i++)
{
if($obiekt['tresc']==$tresc)
{
$zapis=FALSE;
}
}
if($zapis)
{
mysql_query("INSERT INTO komentarze VALUES(0,'$tresc','$nick','$data')"); }
else
{
echo("Juz jest zapisany"); }
-Irek-
7.11.2011, 16:03:57
Wielkie dzięki!
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.