Commit 700875ae authored by Cellophile's avatar Cellophile 🎨
Browse files

Mise à Jour 1.03

parent 8cae3e57
<?php
session_start();
//Initiatisation :
$av = "a";
$aw = "b";
$ax = "c";
$ay = "d";
$urlbase = "e";
$returnerror = 0;
$urlcourte = "https://u.captp.fr/";
$reponse = 0;
include_once "config.php";
include_once "fonctions.php";
// Vérification du captcha : vrai ou faux ?
......@@ -16,7 +9,7 @@ if(isset($_POST['captcha'])) {
if($_POST['captcha'] == $_SESSION['captcha']) {
}
else {
header("location: index.php?echec=3");
header("location: index.php?echec=2");
exit();
}
}
......@@ -32,7 +25,7 @@ if (isset($_POST["ubase"]) && isset($_POST["uperso"]) !== FALSE){
$urlbasetest = fopen($urlbase, "r");
if (empty($urlbasetest)){
header("location: index.php?echec=2");
header("location: index.php?echec=1");
exit();
}
......@@ -40,179 +33,25 @@ if (isset($_POST["ubase"]) && isset($_POST["uperso"]) !== FALSE){
$urlav = str_replace(' ','-', $urlav);
// Sécurisation de l'adresse personnalisée en lui ajoutant une chaine de caractères aléatoires :
include "fonction_securisation_url.php";
// On a 4 possibilités à tester :
$av = $chaine1."-".$urlav;
$aw = $chaine2."-".$urlav;
$ax = $chaine3."-".$urlav;
$ay = $chaine4."-".$urlav;
// On vérifie qu'au moins une des 4 possibilités est unique :
// On vérifie que l'adresse personnalisée est unique
// en lui ajoutant une chaine de caractères aléatoires :
// Premier test :
if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
// Récupère les données de chaque lignes
while (($data = fgetcsv($fp, ",")) !== FALSE) {
// Récupère les données de chaque cases
$upersoval = $data [0];
$ubaseval = $data [1];
// teste si l'URL perso existe déjà. Si oui, on change la sécurisation et on passe à la boucle suivante.
if ($av == $upersoval) {
$av1 = 1;
fclose($fp);
break;
}
else {
$av1 = 0;
}
}
// deuxième test :
if ($av1==1){
// Si la première boucle n'a pas marché, on fait une seconde boucle.
if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
// Récupère les données de chaque lignes
while (($data = fgetcsv($fp, ",")) !== FALSE) {
// Récupère les données de chaque cases
$upersoval = $data [0];
$ubaseval = $data [1];
// teste si l'URL perso existe déjà. Si oui, on change encore.
if ($aw == $upersoval) {
$aw2 = 1;
fclose($fp);
break;
}
else {
$aw2 = 0;
}
}
}
// troisième test :
if ($av1==1 && $aw2==1){
if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
while (($data = fgetcsv($fp, ",")) !== FALSE) {
$upersoval = $data [0];
$ubaseval = $data [1];
if ($ax == $upersoval) {
$ax3 = 1;
fclose($fp);
break;
}
else {
$ax3 = 0;
}
}
}
// quatrième test :
if ($av1==1 && $aw2==1 && $ax3==1){
if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
while (($data = fgetcsv($fp, ",")) !== FALSE) {
$upersoval = $data [0];
$ubaseval = $data [1];
if ($ay == $upersoval) {
$ay4 = 1;
fclose($fp);
break;
}
else {
$ay4 = 0;
}
}
// Si aucune URL n'a été testé unique, on demande à l'utilisateur de changer son texte :
if ($av1==1 && $aw2==1 && $ax3==1 && $ay4==1){
$returnerror = 1;
header("location: index.php?echec=1");
exit();
}
}
// Le quatrième test est validé :
else {
$upersok = $ay;
}
}
// Le troisième test est validé :
else {
$upersok = $ax;
}
$averifier = "false";
while($averifier=="false"){
$av = $urlav."-".random(3);
$averifier = uniciteurl($av,$srcfichiercsv);
}
//le deuxième test est validé :
else {
$upersok = $aw;
}
}
// Si le premier test a marché, on valide la première URL :
else {
$upersok = $av;
}
}
$upersok = $averifier;
// Puis on enregistre cette url dans le doc csv:
$reponse = 1; //permet d'afficher le message avec l'URL raccourcie.
if ($returnerror==0){
$list = array(
array ($upersok, $urlbase)
);
$fp = fopen("urlperso.csv", "ab");
foreach ($list as $field){
fputcsv($fp, $field);
}
fclose($fp);
// on lit ce qu'on vient d'écrire :
$lecture = fopen ("urlperso.csv", "r+");
$id = 0;
while ($id<1){
$info = fgetcsv($lecture, ",");
$info0 = $info[0];
$info1 = $info[1];
//DEBUG echo "<br><br>les infos enregistrées sont : <br> Texte de l'URL choisi : $info0 <br>URL à personnaliser : $info1.<br>";
$id++;
}
fclose($lecture);
// Ensuite on crée un fichier php pour établir la retirection :
$nfphp = 'd/'.$upersok.'.php';
$fichieredirect = fopen($nfphp, "w");
fwrite($fichieredirect, "<?php
header('Status: 301 Moved Permanently', false, 301);
header('Location: ".$urlbase."');
exit();
?>");
fclose($fichieredirect);
// on lit ce qu'on vient d'écrire :
$relecture = fopen($nfphp, "r");
$contenu = fgets($relecture, 500);
fclose($relecture);
//DEBUG echo "le titre du fichier est : $nfphp <br>";
//DEBUG echo "le contenu du fichier est : <br>$contenu<br> (c'est normal que rien ne s'affiche, on a écrit dans le header et pas dans le body).<br>";
//DEBUG echo "<a href=\d/$upersok.php\>cliquez ici.</a>";
$enregistrement = creer($upersok,$urlbase,$srcfichiercsv);
if($enregistrement == "true"){
$reponse = 1; //permet d'afficher le message avec l'URL raccourcie.
}
$urlfinale = $urlcourte.$upersok;
}
//Fin de traitement, Affichage du formulaire et des messages :
?>
......@@ -254,7 +93,7 @@ if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
echo $urlbase;
print ("<br>
L'URL raccourcie : ");
echo "<a href=$urlcourte$upersok\>$urlcourte$upersok</a>";
echo "<a href=$urlfinale\>$urlfinale</a>";
print ("</div>");
}
......@@ -263,7 +102,7 @@ if (($fp = fopen("urlperso.csv", "r")) !== FALSE) {
<p>Les URLS sont complétées par des caractères aléatoires. Ainsi personne ne pourra avoir la même URL que vous, même en choisissant le même texte de personnalisation, et surtout personne ne pourra retrouver votre url si vous ne lui la donnez pas !</p>
<br>
<p>Ceci est mon premier programme. Toute proposition d'amélioration est la bienvenue !</p>
<p>Version 1.02 — 23/02/2021 — © Théophile Bellintani — Licence <a href="licence.php">TROC</a>, <a href="https://framagit.org/Cellophile/personalink/">Opensource</a> et gratuit !</p>
<p><? echo $version; ?> — © Théophile Bellintani — Licence <a href="licence.php">TROC</a>, <a href="https://framagit.org/Cellophile/personalink">Opensource</a> et gratuit !</p>
</div>
</div>
</body>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment