Pereiti prie turinio

MySQL įrašas tam tikram laikui


Rekomenduojami pranešimai

Sveiki, turiu, tarkim, tokį kodą:

 

<?php

if(!in_array($_SERVER['REMOTE_ADDR'], array('81.20.151.38', '81.20.148.122', '209.20.83.207'))) { die("Klaida jungiantis!"); }


$secret='xxx';

if(!empty($secret) && !check_signature($_GET, $secret)){ die("Klaida! Neteisingas parasas!");  }


  $raktazodis = addslashes(htmlspecialchars($_GET['keyword']));


$zinute = addslashes(htmlspecialchars($_GET['message']));

$zinutes_duomenys = explode(" ",$zinute);


$atidarom = fopen("ataskaita.txt", "a+");


$zaidejas = $zinutes_duomenys[0];


$status = strtolower($_GET['status']);


if($status=="failed"){echo "Paslaugos suteikti nepavyko!"; exit;}

include("mysql.php");

$siuntejas = $_GET['sender'];

$data = date("Y-m-d, H:i:s");

if($status=="ok")

{


 if($raktazodis=="xxx")

 {

mysql_query("UPDATE users SET isadmin='1' WHERE username='$zaidejas'") or die(mysql_error());

echo "$zaidejas, gavo admin vienai savaitei."; 

fwrite($atidarom, "$data | $siuntejas | $zaidejas | $raktazodis | OK \r\n");

}

		 }

	else

	{

	echo "Zaidejui $zaidejas buvo uzsakytas admin. Paslauga bus suteikta, dazniausiai, po 5 min..";

	fwrite($atidarom, "$data | $siuntejas | $zaidejas | $raktazodis | LAUKIAMA \r\n");



	}


 function check_signature($params_array, $secret) {

ksort($params_array);


$str = '';

foreach ($params_array as $k=>$v) {

  if($k != 'sig') {

	$str .= "$k=$v";

  }

}

$str .= $secret;

$signature = md5($str);

return ($params_array['sig'] == $signature);

 }

?>

 

Mano tikslas, kad įrašas "isadmin='1'" mysql'e išliktų, tarkim, 7 dienas, o po to išsitrintų.

Problema ta, jog nelabai įsivaizduoju kaip tai reikia padaryt.. :)

Tikiuosi pagelbėsit :).

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Į pateiktą kodą neturiu noro gilintis...

 

Anyhow, lentelėje, kurioje nustatoma, kad vartotojas yra administratorius, pridedi papildomą lauką, kuriame saugoma, kada pasikeitė vartotojo statusas į administratorių. Tuomet sukuri CronJob'ą, kuris tikrintų skirtumą tarp MySQL serverio timestamp'o ir timestamp'o, saugomo prie vartotojo, kurį minėjau ankščiau. Jei skirtumas didesnis arba lygus 7 dienom (1 dienai, metams whatever), keiti isadmin reikšmę į FALSE (0).

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ą...