Après : if(filter_var($url, FILTER_VALIDATE_URL))
J'ai mis un dans le code pour le trouver facilement.
// Message
echo 'URL valide !';
<?php
// Test connexion DB
try {
$bdd=new PDO
('mysql:host=localhost;
dbname=bitly;
charset=utf8','root',''
);
echo "Connection DB OK ! ";
}
catch(Exception $e)
{
die('Message Erreur : '.$e->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Check URL</title>
</head>
<body>
<form action="?" method="post">
<input name="url" type="url" required placeholder="Coller votre lien ..." />
<input type="submit" value="Raccourcir"/>
<div><em>Checker un URL : </em>
</div>
</form>
<?php
// Après form //
if (!empty($_POST['url']))
{
// Désigne la variable
$url=$_POST['url'];
// Vérifier si url valide
if(filter_var($url, FILTER_VALIDATE_URL))
{
[b] // Message
echo 'URL valide !';[/b]
// si url valide on continue :
// Variable et le sel (salt) qui permet de rendre unique le shortcut pour empêcher de décrypter + paramètre variable ici ranmdom
$shortcut=crypt($url, time());
// Requète qui prépare la DB avant l'envoi. Compte tous (dans x) dans la db links dans la table url
$req=$bdd->prepare('SELECT COUNT(*) AS x FROM links WHERE url = ?');
// ? ne jamais rentrer à la main la valeur dans la requète.
// On execute la requète en créant un tableau
$req->execute(array($url));
// Lire chaque ligne de la DB
// Pour le résultat on crée un tableau array en faisant une boucle. $req va aller chercher l'info (fetch) à mettre dans result
while ($result=$req->fetch())
{
// si occurence est différent de 0 (url existe déjà)
if($result['x'] !=0)
{
header('location: test2.php?error=true&message=Adresse déjà raccourcie');
// test2.php?error=true&message=Adresse%20déjà%20raccourcie //
exit();
}
}
// Préparer -> insérer valeur url, shortcut
$req=$bdd->prepare('INSERT INTO links(url,shortcut) VALUE (?, ?)');
// Envoi DB -> exécuter
$req->execute(array($url, $shortcut));
// redirection vers un lien à générer
header('location: test2.php?short='.$shortcut);
// test2.php?short=95Hn9hJhZYPSA
exit();
}
// Si c'est pas un URL Valide
else
{
echo("$url n'est PAS une URL valide ! ");
}
// Fin envoi URL
}
?>
</body>
</html>