[php & mysql]blokowanie
[php & mysql]blokowanie
Witam
mam skrypt ktory dodaje komentarze pod newsami i problemem jest w tym ze jak odswieze strone to dodaje go ponownie itd. Chce zeby poprostu po odswiezeniu nie dodawało ale nie metoda get bo chce tworzyc nowego pliku
[php]
<?
if ($co == 'Dodaj_komentarz') { // dodawanie rekordu
if ($tresc && $user) {
$query = "INSERT INTO komentarze (id, idnews, data, ip, przegladarka,";
$query .= "tresc, user) VALUES ('', '$_GET[id]', now(), '$REMOTE_ADDR', '$HTTP_USER_AGENT', '$tresc', '$user');";
$wynik = mysql_query ($query);
echo mysql_error(); //jak bedzie jakis blad w dodawaniu do MySQL to pokaze go
}
}
print " <form method=post><INPUT TYPE=hidden NAME=co VALUE=Dodaj_komentarz><table border=0 cellpadding=0 cellspacing=7 width=100%>
<tr>
<td>
<table align=center border=0 cellpadding=0 cellspacing=3 width=60%>
<tr>
<td>
<p><span><b>Tresc Komentarza:</b><span></p>
</td>
</tr>
<tr>
<td>
<p><textarea name=tresc id=tresc rows=9 cols=25></textarea></p>
</td>
</tr>
<tr>
<td>
<p><b>Nick:</b><br><input type=text name=user id=user size=15></p>
</td>
</tr>
<tr>
<td>
<input type=submit name=co value=Dodaj_komentarz>
<input type=reset value=Czyść_formularz>
</td>
</tr>
</table>
</td>
</tr>
</table></form>";
?>
[/php]
mam skrypt ktory dodaje komentarze pod newsami i problemem jest w tym ze jak odswieze strone to dodaje go ponownie itd. Chce zeby poprostu po odswiezeniu nie dodawało ale nie metoda get bo chce tworzyc nowego pliku
[php]
<?
if ($co == 'Dodaj_komentarz') { // dodawanie rekordu
if ($tresc && $user) {
$query = "INSERT INTO komentarze (id, idnews, data, ip, przegladarka,";
$query .= "tresc, user) VALUES ('', '$_GET[id]', now(), '$REMOTE_ADDR', '$HTTP_USER_AGENT', '$tresc', '$user');";
$wynik = mysql_query ($query);
echo mysql_error(); //jak bedzie jakis blad w dodawaniu do MySQL to pokaze go
}
}
print " <form method=post><INPUT TYPE=hidden NAME=co VALUE=Dodaj_komentarz><table border=0 cellpadding=0 cellspacing=7 width=100%>
<tr>
<td>
<table align=center border=0 cellpadding=0 cellspacing=3 width=60%>
<tr>
<td>
<p><span><b>Tresc Komentarza:</b><span></p>
</td>
</tr>
<tr>
<td>
<p><textarea name=tresc id=tresc rows=9 cols=25></textarea></p>
</td>
</tr>
<tr>
<td>
<p><b>Nick:</b><br><input type=text name=user id=user size=15></p>
</td>
</tr>
<tr>
<td>
<input type=submit name=co value=Dodaj_komentarz>
<input type=reset value=Czyść_formularz>
</td>
</tr>
</table>
</td>
</tr>
</table></form>";
?>
[/php]
Re: [php & mysql]blokowanie
Może za pomocą cookie? Ustawić i sprawdzać czy było dodawane. Cookie ustawić np na 30 min
Re: [php & mysql]blokowanie
sprubuj
[php]<?php
if ($tresc!= "0" && $user!="0")
?>[/php]
nie jestem pewny ale NULL != "0" tzn jesli masz puste pole to nie znaczy ze jego wartosc wynosi "0"
[php]<?php
if ($tresc!= "0" && $user!="0")
?>[/php]
nie jestem pewny ale NULL != "0" tzn jesli masz puste pole to nie znaczy ze jego wartosc wynosi "0"
Re: [php & mysql]blokowanie
nie nie zrozumiałes mnie poprostu jak odswieze strone to rekordy sie dodaja!
masterix wiesz nigdy nie bawiłem sie jeszcze cookies :/
Mógłbys mi wytłumaczyc i pomuc?
masterix wiesz nigdy nie bawiłem sie jeszcze cookies :/
Mógłbys mi wytłumaczyc i pomuc?
Re: [php & mysql]blokowanie
Ciasteczka ustawiasz za pomocą funkcji setcookie() o jej składni przeczytać możesz w manualu PHP. Wytłumaczę jej wykorzystywanie jedynie krótko.[php]<?php
setcookie ("nazwa","wartosc",time()+60*30);
?>[/php]
Nazwa - mówi chyba samo za siebie. Wartość - przypisz np 1 (z algebry Bool'a prawda). Funkcja time() pobiera aktualny czas i do niej dodajesz liczbę sekund ile ciasteczko ma istniec - 60*30 to 30 min. I chodzi to że przed dodaniem wpisu do bazy sprawdzasz czy ciasteczko istnieje i ma wartość 1. Jeśli znasz tablicę superglobalną $_COOKIE to nie będzie z tym problemu. Jeśli warunek zachodzi to pokazujesz komunikat w stylu "Nie spamuj" czy jak tam chcesz. W przeciwnym wypadku dodajesz rekord do bazy i ustawiasz ciasteczko.
pozdrawiam
setcookie ("nazwa","wartosc",time()+60*30);
?>[/php]
Nazwa - mówi chyba samo za siebie. Wartość - przypisz np 1 (z algebry Bool'a prawda). Funkcja time() pobiera aktualny czas i do niej dodajesz liczbę sekund ile ciasteczko ma istniec - 60*30 to 30 min. I chodzi to że przed dodaniem wpisu do bazy sprawdzasz czy ciasteczko istnieje i ma wartość 1. Jeśli znasz tablicę superglobalną $_COOKIE to nie będzie z tym problemu. Jeśli warunek zachodzi to pokazujesz komunikat w stylu "Nie spamuj" czy jak tam chcesz. W przeciwnym wypadku dodajesz rekord do bazy i ustawiasz ciasteczko.
pozdrawiam
-
Grzegorz Winiarski
- Nowy

- Posty: 147
- Rejestracja: pt lut 27, 2004 10:36 pm
- Lokalizacja: Kraków
Re: [php & mysql]blokowanie
Ja bym rozwiązał to inaczej pod
[php]<?php
$wynik = mysql_query ($query);
?>[/php]
dodałbym jedną linjke
[php]<?php
header("Location: $adres_twojej_strony");
?>[/php]
Powinno dzialac, jeżeli wczesniej nie wyslales zadnych danych do przegladarki
[php]<?php
$wynik = mysql_query ($query);
?>[/php]
dodałbym jedną linjke
[php]<?php
header("Location: $adres_twojej_strony");
?>[/php]
Powinno dzialac, jeżeli wczesniej nie wyslales zadnych danych do przegladarki
Re: [php & mysql]blokowanie
A jak wysłał to wystarczy zaraz po <?php dać:[php]<?php
ob_start();
?>[/php]
I po problemie
ob_start();
?>[/php]
I po problemie
Re: [php & mysql]blokowanie
Niestety zadna z tych opcji nie działamasterix pisze:A jak wysłał to wystarczy zaraz po <?php dać:[php]<?php
ob_start();
?>[/php]
I po problemie
Re: [php & mysql]blokowanie
Nie wiem czy mnie dobrze zrozumiałeś:[php]<?phpStef@n pisze:Niestety zadna z tych opcji nie działamasterix pisze:A jak wysłał to wystarczy zaraz po <?php dać:[php]<?php
ob_start();
?>[/php]
I po problemie
ob_start();
//jakies instrukcje
header("Location: adres.php");
ob_end_flush();
?>[/php]
A mówiąc nie działa to co masz na myśli?
