darknet-lantern/www/header.php

197 lines
6.9 KiB
PHP

<?php
function DisplayCSVNEW($csvfile, $query, $sensitive) {
$resultcount=0;
$row = 1;
$rowcount=0;
echo "<center><table>\n\n"; //begin html table formatting
if (($handle = fopen($csvfile, "r")) !== FALSE) {
$oldcatname="";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
//PREVENT ALL MALICIOUS PHP PAYLOADS FROM BEING EXECUTED FROM CSV FILES!
$data[0] = htmlspecialchars($data[0]);
$data[1] = htmlspecialchars($data[1]);
$data[2] = htmlspecialchars($data[2]);
$data[3] = htmlspecialchars($data[3]);
$data[4] = htmlspecialchars($data[4]);
$data[5] = htmlspecialchars($data[5]);
$data[6] = htmlspecialchars($data[6]);
$data[7] = htmlspecialchars($data[7]);
$data[0]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[0]);
$data[1]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[1]);
$data[2]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[2]);
$data[3]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[3]);
$data[4]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[4]);
$data[5]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[5]);
$data[6]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[6]);
$data[7]=preg_replace("/[^a-zA-Z0-9:\/.\ -✔️❌]/", "", $data[7]);
$row++;
$num = count($data);
//echo "<p>" . $data[1] . "</p>";
//echo "<p> $num fields in line $row: <br /></p>\n";
//echo $row;
if ( $row == "2") {
echo "<tr><td>Category</td> <td>Name</td> <td>Description</td> <td>Score</td> <td></td></tr>";
}else{
if (str_contains(strtolower($data[5]), strtolower($query)) or str_contains(strtolower($data[3]), strtolower($query)) or str_contains(strtolower($data[2]), strtolower($query)) or str_contains(strtolower($data[1]), strtolower($query))) {
$resultcount++;
for ($c=0; $c < $num; $c++) { // iterate over each row
echo "<tr>"; // begin html table row for that Category
// if the row is the first one (name url status score) only display (Name Status Score):
// display the contents of a csv row
if ( $c == "1" ){
//add http if its not already done in the URL
if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) {
$urllink = "http://" . $data[3];
}else{
$urllink = $data[3];
}
//if ((($sensitive == 1) and ($data[4] == "✔️")) or (($sensitive == 0) and ($data[4] != "✔️")) ){
// ONLY display links if (sensitive equals to 1 and sensitiveCOLUMN equals to V) OR (sensitive equals to 0 and sensitiveCOLUMN is NOT equal to V)
if (($data[4] != "YES") or (($sensitive == 1) and ($data[4] == "YES"))){
$rowcount++;
if (strtolower($oldcatname) != strtolower($data[1])){
//echo "<td><tr></tr><tr></tr><tr></tr></td>"; // skip a row if new category
//echo "<td><tr></tr><tr></tr><tr></tr></td>"; // skip a row if new category
echo '<td class="category"><p><h4>' . $data[1] . ' </h4></p></td>'; // display the category as its the first row with this new category
$oldcatname=$data[1];
}else{
echo "<td><p>" . ' </p></td>'; // category is already displayed so skip it (empty cell in category column)
}
echo '<td class="linktitle"><p class="linktitle">' ; // begin the table cell of link title
if($data[4] == "YES"){
echo '<a class="sensitivelink" href="'; // begin a href
}else{
echo '<a href="'; // begin a href
}
//echo $data[3] . '"> '; // display the link
echo $urllink . '"> '; // display the link
echo $data[2] . ' </a></p></td><td class="description">'; // display the link title and close the a href and first cell, open the second cell
echo $data[5] . " </td><td>"; // OPTIONAL: display the description column
echo $data[7] . " </td><td>"; // display the score and close the second cell, open the third cell
if($data[6] == "YES"){
echo "✔️" ;
}else{
echo "" ;
}
echo " </td> \n"; // display the status and close the third cell
}
//if ($c == 2){
//}
}
}
}
}
echo "</tr>"; // end html table row
}
echo "\n</table></center>";
fclose($handle);
}
echo "<p>" . $rowcount . " Result(s) found.</p>";
}
function DisplayCategories($instancename, $path) {
$resultcount=0;
$row = 1;
//echo $instancename;
//$csvfilenames = "verified.csv unverified.csv";
$csvfilenames = "verified.csv";
$csvfilenames = explode(' ', $csvfilenames);
foreach ($csvfilenames as $csvfilename){
//echo $csvfilename;
$csvfile = $path . $csvfilename;
//echo $csvfile;
//echo "test";
echo "<center><table>\n\n"; //begin html table formatting
if (($handle = fopen($csvfile, "r")) !== FALSE) {
$oldcatname="";
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
if ( $row == "2") {
echo "<p> | ";
}else{
//PREVENT ALL MALICIOUS PHP PAYLOADS FROM BEING EXECUTED FROM CSV FILES!
$data[0] = htmlspecialchars($data[0]);
$data[1] = htmlspecialchars($data[1]);
$data[2] = htmlspecialchars($data[2]);
$data[3] = htmlspecialchars($data[3]);
$data[4] = htmlspecialchars($data[4]);
$data[5] = htmlspecialchars($data[5]);
$data[6] = htmlspecialchars($data[6]);
$data[7] = htmlspecialchars($data[7]);
$data[0]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[0]);
$data[1]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[1]);
$data[2]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[2]);
$data[3]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[3]);
$data[4]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[4]);
$data[5]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[5]);
$data[6]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[6]);
$data[7]=preg_replace("/[^a-zA-Z0-9:\/.\ -]/", "", $data[7]);
$resultcount++;
for ($c=0; $c < $num; $c++) { // iterate over each row
if ( $c == "1" ){
if (strtolower($oldcatname) != strtolower($data[1])){
echo '<a href="index.php?query=' . $data[1] . '">' . $data[1] . '</a> | '; // display the category as its the first row with this new category
$oldcatname=$data[1];
}
}
}
}
}
echo '<a class="sensitivelink" href="index.php?query=.&sensitive=1">Display All Links</a> |</p>';
fclose($handle);
}
}
}
$min_length = 1;
$max_length = 32;
$instance= $_SERVER['SERVER_NAME'];
$participantpath="participants/" . $instance . '/';
$verifiedcsvpath="participants/" . $instance . '/verified.csv';
$unverifiedcsvpath="participants/" . $instance . '/unverified.csv';
DisplayCategories($instance, $participantpath);
?>
</br>
<h1><a href="http://git.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/nihilist/darknet-lantern"><img src="img/lantern project large.png" class="projectbanner"></a></h1>
<p><u>Update Frequency:</u> every 3 hours</p> </br>