simpleWordsCloud/create.php

91 lines
2.5 KiB
PHP

<?php
include('templates/header.php');
include('db.php');
if (empty($_POST)) {
?>
<div id="cloud_create">
<form method="post" action="create.php">
<div class="cloud_create_element">
<label id="ftext_l" for="ftext">Description du nuage</label>
<textarea id="ftext" name="ftext" rows="3" cols="60" placeholder="Votre texte ici"></textarea>
</div>
<div class="cloud_create_element">
<label for="fduration">
<span title="Durée après laquelle le nuage sera supprimé">
Durée de vie du nuage
</span>
</label>
<select id="fduration" name="fduration">
<?php
foreach (DataBase::OPTIONS_DURATION as $name => $duration) {
echo sprintf('<option valu="%s">%s</option>', $name, $name);
}
?>
</select>
</div>
<div class="cloud_create_element">
<label for="fsize">Nombre de mots maximum par entrée</label>
<input type="number" id="fsize" name="fsize" min="1" max="9">
</div>
<input type="submit" value="Créer">
</form>
</div>
<?php
} else {
$db = new DataBase();
if (!$db->isInit()) {
echo 'Error db init';
return;
}
$db->cleanCloud();
$length = 6;
$token = bin2hex(random_bytes($length));
if (isset($_POST['fsize']) && is_numeric($_POST['fsize'])) {
$size = $_POST['fsize'];
} else {
$size = 3;
}
if (isset($_POST['ftext'])) {
$text = $_POST['ftext'];
} else {
$text = '';
}
if (isset($_POST['fduration']) && in_array($_POST['fduration'], DataBase::OPTIONS_DURATION)) {
$duration = $_POST['fduration'];
} else {
$duration = DataBase::DEFAULT_DURATION;
}
$cpt = 0;
while (!$db->createCloud($token, $text, $size, $duration) && $cpt < 10) {
$token = bin2hex(random_bytes($length));
$cpt++;
}
$viewUrl = 'result.php?id=' . $token;
$viewName = $_SERVER['HTTP_ORIGIN'] . '/'. $viewUrl;
$voteUrl = 'index.php?id=' . $token;
$voteName = $_SERVER['HTTP_ORIGIN'] . '/' . $voteUrl;
?>
<h2>Attention, il n'y a aucun moyen de retrouver ces liens par la suite.</h2>
<div id="cloud_links">
<div id="cloud_links_results" class="cloud_link">
<div class="label">Voici le lien pour <b>visualiser</b> le nuage de mots, il permet de voir le résultat.</div>
<div class="link">
<a href="<?php echo $viewUrl ?>"><?php echo $viewName ?></a>
</div>
</div>
<div id="cloud_links_vote" class="cloud_link">
<div class="label">Voici le lien pour <b>participer</b> au nuage, c'est le lien à partager avec les autres personnes.</div>
<div class="link">
<a href="<?php echo $voteUrl ?>"><?php echo $voteName ?></a>
</div>
</div>
</div>
<?php
}
include('templates/footer.php');