Autor | Zpráva | ||
---|---|---|---|
vit Profil * |
#1 · Zasláno: 19. 5. 2010, 17:07:24
Ahoj potřeboval bych nějak nastavit to že pude z dané IP odeslat formulář jen jednou. Zde je script kterým se mi články odesílají do DB:
<?php require "db.php"; if(IsSet($_POST['sent'])) { $id = $_POST['id']; $nick = $_POST['nick']; $text = $_POST['text']; $ip = $_POST['ip']; // Podmínka, jestli byly vyplněny všechny údaje if($nick=="" || $text=="" || $ip=="") { echo "Nebyly vyplněny všechny údaje nebo hlasujete vícekrát!"; } // Všechny údaje byly v pořádku vyplněny else { $query = @MySQL_Query("INSERT INTO clanky VALUES ('$id', '$nick', '$text', '$ip')") or die(mysql_error()); echo "<script> window.location.replace(\"/\"); </script>"; } } ?> |
||
Luky Profil * |
#2 · Zasláno: 19. 5. 2010, 17:33:38
Do databáze se vždy ip uloží, jak tam máte naznačené, když pak chcete zjistit jestli tam je, tak si na této stránce nechte načíst ip adresu z tabulky
$query = @MySQL_Query("SELECT *FROM clanky ") or die(mysql_error()); while($data = mysql_fetch_assoc($query)) { $ipadresa = $data['ip']; } (načtou se všechny)pak si nechte zjistit IP adresu uživatele $ipuzivatele = $REMOTE_ADDR; a podmínka by pak měla vypadat nějak takhle: If ($ipadresa==$ipuzivatele) |
||
vit Profil * |
#3 · Zasláno: 19. 5. 2010, 17:45:57
jo a jeste jak dát aby se tam automaticky ulozila? :D
|
||
mattyZEM Profil |
#4 · Zasláno: 19. 5. 2010, 17:49:57 · Upravil/a: mattyZEM
[#2] Luky
Ten tvůj script je prasárna jak hrom. <?php $promenna=mysql_fetch_assoc(mysql_query("SELECT count(id) as exist FROM clanky WHERE ip='".$_SERVER['REMOTE_ADDR']."'")); if($promenna['exist']>0){ echo 'IP se v databázi nachází'; }else { echo 'IP adresa se v databázi nenachází.'; } ?> vit: „jo a jeste jak dát aby se tam automaticky ulozila? :D“ Jednoduše si u vkládání přidáš sloupec IP a do VALUE() dáš '".$_SERVER['REMOTE_ADDR']."' Mimochodem neposílej IP, zjisti si jí až na stránce s zpracováním. Toto se dá jednoduše přepsat. |
||
Luky Profil * |
#5 · Zasláno: 19. 5. 2010, 17:54:01
to už tam dole máš (Insert into), takže pokud je podmínka splněna můžeš vypsat, že nemůže přídávát vícekrát a když nebude (ELSE) tak uděláš co potřebuješ. Tady je příklad :)
If ($ipadresa==$ipuzivatele){ echo "uz nemuzes pridavat...";}else { if(IsSet($_POST['sent'])) { $id = $_POST['id']; $nick = $_POST['nick']; $text = $_POST['text']; $ip = $_POST['ip']; // Podmínka, jestli byly vyplněny všechny údaje if($nick=="" || $text=="" || $ip=="") { echo "Nebyly vyplněny všechny údaje nebo hlasujete vícekrát!"; } // Všechny údaje byly v pořádku vyplněny else { $query = @MySQL_Query("INSERT INTO clanky VALUES ('$id', '$nick', '$text', '$ip')") or die(mysql_error()); echo "<script> window.location.replace(\"/\"); </script>"; }}} Jestli jsem to teda pochopil dobře - ty ukladas ip adresu do promene ip ja ji tam mam jako ipuzivatele, zkrátka zkus si s tím pohrát, jedině tak budeš vědět co děláš a sám si budeš namáhat hlavu :) |
||
Luky Profil * |
#6 · Zasláno: 19. 5. 2010, 17:56:57
mattyZEM:
„Ten tvůj script je prasárna jak hrom.“ já se omlouvám za ten select s tý databáze máš pravdu je to prasárna, já jsem si to neuvědomil :D |
||
vit Profil * |
#7 · Zasláno: 19. 5. 2010, 19:15:44
Jednoduše si u vkládání přidáš sloupec IP a do VALUE() dáš '".$_SERVER['REMOTE_ADDR']."'
a to tam dam jak? |
||
Luky Profil * |
#8 · Zasláno: 19. 5. 2010, 19:21:21
ip = $_SERVER['REMOTE_ADDR']; $query = @MySQL_Query("INSERT INTO clanky VALUES ('$id', '$nick', '$text', '$ip')") or die(mysql_error()); Jeden ze způsobů... |
||
vit Profil * |
#9 · Zasláno: 19. 5. 2010, 21:20:46
jo dobry diky uz to mam
|
||
Časová prodleva: 14 let
|
0