Scripts

Smiley Parser

Dit is een smiley parser. De smileys worden opgeslagen in de database. Dit is de query: CREATE TABLE `smilies` ( `id` int(6) NOT NULL auto_increment, `code` varchar(7) NOT NULL default '', `img` varchar(30) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM; Je moet nog wel zelf de smiley's in de database invoegen. Je gebruikt het door: smilie($text); te doen. De admin is onbeveiligd, dus dat moet je zelf nog doen. http://www.digitaly.nl/DigiScripts/PHP/smiley Admin: http://www.digitaly.nl/DigiScripts/PHP/smiley/admin.php

smiley-parser
Index.php:
------------------------
<? 
// Vergeet geen database connectie te maken!! 
    function smilie($text) 
    { 
        $db_result = mysql_query("SELECT code, img FROM smilies"); 
        $rows = mysql_num_rows($db_result); 
        for ($i = 0; $list = mysql_fetch_array($db_result); $i++) 
        { 
            $sm_text[$i] = $list['code']; 
            $image[$i] = "<img src='".$list[img]."' border='0'>"; 
        } 
        if ($rows > 0) 
        {                      
            $text = str_replace($sm_text, $image, $text); 
        } 
        return $text; 
    } 
$text = "hallo, hoe gaat het! Met mij goed :)"; 
echo smilie($text); 
?>

admin.php:
-----------------------------
<script type="text/javascript"> 
<!-- Submit knop Disabelen --> 
	var doneit; 
	function disableForm(theform) 
	{ 
		if (document.all || document.getElementById) 
		{ 
			if(doneit != 1) 
			{ 
				for (i = 0; i < theform.length; i++) 
				{ 
					var tempobj = theform.elements[i]; 
					if (tempobj.type.toLowerCase() == 'submit' || tempobj.type.toLowerCase() == 'reset') 
					{ 
						tempobj.style.color = 'gray'; 
					} 
				} 
				doneit = 1; 
				// submit form 
				return true; 
			} 
			else 
			{ 
				alert('1x klikken is al goed hoor! :D'); 
				return false; 
			} 
		} 
	} 
</script> 
<? 
if(!isset($_GET['actie'])) 
	{ 
	if(!isset($_POST['submit'])) 
	{ 
?> 
Hier kunt u smileys toevoegen!<br /> 
Deze smiley's zijn reeds toegevoegd:<br /> 
<table> 
<form method="post" onsubmit="return disableForm(this)"> 
<tr> 
<td>Smiley:</td> 
<td>Code:</td> 
<td>Bewerk:</td> 
<td>Verwijder:</td> 
</tr> 
<? 
		$query = mysql_query("SELECT * FROM smilies"); 
		while($obj = mysql_fetch_object($query)) 
		{ 
			echo '<tr>'; 
			echo '<td><img src="'.$obj->img.'" alt="Smiley '.$obj->code.'"></td>'; 
			echo '<td>'.$obj->code.'</td>'; 
			echo '<td><a href="admin.php?actie=bewerk&id='.$obj->id.'">Ja</a></td>'; 
			echo '<td><input type="checkbox" name="checkbox[]" value="'.$obj->id.'" /></td>'; 
			echo '</tr>'; 
		} 
?> 
<tr> 
<td></td> 
<td></td> 
<td></td> 
<td align="center"><input type="submit" name="submit" value="verwijder" /> 
</form> 
</table> 
<br /><br /> 
<form method="get" onsubmit="return disableForm(this)"> 
Smiley's toevoegen:<br /> 
Voeg <input type="text" value="aantal" name="aantal" /> smileys toe.<br /> 
<input type="submit" name="actie" value="toevoegen" /> 
</form> 
<? 
	} 
	else 
	{ 
		$id = $_POST['checkbox']; 
		$id = count($id); 
		for($i = 1; $i <= $id; $i++) 
		{ 
			$nr = $i - 1; 
			$pid = $_POST['checkbox'][$nr]; 
			mysql_query("DELETE FROM smilies WHERE id = '$pid'"); 
		} 
		header("Location: admin.php"); 
	}
} 
elseif($_GET['actie'] == 'toevoegen') 
{ 
	if(!isset($_POST['submit'])) 
	{ 
		if(!isset($_GET['aantal'])) 
		{ 
			$aantal = 1; 
		} 
		elseif(empty($_GET['aantal'])) 
		{ 
			$aantal = 1; 
		} 
			elseif(!is_numeric($_GET['aantal'])) 
		{ 
			$aantal = 1; 
		} 
		elseif($_GET['aantal'] > 15 || $_GET['aantal'] < 1) 
		{ 
			$aantal = 1; 
		} 
		else 
		{ 
			$aantal = $_GET['aantal']; 
		} 
		echo '<table>'; 
		echo '<form method="post" action="admin.php?actie=toevoegen" onsubmit="return disableForm(this)">'; 
		echo '<tr><td>Link:</td><td>Code:</td></tr>'; 
		echo '<input type="hidden" name="aantal" value="'.$aantal.'" />'; 
		for($i = 1; $i <= $aantal; $i++) 
		{ 
			echo '<tr><td><input type="text" value="smileys/" name="smilie[]" /></td>';
			echo '<td><input type="text" name="code[]" /></td></tr>'; 
		} 
		echo '<tr><td colspan="2" align="center"><input type="submit" value="Voeg Toe" name="submit" /></td></tr>'; 
		echo '</form>'; 
		echo '</table>'; 
	} 
	else 
	{ 
		$aantal = $_POST['aantal']; 
		$error = 0; 
		for($i = 1; $i <= $aantal; $i++) 
		{ 
			$nr = $i - 1; 
			if(!isset($_POST['code'][$nr]) OR empty($_POST['code'][$nr])) 
			{ 
				$error = 1; 
			} 
			elseif(!isset($_POST['smilie'][$nr]) OR empty($_POST['smilie'][$nr]) OR $_POST['smilie'][$nr] == "smileys/") 
			{ 
				$error = 1; 
			} 
			if($error !== 0) 
			{ 
				break; 
			} 
		} 
		if($error !== 0) 
		{ 
			echo 'U heeft iets niet ingevuld!<br />Ga terug en verbeter het.'; 
		} 
		else 
		{ 
			for($i = 1; $i <= $aantal; $i++) 
			{ 
				$nr = $i - 1; 
				$code = $_POST['code'][$nr]; 
				$smilie = $_POST['smilie'][$nr]; 
				mysql_query("INSERT INTO smilies (code,img) VALUES ('$code','$smilie')"); 
				header("Location: admin.php"); 
			} 
		} 
	} 
} 
elseif($_GET['actie'] == 'bewerk') 
{ 
	if(!isset($_GET['id']) OR empty($_GET['id']) OR !is_numeric($_GET['id'])) 
	{ 
		echo 'Er ging iets fout met het smiley id, probeer het nog eens.'; 
	} 
	else 
	{ 
		if(!isset($_POST['bewerk'])) 
		{ 
			$query = mysql_query("SELECT * FROM smilies WHERE id = '".$_GET['id']."'"); 
			$obj = mysql_fetch_object($query); 
			$smile = $obj->img; 
			$code = $obj->code; 
			echo '<table><tr><td>Smiley:</td><td>Code:</td></tr>'; 
			echo '<form method="post" onsubmit="return disableForm(this)">';
			echo '<tr><td><input type="text" name="smile" value="'.$smile.'" /></td>'; 
			echo '<td><input type="text" name="code" value="'.$code.'" /></td></tr>'; 
			echo '<tr><td colspan="2" align="center"><input type="submit" value="bewerk" name="bewerk" /></td>';
			echo '</tr></form></table>'; 
		} 
		else 
		{ 
			if(empty($_POST['code']) OR empty($_POST['smile'])) 
			{ 
				echo 'Iets is niet goed ingevuld!'; 
			} 
			else 
			{ 
				mysql_query("UPDATE smilies SET code = '".$_POST['code']."', img = '".$_POST['smile']."' WHERE id = '".$_GET['id']."'"); 
				header("Location: admin.php"); 
			} 
		} 
	} 
} 
?>

Reacties

0
Nog geen reacties.