Autor Zpráva
vit
Profil *
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 *
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) 
pokud bude podmínka splněna, znamená to že v datábázi už IP adresa je...
vit
Profil *
jo a jeste jak dát aby se tam automaticky ulozila? :D
mattyZEM
Profil
[#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 *
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 *
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 *
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 *
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 *
jo dobry diky uz to mam

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0