[ spezia @ 23.07.2007. 22:28 ] @
Tema je zakljucana,pa moram novu da otvorim..
Ima problem sa bazom koji sam sada primetio..
Kada u stranici unos iskucam tekst i posaljem u bazu..Ako kliknem Refresh stranice,u bazi se puni ista vest.
Ako 3 puta kliknem na refresh stranice unos,onda ce jos tri iste vesti biti u bazi..
Tacnije pretrazivac (pamti popunu forme)i na refresh salje iste podatke..
Ja sam resio to sa ispitivanjem uslova da li je naslov i tekst vesti isti-ako ima isti u bazi ne upisivati)
Zanima me na koji se to nacin resava..sigurno ima neki standardniji??Ja sam koristio i Javascript radi ali:
Code:
function in_use($naslov,$tekst)
{
$query="SELECT naslov,tekst FROM novosti WHERE naslov='$naslov' AND tekst='$tekst'";
$result=mysql_query($query);
if(!mysql_num_rows($result))return 0;
else return 1;
}
function error_message($msg)
{
echo "<SCRIPT> alert(\"error:$msg\");history.go(-1)</SCRIPT>";
exit;
}


i dole ispred SELECT * FROM...
Code:
if(in_use($naslov,$tekst)) {
error_message("Vest je vec upisana.");
}


Nadam se da postoji laksi i efikasniji nacin(bez javascript)??
[ VladaSu @ 23.07.2007. 22:34 ] @
Dovoljno ti je da posle upisa u bazu redirektujes stranicu na samu sebe bez nekih prametara ili na neku drugu.

header("Location:index.php");

Ovako se nece pozvivati kood sa upisom ni ne refresh ni na back;
[ spezia @ 24.07.2007. 07:55 ] @
Ja imam vec ovo
Code:

include ("./header.html");

Tako da javlja da ne moze da se izvrsi.
Nije mi jasno na koji princip radi tvoj kod..ako moze malo pojasnjenje.
[ Nemanja Avramović @ 24.07.2007. 08:58 ] @
header("Location:index.php"); će preusmeriti browser na navedenu stranicu (index.php u ovom slučaju). HEADER funkcija mora da se pozove pre slanja bilo kakvog outputa browseru.
[ VladaSu @ 12.08.2008. 17:20 ] @
Da dodam da posle header funkcije mora da ide exit jer ce se kood i dalje izvrsiti (recimo insertu bazu) pa ce se onda redirektovati.
Ja recimo stavim u sesiju neki tekst koji treba da se ispise pa redirect pa exit a na redirektovanoj strani citam iz sesija sta treba da ispise pa brisem iz sesije.
Tako se poruka pojavi samo jednom i ne moze da se desi da se 2x insertujuju neki podaci
[ jelena_t @ 15.08.2008. 15:48 ] @
Ne mora da se stavi Header f-ja pre slanja svakog outoputa, taj problem mozes resitii sa ob_start(); na samom pocetku skripta...
[ Nemanja Avramović @ 15.08.2008. 16:03 ] @
Može, ali nešto mislim da je to nekakvo "budženje" i da se samo troše resursi (makar to trošenje bilo minimalno). Mnogo je bolje tako organizovati skriptu da se prvo pošalju hederi a onda sadržaj stranice, jer je tako i predviđeno da se radi... my 2 c