Meny
Är gratis
checka in
den huvudsakliga  /  Program/ Övervakning av förnyelsedatum för domännamn. Borttagning av delegering och radering av domäner Oåterkalleligt datum gos reg html

Övervakning av förnyelsedatum för domännamn. Borttagning av delegering och radering av domäner Oåterkalleligt datum gos reg html

God dag vänner! Låt oss ta en titt på användarregistrering i PHP med dig. Låt oss först definiera villkoren för vår användarregistrering:

  • Vi krypterar lösenordet med algoritmen MD5
  • Lösenordet kommer att "saltas"
  • Kontrollera om inloggningen är upptagen
  • Användaraktivering per brev.
  • Skriva och lagra data i MySQL DBMS

För att skriva detta skript måste vi förstå vad användarregistrering är. Användarregistrering tar emot data från en riktig användare, bearbetar och lagrar data.

Om vi ​​förklarar med enkla ord är registrering bara inspelning och lagring av vissa data genom vilka vi kan auktorisera användaren i vårt fall - detta är inloggning och lösenord.

Auktorisation är att bevilja en viss person eller grupp personer rättigheter att utföra vissa åtgärder, liksom processen att verifiera dessa rättigheter när man försöker utföra dessa åtgärder. Enkelt uttryckt, med hjälp av auktorisation kan vi avgränsa åtkomst till detta eller annat innehåll på vår webbplats.

Låt oss överväga strukturen för manuskatalogerna för implementering av vår registrering med auktorisering. Vi måste dela upp skript i logiska komponenter. Vi har placerat registrerings- och auktoriseringsmodulerna i en separat katalog. Vi kommer också att placera anslutningen till databasen i separata kataloger. MySQL, fil med anpassade funktioner, stilfil CSS och vår mall Html... Denna struktur gör att du snabbt kan navigera i skript. Tänk dig att du har en stor webbplats med en massa moduler etc. och om det inte finns någon ordning kommer det att bli mycket svårt att hitta något i en sådan röran.

Eftersom vi lagrar all data i MySQL DBMS, sedan ska vi skapa en liten tabell där vi lagrar registreringsdata.

Först måste du skapa en tabell i databasen. Bordet kommer att anropas bez_reg var bezär tabellprefixet, och reg namnet på tabellen.

Tabellstruktur: bez_reg

- - Tabellstruktur `bez_reg` - SKAPA TABELL OM INTE EXISTEN` bez_reg` (` id` int (11) INTE NULL AUTO_INCREMENT, `login` varchar (200) INTE NULL,` passera 'varchar (32) INTE NULL, `salt `varchar (32) NOT NULL,` active_hex` varchar (32) NOT NULL, `status` int (1) NOT NULL, PRIMARY KEY (` id`)) MOTOR = MyISAM STANDARD CHARSET = utf8 AUTO_INCREMENT = 1;

Låt oss nu skapa huvudskripten för vidare arbete.

INDEX.PHP-fil

CONFIG.PHP-fil

"); ?>

404.html-fil

Fel 404

Fel 404

Ett 404-fel inträffade på sidan

Lämna tillbaka

BD.PHP-fil

INDEX.HTML-fil

PHP MySQL-användarregistrering med e-postaktivering

FUNCT.PHP-fil

"." \ n "; if (is_array ($ data)) (foreach ($ data as $ val) $ err. ="

  • ". $ val."
  • "." \ n ";) annars $ err. ="
  • ". $ data."
  • "." \ n "; $ err. =""." \ n "; returnera $ err;) / ** Enkelt omslag för MySQL-frågor * @param-sträng $ sql * / funktion mysqlQuery ($ sql) ($ res = mysql_query ($ sql); / * Kontroll av resultatet Detta visar den verkliga frågan som skickats till MySQL, liksom felet. Bekvämt för felsökning. * / if (! $ res) ($ message = "Ogiltig fråga:". mysql_error (). "\ n"; $ meddelande. = " Fråga i sin helhet: ". $ Sql; die ($ meddelande);) returnera $ res;) / ** Enkel saltgenerator * @paramsträng $ sql * / funktionssalt () ($ salt = substr (md5 (uniqid () ), - 8); returnera $ salt;)

    Låt oss gå ner till att skriva registrering. Först måste vi skapa en mall för registreringsformulär så att användaren kan ange sina uppgifter för bearbetning. Därefter måste vi skriva själva formulärhanteraren, som kommer att kontrollera de angivna användardata för korrekthet. När uppgifterna har verifierats framgångsrikt skriver vi dem i vår databas och skickar ett brev till användaren för att aktivera sitt konto.

    REG.PHP-fil

    Du har registrerats! Vänligen aktivera ditt konto !!"; // Aktivera kontot om (isset ($ _ GET [" key "])) (// Kontrollera nyckeln $ sql =" VÄLJ * FRÅN "". BEZ_DBPREFIX. "Reg` WHERE` active_hex` =" ". Escape_str ($ _GET ["key"]). "" "; $ Res = mysqlQuery ($ sql); if (mysql_num_rows ($ res) == 0) $ err =" Aktiveringsnyckeln är inte korrekt! "; // Kontrollera om det finns fel och visa för användaren om (count ($ err)> 0) echo showErrorMessage ($ err); else (// Få användarens adress $ row = mysql_fetch_assoc ($ res); $ email = $ row ["login] "]; // Aktivera kontoanvändaren $ sql =" UPPDATERA "". BEZ_DBPREFIX. "Reg` SET` status` = 1 VAR` login` = "". $ E-post. "" "; $ Res = mysqlQuery ($ sql ); // Skicka ett e-postmeddelande för att aktivera $ title = "(! LANG: Ditt konto på http: // webbplats har aktiverats"; $message = "Поздравляю Вас, Ваш аккаунт на http://сайт успешно активирован"; sendMessageMail($email, BEZ_MAIL_AUTOR, $title, $message); /*Перенаправляем пользователя на нужную нам страницу*/ header("Location:". BEZ_HOST ."less/reg/?mode=reg&active=ok"); exit; } } /*Если нажата кнопка на регистрацию, начинаем проверку*/ if(isset($_POST["submit"])) { //Утюжим пришедшие данные if(empty($_POST["email"])) $err = "Поле Email не может быть пустым!"; else { if(!preg_match("/^!} [e-postskyddad](+ \.) + (2,6) $ / i ", $ _POST [" e-post "])) $ err =" E-postmeddelande har skrivits in felaktigt "." \ N ";) om (tom ($ _ POST [ "pass"])) $ err = "Lösenordsfältet kan inte vara tomt"; if (tomt ($ _ POST ["pass2"])) $ err = "Fältet Bekräfta lösenord kan inte vara tomt"; // Kontrollera om det finns fel och visa för användaren om (count ($ err)> 0) echo showErrorMessage ($ err); annars (/ * Fortsätt kontrollera de inmatade data Kontrollera lösenord för matchning * / if ($ _ POST ["pass"]! = $ _POST ["pass2"]) $ err = "Lösenorden matchar inte"; // Sök efter fel och visa det för användaren om (count ($ err)> 0) echo showErrorMessage ($ err); else (/ * Check om vi har en sådan användare i databasen * / $ sql = "VÄLJ` inloggning` FRÅN" ". BEZ_DBPREFIX." reg` VAR` inloggning` = "". escape_str ($ _ POST ["e-post"]). "" "; $ res = mysqlQuery ($ sql); if (mysql_num_rows ($ res)> 0) $ err =" Ledsen inloggning: ". $ _POST [" e-post "]." upptagen! "; // Sök efter fel och visa det för användaren om (count ($ err)> 0) echo showErrorMessage ($ err); else (// Get the HASH of the salt $ salt = salt (); / / Salta lösenordet $ pass = md5 (md5 ($ _ POST ["pass")). $ Salt); / * Om allt är bra, skriv data till databasen * / $ sql = "INSERT INTO" ". BEZ_DBPREFIX . "reg` VÄRDEN (" "," ". escape_str ($ _ POST [" e-post "))." "," ". $ pass." "," ". $ salt." "," ". md5 ( $ salt). "", 0) "; $ res = mysqlQuery ($ sql); // Skicka ett e-postmeddelande för att aktivera $ url = BEZ_HOST." mindre / reg /? mode = reg & key = ". md5 ($ salt ); $ title = "(! LANG: Registrering på http: // webbplats"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}

    REG_FORM.HTML-fil

    PHP MySQL-användarregistrering med e-postaktivering

    E-post *:
    Lösenord *:
    lösenordsbekräftelse *:

    Fält med en ikon * krävs

    Eftersom vi är redo att registrera användare är det dags att skriva ett tillstånd. Låt oss skapa ett formulär för användarbehörighet, skriv sedan en godkännandeformhanterare och slutligen skapa ett skript visa.php som visar oss om vi är auktoriserade i systemet eller inte.

    AUTH.PHP-fil

    0) echo showErrorMessage ($ err); else (/ * Skapa en fråga att hämta från databasen för att kontrollera användarens äkthet * / $ sql = "VÄLJ * FRÅN" ". BEZ_DBPREFIX." reg` WHERE `login` =" ". escape_str ($ _ POST [ "e-post"]). "" OCH `status` = 1"; $ res = mysqlQuery ($ sql); // Om inloggningen matchar, kontrollera lösenordet om (mysql_num_rows ($ res)> 0) (// Få data från tabellen $ row = mysql_fetch_assoc ($ res); if (md5 (md5 ($ _ POST ["pass")). $ row ["salt"]) == $ row ["pass"]) ($ _SESSION [ "user"] = true; // Återställ parameternrubrik ("Location:". BEZ_HOST. "Less / reg /? Mode = auth"); exit;) else echo showErrorMessage ("Fel lösenord!");) Annars echo showErrorMessage ("Logga in ". $ _POST [" e-post "]." hittades inte! ");))?>

    För de som har den senaste PHP-versionen lägger jag upp det här skriptet med SUB eftersom expansion MySQL utfasad och borttagen från den nyare PHP-versionen. Ladda ner registrering och auktorisering php mysql pdo

    Arkivet uppdaterades den 24 februari 2015.

    Uppmärksamhet: Om du använder detta skript på en lokal server som DENWER,XAMPP, då ska du inte vänta på brev till din brevlåda. Bokstäverna är tomma skicka brev... I Denwer du kan hitta dem på vägen Z: \ tmp \! Sendmail \ du kan öppna dessa filer i vilken e-postklient som helst.

    Övervakning av förnyelsedatum för domännamn är en åtgärd som inte bör underskattas. Jag har redan skrivit om det, och nu ska vi ta itu med ett annat vanligt problem - den oväntade utgången av registreringsperioden för domännamnet. Det verkar som om alla registratorer idag påminner om detta i förväg (och vanligtvis flera gånger). Men problemet är att dessa bokstäver antingen inte läses, eller så hamnar de på något sätt i skräppost. I allmänhet är inte alla medvetna om att deras domännamnsregistreringsperiod tar slut. Som ett resultat fungerar webbplatsen inte, människor förstår inte varför och ibland spenderar mycket tid på att förstå vad som händer. Under tiden försvinner domännamnet från DNS-cachen, och efter ett par dagar (eller till och med tidigare, beroende på olika faktorer) slutar besökare att komma till webbplatsen. Låt oss se hur man övervakar utgångsdatumet för en domännamnsregistrering. Naturligtvis ett bash-skript.

    Hur får man ett domännamnsregistreringsdatum

    Det enklaste alternativet är att använda den globala whois-databasen. Den lagrar information om domännamn som organisation, ansvarig person, kontaktinformation, registreringsdatum och utgångsdatum för registrering. Och det är precis vad vi behöver. Låt oss ta en populär domän som ett exempel. Låt det vara yandex.ru. Här är informationen lagrad i whois-databasen om den här domänen:

    $ whois yandex.ru% Genom att skicka en förfrågan till RIPN: s Whois-tjänst samtycker du till att följa följande användarvillkor:% http://www.ripn.net/about/servpol.html#3.2 (på ryska) % http://www.ripn.net/about/en/servpol.html#3.2 (på engelska) .domän: YANDEX.RU nserver: ns1.yandex.ru. 213.180.193.1, 2a02: 6b8 :: 1 nserver: ns2.yandex.ru.93.158.134.1, 2a02: 6b8: 0: 1 :: 1 tillstånd: REGISTRERAD, DELEGERAD, VERIFIERAD org: YANDEX, LLC.registrar: RU-CENTER-RU admin-kontakt: https: // www. nic.ru/whois skapad: 1997.09.23 betald till: 2017.10.01 ledigt datum: 2017.11.01 källa: TCI Senast uppdaterad 2017.01.03 05:46:31 MSK

    Fältet vi är intresserade av är "betaltillägg", det här är det datum till vilket vi har betalat för domänen.

    Vi kommer att göra övervakningen av förnyelsedatumet för domännamnet på ungefär samma sätt som att övervaka certifikatet, men mycket lättare. Vi får domändata, letar efter ett fält som innehåller utgångsdatum för registreringen, om det finns (om vem är data för den här domänen inte är stängt), får detta datum, får dagens datum och visar skillnaden i dagar. Om du vill kan du lägga till att skicka ett brev om det till exempel är mindre än 30 dagar kvar innan registreringen är slut. Men det är inte så enkelt. Eftersom det finns minst tre typer av registreringsposter för registrering. Den första ser ut så här:

    Betald till: 2017.10.01

    Den andra ser ut så här:

    Registratorns utgångsdatum: 2020-09-13T21: 00: 00-0700

    Och den tredje ser ut så här:

    Registrets utgångsdatum: 2018-05-11T04: 00: 00Z

    Och vi måste därför tillhandahålla alla tre alternativen. Eller om det finns en fjärde, då den fjärde. Låt oss ta itu med dessa tre för tillfället.

    Så här ser manuset ut:

    #! / bin / bash # Om parametern inte är angiven, visa en ledtråd och avsluta om ["$ 1" == ""] sedan katt<< EOF Script that monitors how many days left until domain registration ends. Usage: $(basename $0) domain.name EOF exit fi # Получаем строку, содержащую дату окончания регистрации PAIDTILL=$(whois $1 | grep "paid-till\|Registrar Registration Expiration Date\|Registry Expiry Date") # Если такая строка не найдена, выходим с ошибкой if [ -z "$PAIDTILL" ] then echo "Registration end date is not available in whois database" exit 1 else # Если дата выглядит как ГГГГ.ММ.ДД, то добавляем 00:00:00 в конец [[ "$PAIDTILL" =~ "paid-till" ]] && PAIDTILL=${PAIDTILL//./-}" 00:00:00" # Удаляем из строки всё до двоеточия, само двоеточие # плюс автоматически будут удалены пробелы PAIDTILL=${PAIDTILL#*:} # Получаем текущую дату CURRENTDATE=$(date "+%Y-%m-%d %H:%M:%S") # Находим разницу между датами, получаем количество оставшихся дней DAYS_LEFT=$((($(date -d "$PAIDTILL" +%s) - $(date -d "$CURRENTDATE" +%s)) / 86400)) # Выводим, сколько дней осталось echo $DAYS_LEFT days left fi

    Här är resultatet av detta skript för olika domäner vid skrivningstidpunkten:

    $ ./check-dn-reg.sh linux.org 492 dagar kvar $ ./check-dn-reg.sh yahoo.com 2206 dagar kvar $ ./check-dn-reg.sh yandex.ru 270 dagar kvar $. /check-dn-reg.sh google.com 1349 dagar kvar $ ./check-dn-reg.sh ok.ru 331 dagar kvar $ ./check-dn-reg.sh vk.com 170 dagar kvar $ ./check -dn-reg.sh linux.org 492 dagar kvar $ ./check-dn-reg.sh linux.org.ru 345 dagar kvar

    Håller med, det ser bekvämt ut. Övervakning av förnyelsedatum för domännamn med skript endast 660 byte i storlek. Den kan redan användas i övervakning med Nagios eller Zabbix.

    Om det finns tillägg, kommentarer, skriv i kommentarerna.

    Om förnyelsen av .RU-, .РФ- och SU-domänregistreringstjänsten inte betalas före dess utgångsdatum avbryts tjänsten (domändelegering avbryts) den dag som anges i betaltill-fältet i Whois-tjänsten. Om det schemalagda avstängningsdatumet faller på en helg eller helg överförs domänavstängningen till den första arbetsdagen efter helgen.

    Efter avstängning av domändelegering omdirigeras alla http-förfrågningar till domänen till tjänstesidan med information om det tillfälliga underlåtenheten att tillhandahålla tjänsten. Administratörer av .RU- och .РФ-domäner kan vägra att omdirigeras till tjänstsidan innan domännamnsregistreringsperioden löper ut genom att skicka en begäran i någon form till adressen.

    Inom 30 dagar efter utgången av tjänsten (under förmånsperioden för förnyelse) behåller registranten för .RU-, .РФ- eller.SU-domänerna möjligheten att betala för förnyelsen.

    Vid betalning återupptas tjänsten.

    Avlägsnande av .RU-, .SU-, .РФ-domäner från registret för utebliven betalning

    Om förnyelsen av domänregistreringen inte betalas inom 30 dagar efter att den har upphört (under förmånsperioden för förnyelse), annulleras registreringen (domänen släpps).

    Publiceras i det fria datumet med information om domänen efter utgången av dess registreringsperiod.

    RU-CENTER kan ta bort .SU-domänen när som helst från datumet för det planerade lediga datumet. Om detta inte händer raderas domänerna automatiskt av Technical Center.

    Under förebyggande perioden kommer .RU- och .РФ-domännamn inte att annulleras.

    Datum för borttagning av domän av Technical Center

    Domänerna .RU, .РФ och SU raderas av Technical Center den dag som motsvarar det planerade datumet för radering (fritt datum).

    Domäner .RU, .РФ eller.SU raderas den andra arbetsdagen efter helgen, om datumet för radering faller på en helg eller en dag efter helgen.

    Proceduren för att radera domäner i Technical Center börjar fungera:

    • för domäner .RU, .РФ kl. 17:00 (MSK),
    • för domäner.SU kl 19:30 (MSK).

    Registrering genom RU-CENTER av .RU, .SU, .РФ-domäner som kan frigöras

    Ansökningar om registrering av en domän som frigörs från registret kan skickas in på www..site / auktion / server innan domänen släpps från registret.

    För .RU- och .РФ-domäner börjar ansökningar accepteras 30 dagar före den dag domänen släpps från registret i enlighet med tjänsten för registrering av den frigivna domänen i RU- och ryska domäner.

    För SU-domäner - när som helst innan domänen släpps från registret i enlighet med registreringstjänsten för den lediga domänen i SU, COM.RU, NET.RU, ORG.RU, PP.RU-domäner och geodomäner.

    För domäner .RU, .SU, .РФ - samma dag som domänen tas bort från registret via webbgränssnittet på sidan, medan:

    • Ett brev om de åtgärder som vidtagits skickas till kontaktadresserna till den person som gjorde ansökan.

    2. Internationella och utländska

    Om förnyelsen av tjänsten inte betalas före utgången av dess giltighetsperiod avbryts tillhandahållandet av tjänsten (domändelegering avbryts) nästa dag efter det datum som anges i fältet Utgångsdatum i. Om det schemalagda avstängningsdatumet faller på en helg eller helg överförs domänavstängningen till den andra arbetsdagen efter helgen.

    Inom 30 dagar efter utgången av tjänsten behåller domänadministratören möjligheten att betala för förnyelsen. Vid betalning återupptas tjänsten.

    Ta bort domäner från register i internationella och utländska nationella domäner

    Om förnyelsen av domänregistreringen inte betalas inom 30 dagar från datumet för tjänsten upphör, kommer RU-CENTER att inleda proceduren för borttagning av domän i registret. Om raderingsdatumet faller på en helg eller en helgdag skjuts inledningen av raderingen av domänen till den andra arbetsdagen efter helgen.

    Proceduren för att ta bort en domän i registret tar 35 dagar. Undantagen är:

    • .HN-domäner vars radering tar 15 dagar och domänen kan inte återställas eller förnyas under denna period;
    • domäner .NAME, som raderas efter 30 dagar efter utgången av registreringsperioden.
    • domäner .KZ, som raderas efter 20 dagar efter utgången av registreringsperioden.

    I det här fallet anger registret i 30 dagar motsvarande status för domänen i:
    .NET, .COM, .CC, .TV, .AG, .BZ, .LC, .MN, .SC, .VC - RedemptionPeriod,
    .BIZ, .TEL - Väntar på radering,
    .INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO - PendingDelete Restorable.

    Startdatumet för den trettio dagar långa perioden anges i fältet:
    Uppdaterat datum för .NET, .COM, .CC, .TV, .AG, .BZ, .HN, .LC, .MN, .SC, .VC domäner
    Domän senast uppdaterad datum - BIZ, .TEL eller
    Senast uppdaterad den - INFO, .ORG, .ME, .MOBI, .AERO, .TRAVEL, .XXX, .PRO.

    Domänåterställning

    Inom 25 dagar från början av borttagningsproceduren kan domänen återställas och förnyas (förutom .HN, NAME, .KZ) på begäran av domänadministratören.

    Om domänen inte har återställts och förnyats kommer den att tas bort från registret fem dagar efter slutet av RedemptionPeriod (väntar på att ta bort eller väntar på att återställas). Under dessa 5 dagar (domänstatus i registret - PendingDelete) är det omöjligt att återställa, förnya eller registrera domänen.

    När domänen har tagits bort från registret kan domänen registreras av vilken person som helst.

    3. Domäner på tredje nivån

    Avlägsnande av domändelegering för utebliven betalning

    Om förnyelsen av tjänsten inte betalas före utgången av dess giltighetsperiod avbryts tillhandahållandet av tjänsten (domändelegering avbryts) nästa dag efter det datum som anges i betaltill-fältet i Whois-tjänsten. För .NET.RU-, .ORG.RU- och .PP.RU-domäner avbryts tjänsten (domändelegering avbryts) den dag som anges i betaltill-fältet i Whois-tjänsten.

    Om det schemalagda avstängningsdatumet faller på en helg eller helg överförs domänavstängningen till den andra arbetsdagen efter helgen.

    Efter avstängning av domändelegering omdirigeras alla http-förfrågningar till .NET.RU-, .ORG.RU- och .PP.RU-domänerna till den officiella webbplatsen för .NET.RU, .ORG.RU och.PP.RU domänadministratör, TsVKS "MSK-IX", med information om anledningen till att delegationen avslutades.

    Inom 30 dagar efter utgången av tjänsten (förmånsperiod för förnyelse) kan domänadministratören fortfarande betala för förnyelsen. Vid betalning återupptas tillhandahållandet av tjänsten.

    Under förebyggande förnyelseperioden kommer .NET.RU, .ORG.RU och .PP.RU-domänerna inte att annulleras.

    Om betalningen för tjänsteförnyelsen sker den sista arbetsdagen i förmånsförnyelseperioden är RU-CENTER inte ansvarig för den lyckade förnyelsen.

    Ta bort domäner

    Registreringen av ett tredje nivå domännamn avbryts (domänen släpps) om det inte förnyas inom 30 (trettio) kalenderdagar från utgångsdatumet för domännamnsregistreringen.

    Planerat utgivningsdatum för domänen publiceras i fältet fritt datum i domäninformationen i RU-CENTER Whois-tjänsten efter utgången av dess registreringsperiod. I det här fallet görs raderingen en dag senare än det planerade släppdatumet, om raderingsdagen (ledigt datum + 1) inte faller på en icke-arbetsdag eller en dag efter en icke-arbetsdag (annars radering görs den andra arbetsdagen efter helgen).

    .NET.RU-, .ORG.RU- och .PP.RU-domänerna raderas av Technical Center den dag som motsvarar det planerade raderingsdatumet (fritt datum). Domänerna .NET.RU, .ORG.RU och .PP.RU kommer att raderas den andra arbetsdagen efter helgen om datumet för radering faller på en helg eller en dag efter helgen.

    Registrering via RU-CENTER av domäner på tredje nivå som släpps

    Ansökningar om registrering av lediga domäner från registret eller .COM.RU-domäner kan lämnas in på www..site / auktion / server när som helst innan domänerna släpps från registret enligt tjänsten “Registrering av de utrymda domänerna i domänerna.SU, .COM.RU och geodomäner ”.

    Den dag då domänen raderas accepteras en ansökan om en domänregistreringstjänst via webbgränssnittet på sidan, medan:

    • ansökan uppfylls om domänen är gratis vid tidpunkten för behandlingen;
    • Ett brev skickas till kontaktpersonens e-postadresser till den person som gjorde ansökan om de åtgärder som vidtagits.