Initial commit
This commit is contained in:
commit
83ef0ea335
63
index.php
Normal file
63
index.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
include('.config/include.php');
|
||||
if (is_readable($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_NAME']))
|
||||
{
|
||||
$rawData = file_get_contents($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_NAME']);
|
||||
$data = unserialize($rawData);
|
||||
}
|
||||
else
|
||||
$data = array();
|
||||
|
||||
// If we don't have exactly one $_GET arg, we print a default page
|
||||
if (count($_GET) > 1 || count($_GET) < 1)
|
||||
{
|
||||
if (isset($_GET['add']) && $_GET['url'])
|
||||
$default_url = htmlspecialchars($_GET['url']);
|
||||
else
|
||||
$default_url = "";
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Réduis moi!</title>
|
||||
<link rel="stylesheet" media="screen" type="text/css" href="misc/design.css" />
|
||||
<link rel="icon" href="favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>C'est trop long ...</h1>
|
||||
<form method="post" action="process.php">
|
||||
<p>
|
||||
<label for="url">URL : </label><input type="text" size="50" name="url" id="url" value="<?php echo $default_url; ?>"/>
|
||||
</p>
|
||||
<p>
|
||||
<label for="short">Raccourci (optionnel): </label><input type="short" size="50" name="short" id="short"/>
|
||||
</p>
|
||||
<p><input type="submit" value="... raccourcir !"/></p>
|
||||
<p>Ajouter ce lien pour réduire les URL en un seul clic :
|
||||
<a href="javascript:javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;window.open('<?php echo $_CONFIG['BASE_URL']; ?>/?add&url='%20+%20encodeURIComponent(url),'_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1');})();">Réduis moi !</a>
|
||||
</p>
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
}
|
||||
// Else, we redirect the visitor to the right URL
|
||||
else
|
||||
{
|
||||
// We get the shortened url
|
||||
$get = each($_GET);
|
||||
$short = $get['key'];
|
||||
$url = $_CONFIG['BASE_URL'];
|
||||
foreach($data as $array)
|
||||
{
|
||||
if ($array['short'] == $short)
|
||||
{
|
||||
$url = $array['url'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
// $url is now index.php if no element was found, the right url if found
|
||||
header('location:'.$url);
|
||||
}
|
||||
?>
|
BIN
misc/bg.png
Normal file
BIN
misc/bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
141
misc/design.css
Normal file
141
misc/design.css
Normal file
@ -0,0 +1,141 @@
|
||||
/* --- STYLES DE BASE --- */
|
||||
|
||||
/* Page */
|
||||
html {
|
||||
font-size: 100%; /* Évite un bug d'IE 6-7. (1) */
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 1em; /* Remettre à zéro si nécessaire. */
|
||||
font-family: Arial, Helvetica, "Liberation Sans", FreeSans, sans-serif;
|
||||
font-size: .8em;
|
||||
line-height: 1.4; /* À adapter au design. (4) */
|
||||
color: black;
|
||||
background-color: grey;
|
||||
background-image: url('bg.png');
|
||||
}
|
||||
|
||||
pre
|
||||
{
|
||||
font-size: 10px;
|
||||
font-style: normal;
|
||||
line-height: 11px;
|
||||
font-weight: normal;
|
||||
font-family: "Courier New", Courier, mono;
|
||||
text-align: left;
|
||||
margin-left: 40%;
|
||||
}
|
||||
|
||||
/* Titres */
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 1em 0 .5em 0; /* Rapproche le titre du texte.*/
|
||||
line-height: 1.2;
|
||||
font-weight: bold; /* Valeur par défaut.*/
|
||||
font-style: normal;
|
||||
}
|
||||
h1 {
|
||||
font-size: 1.75em;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 1.25em;
|
||||
}
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* Listes */
|
||||
ul, ol {
|
||||
margin: .75em 0 .75em 32px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* Paragraphes */
|
||||
p {
|
||||
margin: .75em 0; /* Marges plus faibles que par défaut.*/
|
||||
}
|
||||
address {
|
||||
margin: .75em 0;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
/* Liens */
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:link {
|
||||
color : #0000cd;
|
||||
}
|
||||
a:visited {
|
||||
color : #4b0082;
|
||||
}
|
||||
a:hover, a:focus, a:active {
|
||||
color : #dc143c;
|
||||
}
|
||||
a img {
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Divers éléments de type en-ligne*/
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* Formulaires */
|
||||
form, fieldset {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
form
|
||||
{
|
||||
border: none;
|
||||
}
|
||||
|
||||
/* Mise en forme simple pour les tableaux */
|
||||
table {
|
||||
margin: 0;
|
||||
border: 1px solid gray; /* Pas de bordure = "none". */
|
||||
border-collapse: collapse; /* Valeur par défaut: "separate". */
|
||||
border-spacing: 0;
|
||||
margin: auto;
|
||||
}
|
||||
table td, table th {
|
||||
padding: 4px; /* Pas de retrait autour du texte = "0". */
|
||||
border: 1px solid #ccc; /* Pas de bordure = "none". */
|
||||
vertical-align: top; /* Valeur par défaut: "middle" */
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
body
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
label /* On affiche les labels sous forme de blocs et mise en page = formulaires alignés */
|
||||
{
|
||||
display: block;
|
||||
}
|
||||
|
||||
th
|
||||
{
|
||||
background-color: rgba(255,10,255,0.2);
|
||||
}
|
||||
td
|
||||
{
|
||||
background-color: rgba(255,200,255,0.1);
|
||||
}
|
||||
.inline
|
||||
{
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.centre
|
||||
{
|
||||
text-align:center;
|
||||
}
|
||||
|
73
process.php
Normal file
73
process.php
Normal file
@ -0,0 +1,73 @@
|
||||
<?php
|
||||
include('.config/include.php');
|
||||
// Add a new line to $data
|
||||
function add($that)
|
||||
{
|
||||
global $_CONFIG;
|
||||
global $data;
|
||||
if (count($data) >= $_CONFIG['SAVED_URL'])
|
||||
{
|
||||
// Delete the first element
|
||||
array_shift($data);
|
||||
}
|
||||
// Add that to the array
|
||||
array_push($data, $that);
|
||||
return $data;
|
||||
}
|
||||
|
||||
if(empty($_POST['url']))
|
||||
{
|
||||
header('location : message.php?m=1');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (is_readable($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_NAME']))
|
||||
$rawData = file_get_contents($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_NAME']);
|
||||
else
|
||||
{
|
||||
touch($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_DIR']);
|
||||
$rawData = "";
|
||||
}
|
||||
if (empty($rawData))
|
||||
$data = array();
|
||||
else
|
||||
$data = unserialize($rawData);
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Réduit moi !</title>
|
||||
<link rel="stylesheet" media="screen" type="text/css" href="misc/design.css" />
|
||||
<link rel="icon" href="favicon.ico" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>C'était trop long !</h1>
|
||||
<?php
|
||||
|
||||
if (isset($_POST['short']) && $_POST['short'] != "")
|
||||
$short = htmlspecialchars($_POST['short']);
|
||||
else
|
||||
$short = dechex(crc32($_POST['url']));
|
||||
if (isset($_POST['url']) && $_POST['url'] != "")
|
||||
{
|
||||
$url = htmlspecialchars($_POST['url']);
|
||||
$array = array("url"=>$url, "short"=>$short);
|
||||
// Add the association at the end of $data array
|
||||
$data = add($array);
|
||||
// Save it in the file
|
||||
file_put_contents($_CONFIG['DATA_DIR'].$_CONFIG['ASSOC_NAME'], serialize($data));
|
||||
// Echoes the result
|
||||
$new_url = $_CONFIG['BASE_URL'].'/?'.$short;
|
||||
?>
|
||||
<p>Votre raccourci :<br/>
|
||||
<b><a href="<?php echo $new_url ?>"><?php echo $new_url; ?></a></b></p><p>Réduction de : <?php echo $url; ?> <?php
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "Url manquant. <a href='index.php'>Retour à l'acceuil</a>.";
|
||||
}?>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user