Kezdőoldal » Számítástechnika » Weblapkészítés » Nem ellenőrzi le hogy meg-e...

Nem ellenőrzi le hogy meg-e nyomtam a Submit gombot!?

Figyelt kérdés

Üdv, készítettem egy olyan rendszert hogy növelje a mysql táblázatban lévő számot mindig 1-el amikor rálpek a gombra de az a gond hogy a kérés akkor is végrehajtódik amikor újratöltöm az oldalt! KÓD:


if(isset($_POST["gomb"]))

{

$szam2 = $szam['szam']+1;

$query2 = "UPDATE teszt SET szam='$szam2'";

$frissit = mysql_query($query2);

}



2014. jún. 26. 16:09
1 2
 1/15 anonim ***** válasza:
34%

Inkább csak if($_POST["gomb"])


Ha így sem jó, mutasd a formot.

2014. jún. 26. 16:12
Hasznos számodra ez a válasz?
 2/15 A kérdező kommentje:

Nem jó! Tessék a form:


<form action="index.php" method="POST">

<input name="gomb" type="submit" value="Növelem 1-el!">

</form>

2014. jún. 26. 16:14
 3/15 anonim ***** válasza:

Valami történik a $_POST['tomb']-bel az if előtt, különben nem lenne szabad lefutnia. Ezzel tudod tesztelni:


<html>

<head>

<meta charset='utf-8'>

<title>Test</title>

</head>

<body>

<?php

if ($_POST['gomb']) {

echo "GOMB";

}

?>

<form method="POST">

<input name="gomb" type="submit" value="Növelem 1-el!">

</form>

</body>

</html>


Csak akkor írja ki, hogy GOMB, ha megnyomtad a gombot.

2014. jún. 26. 16:20
Hasznos számodra ez a válasz?
 4/15 anonim ***** válasza:

A feldolgozó PHP-n van a form is, ugye?


Próbáld meg így:


if(isset($_POST["gomb"]))

{

$szam2 = $szam['szam']+1;

$query2 = "UPDATE teszt SET szam='$szam2'";

$frissit = mysql_query($query2);

unset($_POST["gomb"]); // ez az új

}

2014. jún. 26. 16:20
Hasznos számodra ez a válasz?
 5/15 anonim ***** válasza:
Bár lehet, hogy az sem oldja meg a problémát. Én inkább egy másik PHP-ba tenném a számlálást.
2014. jún. 26. 16:23
Hasznos számodra ez a válasz?
 6/15 anonim ***** válasza:
100%
Közben eszembe jutott (de csak 5 percenként írhatok), hogy mivel POST-olva van a form, F5-re megkérdezi a böngésző, hogy újraküldje-e az adatokat. Ha igent nyomsz, az egyenértékű a gombnyomással.
2014. jún. 26. 16:26
Hasznos számodra ez a válasz?
 7/15 A kérdező kommentje:
hát igen ha első belépésnél frissítek nem csinálja de nincs valami if hogy ha frissítek ne csinálja?
2014. jún. 26. 16:38
 8/15 anonim ***** válasza:
50%

Szerintem nincs, ez böngésző "probléma".

Esetleg annak utána nézhetsz, hogy vissza lehet-e vonni javascripttel submitot...

2014. jún. 26. 16:43
Hasznos számodra ez a válasz?
 9/15 anonim ***** válasza:
Erre sajnos nincs. Szerver oldalon nem látszódik, hogy a gombot nyomtad-e meg vagy csupán újraküldted az előző formot. Azt lehet megcsinálni, hogy adatbázisban minden IP címhez tárolsz egy hash-t, amit hidden mezőbe beraksz a formba. Ha a küldött hash egyezik az adatbázisban lévővel, akkor generálsz új hash-t és végrehajtod a mostani utasításokat. Ha nem, akkor nem csinálsz semmit.
2014. jún. 26. 16:47
Hasznos számodra ez a válasz?
 10/15 anonim ***** válasza:
Illetve session-ben is tárolhatod a hash-t, ha a gyakorlásban eljutottál már oda. Ha nem, akkor adatbázis is tökéletes erre a célra.
2014. jún. 26. 16:55
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!