Scripts

Sharepoint (project)

Je hebt het vast wel eens gehad dat je voor een project moest werken en dat je dan met meerdere mensen moest overleggen en bestanden delen. Wat deed je dan, je maakt een gezamelijk gmail of hotmail account aan en daar kan iedereen zijn bestanden achterlaten. Ik had dat eerst ook met mijn groep, maar ik vond het helemaal niks.. Daarom heb ik een script geschreven waarmee je berichten kunt plaatsen en bestanden kunt uploaden. Het is beveiligd met wachtwoorden, dus alleen mensen uit jouw groep kunnen berichten plaatsen en bestanden uploaden. De bestanden zijn goed te downloaden en natuurlijk ook te verwijderen. Berichten zijn ook te wijzigen en te verwijderen, maar dat alleen door degene die hem gepost heeft. In het voorbeeld kun je inloggen met: test1 & test1 of naam: test2 & wachtwoord: test2.. uploaden en deleten kan niet omdat anders heel mn server vol troep komt

sharepoint-project
-- files -- (map in de dir waar ook de index.php staat) chmod777

-- main.css --

(hoeft niet maar is wel mooier)

[code]body
	{
	
	font-size: 11px;
	color: #333333;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	background-color: #FFFFFF;	
	}



h2	
	{
	color: #FF5500;
	}


a:link 
	{
	color: #0066FF;
	text-decoration: none;

	}
	
a:visited 
	{
	color: #0066FF;
	text-decoration: none;

	}

a:active 
	{
	color: #0066FF;
	text-decoration: underline;

	}

a:hover 
	{
	color: #0066FF;
	text-decoration: underline;

	}
[/code]




-- berichten.txt -- chmod 777

hier hoeft niks in, dat komt al komen er berichten

-- index.php --

(alleen de namen van personen moeten aangepast worden en eventueel de toegestane extenties. zie hiervoor iets van 15 regels verder in het script)


[code]
<?
if(isset($_GET['download'])){
$file = 'files/'.$_GET['download'];
$filename = $_GET['download'];
header("Content-type: Application/octet-stream"); 
header("Content-Disposition: attachment; filename=$filename"); 
readfile($file); 
ob_end_flush();
}
else{			
			

ob_start();

//namen van personen
$naam = array('naam1','naam2');
//wachtwoorden die bij de personen horen
$wachtwoord = array('wachtwoord1','wachtwoord2');

//toegestane extenties (voor uploaden)
$toegestaan = array('doc','jpg','jpeg','gif','txt','html','htm');
//soort bestand bij de extenties
$extentienaam = array('word document','afbeelding','afbeelding','afbeelding','kladblok bestand','html site','html site');




?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Project Sharepoint</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<h2><center>Sharepoint</center></h2>
<?php
if(isset($_GET['files'])){
	echo '<center>>><a href="'.$_SERVER['PHP_SELF'].'">berichten</a><<</center><br><br>';
}
else{
	echo '<center>>><a href="'.$_SERVER['PHP_SELF'].'?files">fileshare</a><<</center><br><br>';
}
if(isset($_GET['uitloggen'])){
	setcookie("project", $_POST['naam'].';'.$_POST['wachtwoord'], time()-604800);
	if(isset($_GET['files'])){
		echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?files"</SCRIPT>'; 
	}
	else{
		echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'"</SCRIPT>';
	}
}

function inloggen(){
	?>
	Inloggen:
	<form method="post" action="
	<? 
	echo $_SERVER['PHP_SELF']; 
	if(isset($_GET['files'])){
		echo '?files';
	}
	?>
	">
	<input type="hidden" name="inloggen" value="yes">
	<fieldset>
	<table>
	
	<tr>
	<td width="150">naam: <td><input type="tekst" name="naam" border="0">
	<tr>
	<td>wachtwoord: <td><input type="password" name="wachtwoord" border="0">
	<tr>
	<td>onthou mij: <td><input type="checkbox" name="onthou" value="ja">
	</table>
	</fieldset>
	<br>
	<input type="submit" value="log in" >
	
	</form>
	<?php
}

function inlogfout(){
	
	echo '<font color="#FF0000">- inloggegevens onjuist -</font><br>';
	inloggen();
	
}

function plaats(){
		if(isset($_POST['edit'])){
		$data = '';
		$file = 'berichten.txt';
		$fopenr = fopen($file,'r');
		$berichten = fread ($fopenr, filesize($file));
		fclose($fopenr);
		$bericht = explode('|',$berichten);
		$berichtena = count($bericht);
		
		$berichtje = htmlentities($_POST['bericht']); 
		$berichtje = nl2br($berichtje); 
		$berichtje = stripslashes($berichtje);
		$berichtje = str_replace('|','&brvbar;',$berichtje);
		$berichtje = str_replace('^','&circ;',$berichtje);
		for($a='0';$a<$berichtena;$a++){
			if($a == $_POST['edit']){
				$tekst = explode('^',$bericht[$a]);
				$datum = date("d.m.y H:i");
				$data .= $tekst['0'].'^'.$datum.' (edit datum)^'.$berichtje;
			}
			else{
				$data .= $bericht[$a];
			}
			if($a<($berichtena-'1')){
				$data .= '|';
			}
		}
		
		$fopenw = fopen($file, "w+");
		fwrite($fopenw,$data);
		fclose($fopenw);
		
	}
	else{
		$naam = $_POST['naam'];
		$bericht = $_POST['bericht'];
		$bericht = htmlentities($bericht); 
		$bericht = nl2br($bericht); 
		$bericht = stripslashes($bericht);
		$bericht = str_replace('|','&brvbar;',$bericht);
		$bericht = str_replace('^','&circ;',$bericht);


		$file = 'berichten.txt';
		$datum = date("d.m.y H:i"); 
		$fopenr = fopen($file,'r');
		$berichten = fread ($fopenr, filesize($file));
		fclose($fopenr);
		$berichten .= '|'.$naam.'^'.$datum.'^'.$bericht;
		$fopenw = fopen($file, "w+");
		fwrite($fopenw,$berichten);
		fclose($fopenw);
	}
	
	
	echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'"</SCRIPT>';
	
}

function edit($nr,$ingelogt){
	
	$file = 'berichten.txt';
	$fopenr = fopen($file,'r');
	$berichten = fread ($fopenr, filesize($file));
	fclose($fopenr);
	$berichten = str_replace('<br />','',$berichten); 
	$bericht = explode('|',$berichten);
	$bericht = explode('^',$bericht[$nr]);
	if($ingelogt == 'nee'){$disabled = 'disabled';}
	elseif($ingelogt == 'ja'){$disabled = '';}
	else{$disabled = 'disabled';}
	echo '<center>edit bericht</center>';
	echo '<fieldset><form action="'.$_SERVER['PHP_SELF'].'?plaats" method="post"><center><textarea '.$disabled.' cols=70 rows=10 name="bericht">'.$bericht['2'].'</textarea></center>';
	echo '<input type="hidden" name="edit" value="'.$nr.'">';
	echo '<br><input type="submit" '.$disabled.' value="edit bericht"></form></fieldset>';
	
}

function berichten($ingelogt,$naam){
	
	//delete een bericht
	if(($ingelogt == 'ja') && (isset($_GET['delete']))){
		$nr = $_GET['delete'];
		$data = '';
		$file = 'berichten.txt';
		$fopenr = fopen($file,'r');
		$berichten = fread ($fopenr, filesize($file));
		fclose($fopenr);
		$bericht = explode('|',$berichten);
		$berichtena = count($bericht);
				
		for($a='0';$a<$berichtena;$a++){
			if($a != $nr){
				
				$data .= $bericht[$a];
				if($a<($berichtena-'1')){
					if(  ($a == $nr-'1') && ($nr == $berichtena-'1') ){}
					else{
					$data .= '|';
					}
				}
			}
		}
		
		$fopenw = fopen($file, "w+");
		fwrite($fopenw,$data);
		fclose($fopenw);
		echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'"</SCRIPT>'; 
	}
	//als ingelogt is:
	if($ingelogt == 'ja'){
		if(isset($_GET['plaats'])){
			plaats();
		}
		echo 'ingelogt als: <b>'.$naam.'</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?uitloggen=ja">uitloggen</a><br><br>';
	}
	 
	$file = 'berichten.txt';
	$fopenr = fopen($file,'r');
	$berichten = fread ($fopenr, filesize($file));
	fclose($fopenr);
	$bericht = explode('|',$berichten);
	$berichtena = count($bericht);
	
	if(isset($_GET['edit'])){
		edit($_GET['nr'],$ingelogt);
	}
	else{
		
		for($i='0';$i < $berichtena;$i++){
			$data = explode('^',$bericht[$i]);
			echo '<fieldset><b><strong>'.$data['0'].'</b></strong> schreef op <i>'.$data['1'].'</i>';
			if($naam == $data['0']){
				echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.$_SERVER['PHP_SELF'].'?edit=ja&nr='.$i.'">edit</a>|<a href="'.$_SERVER['PHP_SELF'].'?delete='.$i.'">delete</a>';
			}
			echo '<br><br>'.$data['2'].'</fieldset><br>';
		}
		if($ingelogt == 'nee'){$disabled = 'disabled';}
		elseif($ingelogt == 'ja'){$disabled = '';}
		else{$disabled = 'disabled';}
		echo '<fieldset><form action="'.$_SERVER['PHP_SELF'].'?plaats" method="post"><center><textarea '.$disabled.' cols=70 rows=10 name="bericht"></textarea></center>';
		echo '<input type="hidden" name="naam" value="'.$naam.'">';
		echo '<br><input type="submit" '.$disabled.' value="plaats bericht"></form></fieldset>';
	}
	
}



function files($ingelogt,$naam,$toegestaan,$extensienaam){

	if($ingelogt == 'ja'){
		echo 'ingelogt als: <b>'.$naam.'</b> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="'.$_SERVER['PHP_SELF'].'?uitloggen=ja&files">uitloggen</a><br><br>';
	}
	//$file = $_FILES['file']['name'] of ['size']
	//unlink(filename) //delete
	//if(is_uploaded_file($_FILES['file']['tmp_name'])){//checken of het via http post is gedaan
		//move_uploaded_file($_FILES['file']['tmp_name'],'files/'.$uploadname) //verplaatsen
	
	if((!isset($_GET['download'])) && (!isset($_GET['delete'])) && (!isset($_POST['upload']))){
		if(isset($_GET['fout'])){
			echo '<font color="#FF0000"> - uploaden mislukt - </font><br>';
		}
		if(isset($_GET['extentiefout'])){
			echo '<font color="#FF0000"> - dit filetype mag niet geupload worden - </font><br>';
		}
		$toegestaana = count($toegestaan);
		$handle = opendir('files'); 
		$nr = '0';
		while (false!==($file = readdir($handle))) { 
			if ($file != "." && $file != "..") { 
				$files[$nr] = $file;
				$nr++;
			} 
		}
		
		sort($files);
		$aantal = count($files);
		echo '<fieldset><table><tr><td width="150">bestands naam: <br><br><td width="150">bestands type: <br><br><td width="225">datum <br><br><td width="150">grootte:<br><br>';
		for($a = '0';$a < $aantal;$a++){
			$extentie = explode('.',$files[$a]);
			for($b='0';$b<$toegestaana;$b++){
				if($extentie['1'] == $toegestaan[$b]){
					$filetype = $extensienaam[$b];
					break; 
				}
			}
			$filesize = filesize('files/'.$files[$a]);
			$filesize = ($filesize/'1000');
			$filesize = round($filesize);
			echo '<tr><td>-<b> '.$extentie['0'].'</b>.'.$extentie['1'].'<br><td> '.$filetype.'<td> '.date("d F Y - H:i:s",filectime('files/'.$files[$a])).'<td>'.$filesize.'kb';
			if($ingelogt == 'ja'){
				echo '<td><a href="'.$_SERVER['PHP_SELF'].'?files&download='.$files[$a].'">download</a> | <a href="'.$_SERVER['PHP_SELF'].'?files&delete='.$files[$a].'">delete</a>';
			}
				
		}
		echo '</table></fieldset><br>';
		closedir($handle);
		if($ingelogt=='ja'){
			echo '<fieldset>upload file:<table><form method="post" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'?files"><input type="hidden" value="upload" name="upload"><tr><td>bestand:<td><input type="file" name="file"><br>';
			echo '<tr><td>nieuwe naam gebruiken:<td><input type="checkbox" value="ja" name="gebruiknaam">';
			echo '<br><tr><td>nieuwe naam (optioneel):<td><input type="text" name="nieuwenaam"></table><br><br><input type="submit" value="upload file"></fieldset>';
		}
		
	}
	else{
		
		if(isset($_POST['upload'])){
			upload($toegestaan);
		}

		elseif(isset($_GET['delete'])){
			unlink('files/'.$_GET['delete']);
			echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?files"</SCRIPT>';
		}
	}
	
}

function upload($allow){
	
	global $_FILES;
	if(isset($_FILES['file'])){
		$file = $_FILES['file']['name'];
		$size = $_FILES['file']['size'];
		if(isset($_POST['gebruiknaam'])){
			$filename = $_POST['nieuwenaam'];
		}
		else{
			$filename = explode('.',$_FILES['file']['name']);
			$filename = $filename['0'];
		}
		$extentie = explode('.',$file);
		$extentie = $extentie['1'];
		
		$allowa = count($allow);
		for($a='0';$a < $allowa;$a++){
			if($extentie == $allow[$a]){
				$extentiecheck = 'oke';
				break;
			}
			else{
				$extentiecheck = 'nietoke';
			}
		}
		
		if($extentiecheck == 'oke'){
			if(is_uploaded_file($_FILES['file']['tmp_name'])){
				move_uploaded_file($_FILES['file']['tmp_name'],'files/'.$filename.'.'.$extentie);
				echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?files"</SCRIPT>';
			}
			else{
				echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?files&fout"</SCRIPT>';
			}	
		}
		else{
			echo '<SCRIPT LANGUAGE="javascript" TYPE="text/javascript">window.location="'.$_SERVER['PHP_SELF'].'?files&extentiefout"</SCRIPT>';
		}
	}
}

//inloggen






$aantal = count($naam);

if(isset($_COOKIE['project'])){
	$cookie = explode(';',$_COOKIE['project']);
	for($a='0';$a<$aantal;$a++){
		if(($cookie['0'] == $naam[$a]) && ($cookie['1'] == $wachtwoord[$a])){
			if(isset($_GET['files'])){
				files('ja',$cookie['0'],$toegestaan,$extentienaam);
			}
			else{
				berichten('ja',$cookie['0']);
			}
			break;
		}
		elseif( (($cookie['0'] !== $naam[$a]) && ($cookie['1'] !== $wachtwoord[$a])) && ($a == ($aantal-'1'))) {
			inlogfout();
			if(isset($_GET['files'])){
				files('nee','',$toegestaan,$extentienaam);
			}
			else{
				berichten('nee','');
			}
		}
	}
}
else{
	if(isset($_POST['inloggen'])){
		if($_POST['inloggen'] == 'yes'){
			for($a='0';$a<$aantal;$a++){
				if($_POST['naam'] == $naam[$a]){
					if($_POST['wachtwoord'] == $wachtwoord[$a]){
						if(isset($_GET['files'])){
							files('ja',$_POST['naam'],$toegestaan,$extentienaam);
						}
						else{
							berichten('ja',$_POST['naam']);
						} 
						if(isset($_POST['onthou'])){
							setcookie("project", $_POST['naam'].';'.$_POST['wachtwoord'], time()+604800);
							ob_end_flush();
						}
						else{
							setcookie("project", $_POST['naam'].';'.$_POST['wachtwoord'], time()+600);
						}
						break;
					}
					else{
						inlogfout();
						if(isset($_GET['files'])){
							files('nee','',$toegestaan,$extentienaam);
						}
						else{
							berichten('nee','');
						}
						break;
					}
				}
				elseif(($_POST['naam'] !== $naam[$a]) && ($a == ($aantal-'1'))) {
					inlogfout();
					if(isset($_GET['files'])){
						files('nee','',$toegestaan,$extentienaam);
					}
					else{
						berichten('nee','');
					}
				}
			}
		}
		else{
			inloggen(); 
			if(isset($_GET['files'])){
				files('nee','',$toegestaan,$extentienaam);
			}
			else{
				berichten('nee','');
			}
		}
	}
	else{
		inloggen(); 
		if(isset($_GET['files'])){
			files('nee','',$toegestaan,$extentienaam);
		}
		else{
			berichten('nee','');
		}
	}
}


?>

</body>
</html>
<?
}//voor de download else
?>
[/code]

Reacties

0
Nog geen reacties.