servnest/reg/register.php

177 lines
8.2 KiB
PHP

<?php include "../top.inc.php"; ?>
Enregistrer la possession d'un domaine sur son compte.<br>
Ce domaine doit être composé uniquement d'au moins 4 lettres latines non accentuées.
<br>
<br>
<form method="post">
<fieldset>
<legend>Domaine</legend>
<div class="elForm">
<label for="subdomain">Sous-domaine</label>
<br>
<input id="subdomain" pattern="<?= SUBDOMAIN_REGEX ?>" required="" placeholder="niver" name="subdomain" type="text">
</div class="elForm">
<div class="elForm">
<label for="suffix">Suffixe</label>
<br>
<select required="" id="suffix" name="suffix">
<option selected="" value="4.niv.re.">.4.niv.re.</option>
<optgroup label="Organisations">
<option value="asso.4.niv.re.">.asso.4.niv.re.</option>
<option value="org.4.niv.re.">.org.4.niv.re.</option>
</optgroup>
<optgroup label="Personnels">
<option value="perso.4.niv.re.">.perso.4.niv.re.</option>
<option value="blog.4.niv.re.">.blog.4.niv.re.</option>
<option value="me.4.niv.re.">.me.4.niv.re.</option>
</optgroup>
<optgroup label="Connaissance">
<option value="edu.4.niv.re.">.edu.4.niv.re.</option>
<option value="info.4.niv.re.">.info.4.niv.re.</option>
<option value="wiki.4.niv.re.">.wiki.4.niv.re.</option>
<option value="sci.4.niv.re.">.sci.4.niv.re.</option>
</optgroup>
<optgroup label="Politique">
<option value="pol.4.niv.re.">.pol.4.niv.re.</option>
<option value="libre.4.niv.re.">.libre.4.niv.re.</option>
<option value="fem.4.niv.re.">.fem.4.niv.re.</option>
<option value="eco.4.niv.re.">.eco.4.niv.re.</option>
<option value="veg.4.niv.re.">.veg.4.niv.re.</option>
<option value="bio.4.niv.re.">.bio.4.niv.re.</option>
<option value="anar.4.niv.re.">.anar.4.niv.re.</option>
<option value="ancom.4.niv.re.">.ancom.4.niv.re.</option>
<option value="acab.4.niv.re.">.acab.4.niv.re.</option>
<option value="handi.4.niv.re.">.handi.4.niv.re.</option>
</optgroup>
<optgroup label="LGBT+">
<option value="queer.4.niv.re.">.queer.4.niv.re.</option>
<option value="gay.4.niv.re.">.gay.4.niv.re.</option>
<option value="enby.4.niv.re.">.enby.4.niv.re.</option>
<option value="trans.4.niv.re.">.trans.4.niv.re.</option>
</optgroup>
<optgroup label="Technologie">
<option value="net.4.niv.re.">.net.4.niv.re.</option>
<option value="tech.4.niv.re.">.tech.4.niv.re.</option>
<option value="io.4.niv.re.">.io.4.niv.re.</option>
<option value="sec.4.niv.re.">.sec.4.niv.re.</option>
<option value="cyber.4.niv.re.">.cyber.4.niv.re.</option>
<option value="dev.4.niv.re.">.dev.4.niv.re.</option>
<option value="geek.4.niv.re.">.geek.4.niv.re.</option>
<option value="fs.4.niv.re.">.fs.4.niv.re.</option>
<option value="ht.4.niv.re.">.ht.4.niv.re.</option>
<option value="hyper.4.niv.re.">.hyper.4.niv.re.</option>
<option value="git.4.niv.re.">.git.4.niv.re.</option>
<option value="forge.4.niv.re.">.forge.4.niv.re.</option>
<option value="code.4.niv.re.">.code.4.niv.re.</option>
<option value="lab.4.niv.re.">.lab.4.niv.re.</option>
<option value="labs.4.niv.re.">.labs.4.niv.re.</option>
<option value="gemini.4.niv.re.">.gemini.4.niv.re.</option>
<option value="gmi.4.niv.re.">.gmi.4.niv.re.</option>
<option value="gemlog.4.niv.re.">.gemlog.4.niv.re.</option>
<option value="mail.4.niv.re.">.mail.4.niv.re.</option>
<option value="ynh.4.niv.re.">.ynh.4.niv.re.</option>
<option value="yuno.4.niv.re.">.yuno.4.niv.re.</option>
<option value="sys.4.niv.re.">.sys.4.niv.re.</option>
</optgroup>
<optgroup label="Fédiverse">
<option value="fed.4.niv.re.">.fed.4.niv.re.</option>
<option value="fedi.4.niv.re.">.fedi.4.niv.re.</option>
<option value="soc.4.niv.re.">.soc.4.niv.re.</option>
<option value="masto.4.niv.re.">.masto.4.niv.re.</option>
<option value="plero.4.niv.re.">.plero.4.niv.re.</option>
<option value="pix.4.niv.re.">.pix.4.niv.re.</option>
<option value="mobi.4.niv.re.">.mobi.4.niv.re.</option>
</optgroup>
<optgroup label="Arts">
<option value="art.4.niv.re.">.art.4.niv.re.</option>
<option value="music.4.niv.re.">.music.4.niv.re.</option>
<option value="video.4.niv.re.">.video.4.niv.re.</option>
<option value="draw.4.niv.re.">.draw.4.niv.re.</option>
<option value="audio.4.niv.re.">.audio.4.niv.re.</option>
<option value="ink.4.niv.re.">.ink.4.niv.re.</option>
</optgroup>
<optgroup label="Neurodiversité">
<option value="na.4.niv.re.">.na.4.niv.re.</option>
<option value="psy.4.niv.re.">.psy.4.niv.re.</option>
<option value="neuro.4.niv.re.">.neuro.4.niv.re.</option>
<option value="auti.4.niv.re.">.auti.4.niv.re.</option>
<option value="plur.4.niv.re.">.plur.4.niv.re.</option>
</optgroup>
<optgroup label="Couleurs">
<option value="blue.4.niv.re.">.blue.4.niv.re.</option>
<option value="red.4.niv.re.">.red.4.niv.re.</option>
<option value="pink.4.niv.re.">.pink.4.niv.re.</option>
<option value="green.4.niv.re.">.green.4.niv.re.</option>
<option value="black.4.niv.re.">.black.4.niv.re.</option>
</optgroup>
<optgroup label="Communauté">
<option value="city.4.niv.re.">.city.4.niv.re.</option>
<option value="town.4.niv.re.">.town.4.niv.re.</option>
<option value="cafe.4.niv.re.">.cafe.4.niv.re.</option>
<option value="home.4.niv.re.">.home.4.niv.re.</option>
<option value="forum.4.niv.re.">.forum.4.niv.re.</option>
</optgroup>
<optgroup label="Divers">
<option value="dream.4.niv.re.">.dream.4.niv.re.</option>
<option value="space.4.niv.re.">.space.4.niv.re.</option>
<option value="forest.4.niv.re.">.forest.4.niv.re.</option>
<option value="rain.4.niv.re.">.rain.4.niv.re.</option>
<option value="snow.4.niv.re.">.snow.4.niv.re.</option>
<option value="sun.4.niv.re.">.sun.4.niv.re.</option>
<option value="earth.4.niv.re.">.earth.4.niv.re.</option>
<option value="world.4.niv.re.">.world.4.niv.re.</option>
<option value="soft.4.niv.re.">.soft.4.niv.re.</option>
<option value="cute.4.niv.re.">.cute.4.niv.re.</option>
<option value="cutie.4.niv.re.">.cutie.4.niv.re.</option>
<option value="fun.4.niv.re.">.fun.4.niv.re.</option>
<option value="play.4.niv.re.">.play.4.niv.re.</option>
<option value="game.4.niv.re.">.game.4.niv.re.</option>
</optgroup>
</select>
</div>
</fieldset>
<br>
<input value="Valider" type="submit">
</form>
<?php
if (isset($_POST['subdomain']) AND isset($_POST['suffix']) AND isset($_SESSION['username'])) {
if (preg_match("/" . SUBDOMAIN_REGEX . "/", $_POST['subdomain'])) {
if (!in_array($_POST['suffix'], SUFFIXES))
exit("Wrong value for suffix");
$domain = $_POST['subdomain'] . "." . $_POST['suffix'];
checkAbsoluteDomainFormat($domain);
if (regIsFree($domain)) {
$db = new PDO('sqlite:' . DB_PATH);
$stmt = $db->prepare("INSERT INTO registry(domain, username, last_renewal) VALUES(:domain, :username, :last_renewal)");
$username = $_SESSION['username'];
$time = date("Y-m-d H:i:s");
$stmt->bindParam(':domain', $domain);
$stmt->bindParam(':username', $username);
$stmt->bindParam(':last_renewal', $time);
$stmt->execute();
echo "Nouveau domaine enregistré";
} else {
echo "Le domaine " . $domain . " n'est pas disponible à l'enregistrement. Il est réservé ou déjà enregistré.";
}
} else {
echo "Erreur : Le nom de domaine doit être composé uniquement d'entre 4 et 63 lettres minuscules (a-z)";
}
}
?>
<?php include "../bottom.inc.php"; ?>