Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki, turiu vieną tokį klausimą? Kaip galima būtų šitame kode padaryt, kad tik Lietuvius leistų pakviest? T.y jeigu pvz jis būtų nelietuvis jam išmestų kokį nors tekstą, pvz tu esi ne Lietuvis ir panašiai.. Štai kodas:

 

 

<?php
/*-------------------------------------------------------+
| PHP-Fusion Content Management System
| Copyright (C) 2002 - 2008 Nick Jones
| http://www.php-fusion.co.uk/
+--------------------------------------------------------+
| Filename: downloads.php
| Author: Nick Jones (Digitanium)
+--------------------------------------------------------+
| This program is released as free software under the
| Affero GPL license. You can redistribute it and/or
| modify it under the terms of this license which you
| can read by viewing the included agpl.txt or online
| at www.gnu.org/licenses/agpl.html. Removal of this
| copyright header is strictly prohibited without
| written permission from the original author(s).
+--------------------------------------------------------*/
require_once "maincore.php";
$vers = explode(".",$settings['version']);
if($vers['0'] == 7) {
require_once THEMES."templates/header.php";
} else {
require_once "subheader.php";
require_once "side_left.php";
define("DB_USERS", DB_PREFIX."users");
}
define("DB_INVITES", DB_PREFIX."invites");
$invite = @$_GET['invite'];
$result = dbquery("SELECT * FROM ".DB_USERS." WHERE `user_id`='$invite'");
$narys = dbarray(dbquery("SELECT * FROM ".DB_USERS." WHERE `user_id`='$invite'"));
if(!isset($invite) || !isNum($invite) || !dbrows($result)) redirect(BASEDIR."./");

if($vers['0'] == 7) {
add_to_title(" - Tave pakvietė ".$narys['user_name']);
}

$data = dbarray(dbquery("SELECT * FROM `".DB_INVITES."` WHERE `invite_user_id`='$invite' AND `invite_guest_ip`='".USER_IP."' ORDER by invite_time DESC LIMIT 1"));

if($data['invite_time']  + 60 * 60 * 24 * 365 > time()) {
opentable("Jus į šį puslapį pakvietė ".$narys['user_name']);
echo "Jūs jau buvot pakviestas į šią svetainę!";
closetable();
} elseif($data['invite_time']  + 60 * 60 * 365 < time()) {
$result = dbquery("INSERT INTO `".DB_INVITES."` (invite_time, invite_user_id, invite_guest_ip) VALUES ('".time()."', '$invite', '".USER_IP."')");
opentable("Jus į šį puslapį pakvietė ".$narys['user_name']);
echo "Ačiū, kad užsukote į mūsų puslapį.<br>Tikimės, kad jūs lankysitės dažniau šiame puslapį.<br><br>Admintracijos INFO.";
closetable();
}

if($vers['0'] == 7) {
require_once THEMES."templates/footer.php";
} else {
require_once "side_right.php";
require_once "footer.php";
}
?>

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tu neaiškiai dėstai mintis... "kad tik Lietuvius leistų pakviest". Pavyzdžiui lietuvis gyvenantis užsienyje visvien bus lietuvis, taigi per IP nelabai ir gausis tiktint tada tiktų koks captcha su lietuviškais linksniais.

 

Na aš taip pasakiau, kadangi nelabai moku paaiškint gerai šitą situacija :D, bet vat svarbiausia, kad tik iš šios šalies (Lietuvos), pakvietus narį per tam tikrą nuorodą gautų taškų, tas kuris pakvietė, o jeigu jis būtų pvz iš kokios Anglijos negautų taškų.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na aš taip pasakiau, kadangi nelabai moku paaiškint gerai šitą situacija :D, bet vat svarbiausia, kad tik iš šios šalies (Lietuvos), pakvietus narį per tam tikrą nuorodą gautų taškų, tas kuris pakvietė, o jeigu jis būtų pvz iš kokios Anglijos negautų taškų.

Galima daryti lengvai. Paprašai kad įvestų asmens kodą, patikrini, ir baigtas kriukis...

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Lentele

CREATE TABLE IF NOT EXISTS `iptocountry` (
 `lower_bound` int(20) unsigned NOT NULL default '0',
 `upper_bound` int(20) unsigned NOT NULL default '0',
 `two_char_code` char(2) collate utf8_lithuanian_ci NOT NULL default '',
 `three_char_code` char(3) collate utf8_lithuanian_ci NOT NULL default '',
 `country` varchar(100) collate utf8_lithuanian_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_lithuanian_ci;

 

Importo kodas

 

$db = mysql_connect('localhost', 'username', 'password') or die('Could not connect to database');
mysql_select_db('lentele', $db) or die('Could not select database');

$fh = fopen('iptocountry.csv', 'r');

mysql_query("truncate iptocountry") or die(mysql_error());

while (!feof($fh))
{
	$line = str_replace('"', '', fgets($fh));
	if (substr($line, 0, 1) != '#')
	{
		$arr = explode(",", $line);

		if($arr[4] == "LT") 
		{
			$sql = "INSERT INTO iptocountry VALUES ('" . implode("','", $arr) . "')";
			mysql_query($sql);
		}

		if(mysql_error())
		{
			status(mysql_error());
		}
	}
}

fclose($fh);
mysql_close($db);

 

Ir tada kodas atpazinimui

 

$ip = $_SERVER['REMOTE_ADDR'];

function country($ip) 
{
	$iparr = explode('.', $ip);
	$ipkodas = $iparr[3] + $iparr[2] * 256 + $iparr[1] * 256 * 256 + $iparr[0] * 256 * 256 * 256;

	$salis = mysql_result(mysql_query("SELECT two_char_code FROM iptocountry WHERE lower_bound <= $ipkodas AND upper_bound >= $ipkodas LIMIT 1"));

	if($salis == "LT")
	{
		echo "LT";
	} 
	else 
	{
		echo "NE";
	}
}

 

Cia mano variantas, gal kas geresni ir patogesni zino :) Dabar tik reik, kad kas idetu tau ji i tavo skripta.

 

Ten ta importo koda ikelk pvz import.php i sukurta import direktorija :) Tau to retai reikes, tik jei pasikeistu LT intervalai. Aisku profilaktiskai gali atnaujinti, gal ir bus pasikeite.

Darom importa:

1. CSV faila atsisiustk is http://software77.net/geo-ip/

2. Pervadink CSV faila i "iptocountry.csv"

3. Ikelk i import direktorija (kur yra import.php failas)

4. Per narsykle paleisk import.php faila.

5. Eik gert alaus.

Redagavo TheChosenOne
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Atsiprašau nu jūsų parašas prieštarauja jums pačiam

 

Pritaikau automatizuotas sistemas serveriams, duodu

patarimus, tarpininkauju, kuriu svetainės, kuriu samp, cs serverius už prieinamą kainą! Skype: xskeletonas

 

Manau jums reikia skaityti vikipedija tik taip išmoksite,o nelaukti kol kažkas jums sukurs tą systema.

 

Jums jau yra pasufleruota,ko jums reikia,bet jums lieka tik paskaityt vikipedija.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...