Един скрипт - ХЕЛПП

mizarck

Registered
Здравейте,
Един фриенд ми помогна да си напиша една логин система но немога да се справя с една част от системата та затова ако можете да ми помогнете ще съм ви много благодарен
та значи
системата използва база данни (MySQL)
Таблицата изглежда така
userid | user_name | user_pass | user_level | date | user_email | user_ip
като се регистрира някой той е левел 0 (до тук добре)
идеята ми е как като е минал месец от регистрацията потребителят да става левел 1 и да си остава там (на вторият месец нетрябва да става левел 2 а да си остане левел 1 завинаги)
ако можете да ми помогнете как да стане това ще съм ви много благодарен щото и идея си нямам как трябва да стане и най вече как до ги изкара топребителите и да сравни датите

пп датата изглежда така 09-08-2006


Благодаря предварително за помоща
 
Значи аз имам идея как ще стане,ама само до идеята.
Имаше някъде тука тема за JavaScript Countdown(обратни броячи).Като изтече времето което си задал то се изпълнявя от SQL заявка:
Код:
update tablicata_v bazata_ti_dannni set user_level = 1 where user_name = imeto_Na_usera
 
е ти поне имаш някаква идея как ще стане защото аз дори немога да се сетя как да стане имам предвид как да работи как да изведе само тези който са направили 1 месец и да увеличи числото на ред от таблицата
 
Виж не мога да се оправя с Java Script!
Ако намериш как след като изтече времето да се изпълнява даден php код ще ти го напиша по-подробно!
 
Ей и аз това търся и толкова скриптове намерих но нито един невърши ранота можеби само този малко може да се поработи по него:

Код:
<script type="text/javascript"> 
function countdown_clock(year, month, day, hour, minute, format) 
         { 
         //I chose a div as the container for the timer, but 
         //it can be an input tag inside a form, or anything 
         //who's displayed content can be changed through 
         //client-side scripting. 
         html_code = '<div id="countdown"></div>'; 
          
         document.write(html_code); 
          
         countdown(year, month, day, hour, minute, format);                
         } 
          
function countdown(year, month, day, hour, minute, format) 
         { 
         Today = new Date(); 
         Todays_Year = Today.getFullYear() - 2000; 
         Todays_Month = Today.getMonth() + 1;                  
          
         //Convert both today's date and the target date into miliseconds.                            
         Todays_Date = (new Date(Todays_Year, Todays_Month, Today.getDate(), 
                                 Today.getHours(), Today.getMinutes(), Today.getSeconds())).getTime();                                  
         Target_Date = (new Date(year, month, day, hour, minute, 00)).getTime();                  
          
         //Find their difference, and convert that into seconds.                  
         Time_Left = Math.round((Target_Date - Todays_Date) / 1000); 
          
         if(Time_Left < 0) 
            Time_Left = 0; 
          
         switch(format) 
               { 
               case 0: 
                    //The simplest way to display the time left. 
                    document.all.countdown.innerHTML = Time_Left + ' seconds'; 
                    break; 
               case 1: 
                    //More datailed. 
                    days = Math.floor(Time_Left / (60 * 60 * 24)); 
                    Time_Left %= (60 * 60 * 24); 
                    hours = Math.floor(Time_Left / (60 * 60)); 
                    Time_Left %= (60 * 60); 
                    minutes = Math.floor(Time_Left / 60); 
                    Time_Left %= 60; 
                    seconds = Time_Left; 
                    
                    dps = 's'; hps = 's'; mps = 's'; sps = 's'; 
                    //ps is short for plural suffix. 
                    if(days == 1) dps =''; 
                    if(hours == 1) hps =''; 
                    if(minutes == 1) mps =''; 
                    if(seconds == 1) sps =''; 
                    
                    document.all.countdown.innerHTML = days + ' day' + dps + ' '; 
                    document.all.countdown.innerHTML += hours + ' hour' + hps + ' '; 
                    document.all.countdown.innerHTML += minutes + ' minute' + mps + ' and '; 
                    document.all.countdown.innerHTML += seconds + ' second' + sps; 
                    break; 
               default: 
                    document.all.countdown.innerHTML = Time_Left + ' seconds'; 
               } 
                
         //Recursive call, keeps the clock ticking. 
         setTimeout('countdown(' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + format + ');', 1000); 
         } 

</script> 
<body> 
<script type="text/javascript">countdown_clock(06, 10, 23, 03, 5, 1);</script>

Ако някой успее да го преправи моля го да го пусне 8)
 
неможеш ли да направиш едно поле в които да записваш датата на регистрация 20.04.2007 и едно поле което да записваш датата на промяна на левела 20.05.2007
значи правиш някаква скрита форма при логин системата
която проверява датата във момента когато потребителя се логва в сайта
и с една иф конструкция проверяваш дали моментната дата е по голяма от 20.05.2007 ако е по голяма ти прави ъпдеит на даденото после ако е по малка нищо неправи
тва измислих аз ;)
 
mute каза:
неможеш ли да направиш едно поле в които да записваш датата на регистрация 20.04.2007 и едно поле което да записваш датата на промяна на левела 20.05.2007
значи правиш някаква скрита форма при логин системата
която проверява датата във момента когато потребителя се логва в сайта
и с една иф конструкция проверяваш дали моментната дата е по голяма от 20.05.2007 ако е по голяма ти прави ъпдеит на даденото после ако е по малка нищо неправи
тва измислих аз ;)

Да може да сложа поле но как да изкарам датата след 1 месец и да я запиша то хубаво към датата 20.04.2007 ще променя да е 20.05.2007 но ако е 20.12.2007 то ще я промени на 20.13.2007 така ще стане мазало в База данни но ще се опитам да намеря начин


NetCutter

ще помисля как може да стане подобно нещо и ако измисля и го напиша да работи ще го постна
 
Хм. . .това е идея!
Добавяш една колона: date
И още при регистрирането да кажем ако това ти е заявката:
Код:
$zaqvka = "insert into users (username, password, email )
values (\"$username\", \"$password\", \"$email\")"
То добавяш и дата:
Код:
$zaqvka = "insert into users (username, password, email, den, mesec )
values (\"$username\", \"$password\", \"$email\", \"$den\", \"$mesec1")"
Където по-горе в кода добавяш:
Код:
$den = date("d");
$mesec = date("m");
$mesec1 = $mesec + 1:
След което при всяко влизане ще правиш заявка към тея резултати и ще направиш една конструкция:
Код:
$den_sega = date("d");
$mesec = date("m");
if($mesec1 = $mesec) and ($den = $den_sega)
{ $promqna = "update users set level=1 where username = $username" }
И вече си слагаш нужните за заявката селектиране на база данни и прочие!
 
в БД има едно поле timestamp *( мислля че така се казваше ) може вместо дата да използваш него като добавиш 30 дена в секунди и после превръщаш текущата дата в timestamp
потърси информация за това
 
NetCutter каза:
Хм. . .това е идея!
Добавяш една колона: date
И още при регистрирането да кажем ако това ти е заявката:
Код:
$zaqvka = "insert into users (username, password, email )
values ("$username", "$password", "$email")"
То добавяш и дата:
Код:
$zaqvka = "insert into users (username, password, email, den, mesec )
values ("$username", "$password", "$email", "$den", "$mesec1")"
Където по-горе в кода добавяш:
Код:
$den = date("d");
$mesec = date("m");
$mesec1 = $mesec + 1:
След което при всяко влизане ще правиш заявка към тея резултати и ще направиш една конструкция:
Код:
$den_sega = date("d");
$mesec = date("m");
if($mesec1 = $mesec) and ($den = $den_sega)
{ $promqna = "update users set level=1 where username = $username" }
И вече си слагаш нужните за заявката селектиране на база данни и прочие!

ще го пробвам този начин


mute

timestamp не съм чувал до сега но ще прочета всичко в google за този функция
 
mute каза:
неможеш ли да направиш едно поле в които да записваш датата на регистрация 20.04.2007 и едно поле което да записваш датата на промяна на левела 20.05.2007
значи правиш някаква скрита форма при логин системата
която проверява датата във момента когато потребителя се логва в сайта
и с една иф конструкция проверяваш дали моментната дата е по голяма от 20.05.2007 ако е по голяма ти прави ъпдеит на даденото после ако е по малка нищо неправи
тва измислих аз ;)

Много добре си се сетил, ама надолу нещо сте почнали много сложно да мислите.
ако сложи дата на регистрация:
иф да проверява дали датата е по малка с един месец от текущата И дали е левел = 0 ако е изпълнява един упдейт на левел =1

пп
с date("U"); няма ли да е по лесно да се отчете един месец?
 
Еми не точно!
Да кажем той се регистрира на 29.06, а ака още на 01.07 ще стане 1 левел, щото месеца е с едно по-голям от дататана регването :wink:
 
NetCutter каза:
Еми не точно!
Да кажем той се регистрира на 29.06, а ака още на 01.07 ще стане 1 левел, щото месеца е с едно по-голям от дататана регването :wink:

ми тогава трябва да се насочим към дните и пак трябва да гледа месеца и дните за да може да си изчисли че е минал 1 месец
 
NetCutter каза:
Еми ок,де
Аз ти го написах ония пробвай го и кажи дали действа!

как да го пробвам като скрипта за регистрация изведнъж престана да бачка и вообще нейска да записва в база данни
 
NetCutter каза:
Еми не точно!
Да кажем той се регистрира на 29.06, а ака още на 01.07 ще стане 1 левел, щото месеца е с едно по-голям от дататана регването :wink:


дате ('У'); не е само месеца!
 
не съм го направил
ръчно ще ги повишевам иначе ако искам скрипт да ми го прави ще ми отнеме доста време да го измъдря и да го напиша а и защо да си губите времето за някакъв скрипт който дори няма да ви върши работа а ще върши само намен просто няма смисал
 

Back
Горе