<?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>Score</td> <td></td></tr>";
            //echo "<tr><td>Category</td> <td>Name</td> <td>Sensitive</td> <td>Score</td> <td></td></tr>"; //OPTIONAL: if you want to display the sensitive column 
        }else{
		if (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] != "✔️") or (($sensitive == 1) and ($data[4] == "✔️"))){ 
		$rowcount++;


		if ($oldcatname != $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><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>" ; // begin the table cell  
					echo '<a href="'; // begin a href
                    //echo  $data[3] . '"> '; // display the link
                    echo  $urllink . '"> '; // display the link
                    echo  $data[2]  . " </a></td><td>"; // display the link title and close the a href  and first cell, open the second cell
                    ///echo  $data[4] . " </td><td>"; // OPTIONAL: display the sensitive column
                    echo  $data[7] . " </td><td>"; // display the status and close the second cell, open the third cell
                    echo  $data[6] . " </td> \n"; // display the score 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]);

		if (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
				// 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" ){

		if ($oldcatname != $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 "</p>";
    fclose($handle);
}
//echo "<p>" . $resultcount . " Result(s) found.</p>";

}
}

    $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 banner.png"></a></h1>
        <p><u>Update Frequency:</u> every 3 hours</p> </br>
		

