par
zlepoizon » 18 juin 2019, 17:59
Bonjour à tous, une petite aide de la part des pros. J'ai un soucis pour afficher un echo après une vérification URL. Il doit avoir un problème de structure ou de position car ce qui suit mon echo fonctionne mais pas l'affiche lui même. Est-il mal mis dans mon code HTML ? Je bloque depuis plus de 1h sans trouver. Merci pour votre aide.
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>
Bonjour à tous, une petite aide de la part des pros. J'ai un soucis pour afficher un echo après une vérification URL. Il doit avoir un problème de structure ou de position car ce qui suit mon echo fonctionne mais pas l'affiche lui même. Est-il mal mis dans mon code HTML ? Je bloque depuis plus de 1h sans trouver. Merci pour votre aide.
Après : if(filter_var($url, FILTER_VALIDATE_URL))
J'ai mis un [b] dans le code pour le trouver facilement.
[b]// Message
echo 'URL valide !';[/b]
[PHP]
<?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>
[/PHP]