From b77bdd3da1ca26324fc43f17629f1cd386d303e2 Mon Sep 17 00:00:00 2001 From: Bronco Date: Thu, 20 Jun 2013 23:23:42 +0200 Subject: [PATCH] =?UTF-8?q?Version=201.0=20=C3=A0=20la=20pelle=20de=20chan?= =?UTF-8?q?tier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 22 ++ .gitignore | 215 ++++++++++++++ auto_restrict.php | 183 ++++++++++++ design/actions.png | Bin 0 -> 2806 bytes design/favicon2.png | Bin 0 -> 1298 bytes design/foil.png | Bin 0 -> 154 bytes design/lined_paper.png | Bin 0 -> 15038 bytes design/logo2.png | Bin 0 -> 5881 bytes design/paper.png | Bin 0 -> 85055 bytes design/style.css | 52 ++++ index.php | 619 +++++++++++++++++++++++++++++++++++++++++ login_form.php | 41 +++ readme.md | 11 + 13 files changed, 1143 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 auto_restrict.php create mode 100644 design/actions.png create mode 100644 design/favicon2.png create mode 100644 design/foil.png create mode 100644 design/lined_paper.png create mode 100644 design/logo2.png create mode 100644 design/paper.png create mode 100644 design/style.css create mode 100644 index.php create mode 100644 login_form.php create mode 100644 readme.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..412eeda --- /dev/null +++ b/.gitattributes @@ -0,0 +1,22 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp +*.sln merge=union +*.csproj merge=union +*.vbproj merge=union +*.fsproj merge=union +*.dbproj merge=union + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d6bd9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,215 @@ +################# +## Eclipse +################# + +*.pydevproject +.project +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.classpath +.settings/ +.loadpath + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + + +################# +## Visual Studio +################# + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results + +[Dd]ebug/ +[Rr]elease/ +x64/ +build/ +[Bb]in/ +[Oo]bj/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.log +*.scc + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.Publish.xml +*.pubxml + +# NuGet Packages Directory +## TODO: If you have NuGet Package Restore enabled, uncomment the next line +#packages/ + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +sql/ +*.Cache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.[Pp]ublish.xml +*.pfx +*.publishsettings + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +App_Data/*.mdf +App_Data/*.ldf + +############# +## Windows detritus +############# + +# Windows image file caches +Thumbs.db +ehthumbs.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Mac crap +.DS_Store + + +############# +## Python +############# + +*.py[co] + +# Packages +*.egg +*.egg-info +dist/ +build/ +eggs/ +parts/ +var/ +sdist/ +develop-eggs/ +.installed.cfg + +# Installer logs +pip-log.txt + +# Unit test / coverage reports +.coverage +.tox + +#Translations +*.mo + +#Mr Developer +.mr.developer.cfg diff --git a/auto_restrict.php b/auto_restrict.php new file mode 100644 index 0000000..3dc2206 --- /dev/null +++ b/auto_restrict.php @@ -0,0 +1,183 @@ +'); + include('login_form.php');exit(); + } + else{ # On affiche un formulaire invitant à rentrer le mdp puis on exit le script + include('login_form.php');exit(); + } + } + // --------------------------------------------------------------------------------- + + + // ------------------------------------------------------------------ + + // ------------------------------------------------------------------ + // gestion de post pour demande de connexion + // si un utilisateur tente de se loguer, on gère ici + // ------------------------------------------------------------------ + if (isset($_POST['login'])&&isset($_POST['pass'])){ + log_user($_POST['login'],$_POST['pass']); + if (isset($_POST['cookie'])){setcookie($auto_restrict['cookie_name'],sha1($_SERVER['HTTP_USER_AGENT']),time()+31104000);}//un an + } + + // ------------------------------------------------------------------ + // si pas de demande de connexion on verifie les vars de session + // et la duree d'inactivité de la session + // si probleme,on include un form de login. + // ------------------------------------------------------------------ + if (!is_ok()){session_destroy();include('login_form.php');exit();} + // ------------------------------------------------------------------ + // demande de deco via la variable get 'deconnexion' + // ------------------------------------------------------------------ + if (isset($_GET['deconnexion'])){log_user($_POST['login'],$_POST['pass']);} + // ------------------------------------------------------------------ + + + + + + // ------------------------------------------------------------------ + // fonctions de cryptage + // récupérées sur http://www.info-3000.com/phpmysql/cryptagedecryptage.php + // ------------------------------------------------------------------ + function GenerationCle($Texte,$CleDEncryptage) + { + $CleDEncryptage = md5($CleDEncryptage); + $Compteur=0; + $VariableTemp = ""; + for ($Ctr=0;$Ctr \ No newline at end of file diff --git a/design/actions.png b/design/actions.png new file mode 100644 index 0000000000000000000000000000000000000000..ac00de90c0695c33b66394ab0da704efb79e2559 GIT binary patch literal 2806 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 DyIDn| literal 0 HcmV?d00001 diff --git a/design/lined_paper.png b/design/lined_paper.png new file mode 100644 index 0000000000000000000000000000000000000000..fe703c4edc2b1d0d2afc79b3812673eb0f231674 GIT binary patch literal 15038 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 literal 0 HcmV?d00001 diff --git a/design/logo2.png b/design/logo2.png new file mode 100644 index 0000000000000000000000000000000000000000..703c90d9365df91b5cfdf52b4261b6ae9adcbb54 GIT binary patch literal 5881 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 literal 0 HcmV?d00001 diff --git a/design/paper.png b/design/paper.png new file mode 100644 index 0000000000000000000000000000000000000000..5977961667679963fa3200be4a8f082e430667ce GIT binary patch literal 85055 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 Scu)%f0000Bookmarklet'; +if ($public){$bookmarklet='';} +if (!creer_dossier($GLOBALS['data_folder'], TRUE)) { die('Cant create '.$GLOBALS['data_folder'].' folder.'); } +if (!creer_dossier($GLOBALS['private_data_folder'], TRUE)) { die('Cant create '.$GLOBALS['private_data_folder'].' folder.'); } +if (!creer_dossier($GLOBALS['public_data_folder'], TRUE)) { die('Cant create '.$GLOBALS['public_data_folder'].' folder.'); } + +// +// BEGIN SCRIPT +// + +#TODO +/* +- remplacer les liens relatifs par les liens absolus (ne chercher que les liens relatifs, uri) +- gestion des pages DL (classement ?) +- gestion de la taille max des fichiers à télélcharger + + +*/ + +// init +// url not yet retrieved +$GLOBALS['done']['d'] = FALSE; +if (!$public){ + // Get URL to save. + if (!empty($_GET['q'])) { + + + $url = htmlspecialchars($_GET['q']); + if (strpos($url, '://') === false) { + $url = 'http://'.$url; + } + $GLOBALS['url'] = $url; + $url_p = url_parts(); + + // retrieve the file main HTML file + + $GLOBALS['main_page_data'] = get_external_file($GLOBALS['url'], 6); + + + if ($GLOBALS['main_page_data'] === FALSE) { + die('error retrieving external main page'); + } + + else { + // crée le nouveau dossier basé sur le TS. + $new_folder = date('Y-m-d-H-i-s'); + if (!creer_dossier($GLOBALS['default_data_folder'].'/'.$new_folder) === TRUE ) { + die('error creating data folder'); + } + else { + $GLOBALS['target_folder'] = $GLOBALS['default_data_folder'].'/'.$new_folder; + } + $liste_css = array(); + // parse le fichier principal à la recherche de données à télécharger + $files = list_retrievable_data($GLOBALS['url'], $GLOBALS['main_page_data']); + // les récupère et les enregistre. + //echo '
';print_r($files);die();
+			foreach ($files as $i => $file) {
+				if ($data = get_external_file($file['url_fichier'], 3) and ($data !== FALSE) ) {
+					// CSS files need to be parsed aswell
+					if ($file['type'] == 'css') {
+						$liste_css[] = $file;
+					}
+					else {
+						file_put_contents($GLOBALS['target_folder'].'/'.$file['nom_destination'], $data);
+					}
+				}
+			}
+			// remplace juste les liens  relatifs vers des liens absolus
+			absolutes_links($GLOBALS['main_page_data']);
+
+			// enregistre le fichier HTML principal
+			file_put_contents($GLOBALS['target_folder'].'/'.'index.html', $GLOBALS['main_page_data']);
+
+			// récupère le titre de la page
+			// cherche le charset spécifié dans le code HTML.
+			// récupère la balise méta tout entière, dans $meta
+			preg_match('##Usi', $GLOBALS['main_page_data'], $meta);
+
+			// si la balise a été trouvée, on tente d’isoler l’encodage.
+			if (!empty($meta[0])) {
+				// récupère juste l’encodage utilisé, dans $enc
+				preg_match('#charset="?(.*)"#si', $meta[0], $enc);
+				// regarde si le charset a été trouvé, sinon le fixe à UTF-8
+				$html_charset = (!empty($enc[1])) ? strtolower($enc[1]) : 'utf-8';
+			} else { $html_charset = 'utf-8'; }
+			// récupère le titre, dans le tableau $titles, rempli par preg_match()
+			preg_match('#(.*)#Usi', $GLOBALS['main_page_data'], $titles);
+			if (!empty($titles[1])) {
+				$html_title = trim($titles[1]);
+				// ré-encode le titre en UTF-8 en fonction de son encodage.
+				$title = ($html_charset == 'iso-8859-1') ? utf8_encode($html_title) : $html_title;
+			// si pas de titre : on utilise l’URL.
+			} else {
+				$title = $url;
+			}
+
+
+			// récupère, parse, modifie & enregistre les fichier CSS (et les fichiés liés)
+			$n = 0;
+			$count = count($liste_css);
+			while ( $n < $count ) {
+				$i = $n;
+				$file = $liste_css[$i];
+				if ($data = get_external_file($file['url_fichier'], 3) and ($data !== FALSE) ) {
+					if (preg_match('#(css|php|txt|html|xml|js)#', $file['url_fichier']) ) {
+
+						$matches_url = array();
+						preg_match_all('#url\s*\(("|\')?([^\'")]*)(\'|")?\)#i', $data, $matches_url, PREG_SET_ORDER);
+						$matches_url2 = array();
+						preg_match_all('#@import\s*(url\()?["\']?([^\'"\(\);]*)["\']?\)?([^;]*);#i', $data, $matches_url2, PREG_SET_ORDER);
+
+						$matches_url = array_merge($matches_url2, $matches_url);
+				
+						// pour chaque URL/URI
+						foreach ($matches_url as $j => $valuej) {
+
+							if (preg_match('#^data:#', $matches_url[$j][2])) break; // if BASE64 data, dont download.
+
+							// get the filenam (basename)
+							$nom_fichier = (preg_match('#^(ht|f)tps?://#', $matches_url[$j][2])) ? pathinfo(parse_url($matches_url[$j][2], PHP_URL_PATH), PATHINFO_BASENAME) : pathinfo($matches_url[$j][2], PATHINFO_BASENAME);
+
+							// get the URL. For URIs, uses the GLOBALS[url] tu make the URL
+							// the files in CSS are relative to the CSS !
+							if (preg_match('#^https?://#', $matches_url[$j][2])) {
+								$url_fichier = $matches_url[$j][2];
+							}
+							elseif (preg_match('#^/#', $matches_url[$j][2])) {
+								$url_fichier = $url_p['s'].'://'.$url_p['h'].$matches_url[$j][2];
+							}
+							else {
+								$url_fichier = substr($file['url_fichier'], 0, -strlen($file['nom_fich_origine'])).$matches_url[$j][2];
+							}
+							// new rand name, for local storage.
+							$nouveau_nom = rand_new_name($nom_fichier);
+							$add = TRUE;
+
+							// avoids downloading the same file twice. (yes, we re-use the same $retrievable ($files), why not ?)
+							foreach ($files as $key => $item) {
+								if ($item['url_fichier'] == $url_fichier) {
+									$nouveau_nom = $item['nom_destination'];
+									$add = FALSE;
+									break;
+								}
+							}
+
+							// if we do download, add it to the array.
+							if ($add === TRUE) {
+								$files_n = array(
+									'url_origine' => $matches_url[$j][2],
+									'url_fichier' => $url_fichier,
+									'nom_fich_origine' => $nom_fichier,
+									'nom_destination' => $nouveau_nom
+									);
+								$files[] = $files_n;
+								$liste_css[] = $files_n;
+							}
+
+							// replace url in CSS $data
+							$data = str_replace($matches_url[$j][2], $nouveau_nom, $data);
+							// echo $nouveau_nom."
\n"; + + if (!preg_match('#(css|php|txt|html)#', $file['url_fichier']) ) { + if (FALSE !== ($f = get_external_file($url_fichier, 3)) ) { + file_put_contents($GLOBALS['target_folder'].'/'.$nouveau_nom, $f); + } + } + } + } + + // don't forget to save data + file_put_contents($GLOBALS['target_folder'].'/'.$file['nom_destination'], $data); + } + $n++; + $count = count($liste_css); + } + + + // enregistre un fichier d’informations concernant la page (date, url, titre) + $info = ''; + $info .= 'URL="'.$GLOBALS['url'].'"'."\n"; + $info .= 'TITLE="'.$title.'"'."\n"; + $info .= 'DATE="'.time().'"'."\n"; + + file_put_contents($GLOBALS['target_folder'].'/'.'index.ini', $info); + + // + $GLOBALS['done']['d'] = 'ajout'; + $GLOBALS['done']['lien'] = $GLOBALS['target_folder'].'/'; + } + + } + + + // in case of delete an entry + if (isset($_GET['suppr']) and $torem = $_GET['suppr'] and $torem != '') { + $torem = htmlspecialchars($_GET['suppr']); + /* + $liste = scandir($GLOBALS['data_folder']); // listage des dossiers de data. + $nb_fichier = count($liste); + for ($i = 0 ; $i < $nb_fichier ; $i++) { + if ($liste[$i] == $torem and !($liste[$i] == '..' or $liste[$i] == '.')) {*/ + + // the folder exists and can be removed: + + + // included files first (noway doing it like "rmdir -R" :/) + + if (is_dir($_GET['suppr'])){ + $sousliste = scandir($_GET['suppr']); // listage des dossiers de data. + $nb_sousfichier = count($sousliste); + for ($j = 0 ; $j < $nb_sousfichier ; $j++) { + if (!($sousliste[$j] == '..' or $sousliste[$j] == '.')) { + unlink($_GET['suppr'].'/'.$sousliste[$j]); + } + } + // then the folder itself. + if (TRUE === rmdir($_GET['suppr'])) { + $GLOBALS['done']['d'] = 'remove'; + + } + } + + header("location: index.php"); + } + + // to private + if (isset($_GET['toprivate']) and $torem = $_GET['toprivate'] and $torem != '') { + $torem = htmlspecialchars($_GET['toprivate']); + if (is_dir($GLOBALS['public_data_folder'].'/'.$_GET['toprivate'])){ + rename ($GLOBALS['public_data_folder'].'/'.$_GET['toprivate'],$GLOBALS['private_data_folder'].'/'.$_GET['toprivate']); + header("location: index.php"); + } + } + // to public + if (isset($_GET['topublic']) and $torem = $_GET['topublic'] and $torem != '') { + $torem = htmlspecialchars($_GET['topublic']); + if (is_dir($GLOBALS['private_data_folder'].'/'.$_GET['topublic'])){ + rename ($GLOBALS['private_data_folder'].'/'.$_GET['topublic'],$GLOBALS['public_data_folder'].'/'.$_GET['topublic']); + header("location: index.php"); + } + } +} // end of private admin acces + +function url_parts() { + $url_p['s'] = parse_url($GLOBALS['url'], PHP_URL_SCHEME); $url_p['s'] = (is_null($url_p['s'])) ? '' : $url_p['s']; + $url_p['h'] = parse_url($GLOBALS['url'], PHP_URL_HOST); $url_p['h'] = (is_null($url_p['h'])) ? '' : $url_p['h']; + $url_p['p'] = parse_url($GLOBALS['url'], PHP_URL_PORT); $url_p['p'] = (is_null($url_p['p'])) ? '' : ':'.$url_p['p']; + $url_p['pat'] = parse_url($GLOBALS['url'], PHP_URL_PATH); $url_p['pat'] = (is_null($url_p['pat'])) ? '' : $url_p['pat']; + $url_p['file'] = pathinfo($url_p['pat'], PATHINFO_BASENAME); + return $url_p; +} + +// +// Gets external file by URL. +// Make a stream context (better). +// + +function get_external_file($url, $timeout) { + $context = stream_context_create(array('http'=>array('timeout' => $timeout))); // Timeout : time until we stop waiting for the response. + $data = @file_get_contents($url, false, $context, -1, 4000000); // We download at most 4 Mb from source. + if (isset($data) and isset($http_response_header) and isset($http_response_header[0]) and (strpos($http_response_header[0], '200 OK') !== FALSE) ) { + return $data; + } + else { + return FALSE; + } +} + +// +// CREATE FOLDER +// + +function creer_dossier($dossier, $indexfile = FALSE) { + if ( !is_dir($dossier) ) { + if (mkdir($dossier, 0777, TRUE) === TRUE) { + chmod($dossier, 0777); + if ($indexfile == TRUE) touch($dossier.'/index.html'); // make a index.html file : avoid the possibility of listing folder's content + return TRUE; + } else { + return FALSE; + } + } + return TRUE; // if folder already exists +} + + +// +// PARSE TAGS AND LISTE DOWNLOADABLE CONTENT IN ARRAY +// Also modify html source code to replace absolutes URLs with local URIs. +// + +function list_retrievable_data($url, &$data) { + $url_p = url_parts(); + + $retrievable = array(); + + // cherche les balises 'link' qui contiennent un rel="(icon|favicon|stylesheet)" et un href="" + // (on ne cherche pas uniquement le "href" sinon on se retrouve avec les flux RSS aussi) + $matches = array(); + preg_match_all('#<\s*link[^>]+rel=["\'][^"\']*(icon|favicon|stylesheet)[^"\']*["\'][^>]*>#Si', $data, $matches, PREG_SET_ORDER); + // dans les link avec une icone, stylesheet, etc récupère l’url. + foreach($matches as $i => $key) { + $type = (strpos($key[1], 'stylesheet') !== FALSE) ? 'css' : 'other'; + if ( (preg_match_all('#(href|src)=["\']([^"\']*)["\']#i', $matches[$i][0], $matches_attr, PREG_SET_ORDER) === 1) ) { + $retrievable = add_table_and_replace($data, $retrievable, $matches[$i][0], $matches_attr[0][2], $url_p, $type); + } + } + + // recherche les images, scripts, audio & videos HTML5. + // dans les balises, récupère l’url/uri contenue dans les src="". + // le fichier sera téléchargé. + // Le nom du fichier sera modifié pour être unique, et sera aussi modifié dans le code source. + $matches = array(); + preg_match_all('#<\s*(source|audio|img|script|video)[^>]+src="([^"]*)"[^>]*>#Si', $data, $matches, PREG_SET_ORDER); + + foreach($matches as $i => $key) { + if (preg_match('#^data:#', $matches[$i][2])) break; + $retrievable = add_table_and_replace($data, $retrievable, $matches[$i][0], $matches[$i][2], $url_p, 'other'); + } + + // Dans les balises + +
+
+ + Identifiez-vous';}else{echo '

Creez votre passe

';} ?> +
+ + +
+
+ + + +
+ +
+ +
+
\ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..d2b0ec4 --- /dev/null +++ b/readme.md @@ -0,0 +1,11 @@ +Ceci est un fork de l'appli Respawn de Timo le Hollandais Volant. +J'ai utilisé le moteur de cette appli et y ai ajouté quelques aspect : +-le verrouillage par mot de passe, +-deux espaces séparés : un public et un privé (dont on peut (doit!) renommer les dossiers dans la config) +-l'ajout (si possible) de la favicon +-l'ajout d'icones et d'un design un peu amélioré, même si beaucoup reste à faire (mais là j'ai les yeux qui piquent) +-l'ajout d'un logo propre à cette appli + +Merci à Timo pour cette merveille de simplicité et d'efficacité qui concourt à conserver et diffuser l'information ! + +Bronco - bronco@warriordudimanche.net \ No newline at end of file