false, $valueName => "");
$req = $bdd->prepare('SELECT * FROM short_links WHERE ' . $valueName . ' = ?');
$req->execute(array($valueToFind));
while ($result = $req->fetch()) {
$array['isInDatabase'] = true;
if($typeURL) {
$array["shortcut"] = $result["shortcut"];
}
}
return $array;
}
$array = array("url" => "", "option"=> "", "message" => "");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Si le formulaire est envoyé
if(isset($_POST['url']) && isset($_POST['option'])) {
$array["url"] = $_POST["url"];
$array["option"] = $_POST["option"];
// Si ce n'est pas un lien valide
if(!filter_var($array["url"], FILTER_VALIDATE_URL)) {
$array["message"] = "Veuillez entré une URL valide.";
} else {
// Connexion à la base de donnée
require_once('./config_database/connectDB.php');
// URL déjà en base de donnée ?
$urlInDatabase = alreadyExists($bdd, $array["url"], "url", true);
if($urlInDatabase['isInDatabase']) {
$shortcutURL = $linkPath . '?q=' . $urlInDatabase['shortcut'];
$array['message'] = 'Adresse déjà raccourcie : ' . $shortcutURL . '';
} else {
if($array['option'] == "userShortcut" && isset($_POST['userShortcut']) && !empty($_POST['userShortcut'])) {
// Shortcut choisis par l'utilisateur
$shortcut = camelCase($_POST['userShortcut']);
} else {
// Shortcut unique aléatoire
do {
$shortcut = uniqueId();
} while(alreadyExists($bdd, $shortcut, "shortcut")['isInDatabase']);
}
$shortcutURL = $linkPath . '?q=' . $shortcut;
if(alreadyExists($bdd, $shortcut, "shortcut")['isInDatabase']) {
$array['message'] = 'Le shortcut "' . $shortcut . '" est déjà pris, veuillez en choisir un autre.';
} else {
// Envoi de l'URL et du shortcut dans la base de donnée
$req = $bdd->prepare('INSERT INTO short_links(url, shortcut) VALUES (?, ?)');
$req->execute(array($array['url'], $shortcut));
$array['message'] = 'URL raccourcie : '. $shortcutURL .'';
// URL et Shortcut en Cookie
if(isset($_COOKIE['shortcuts']) && !empty($_COOKIE['shortcuts'])) {
$data = json_decode($_COOKIE['shortcuts'], true);
} else {
$data = array();
}
array_push($data, array("url" => $array['url'], "shortcut" => $shortcutURL));
setcookie('shortcuts', json_encode($data), time()+3600*24*365, '/');
}
}
}
}
echo json_encode($array);
}
?>