Scripts

F.A.Q. Frequent Asked Questions met admin

Mijn eerste script die ik hier post op PHPhulp.nl. Ik hoop dat jullie mijn post waarderen.. Ik trek me niks aan van alle negatieve reacties. Opbouwende kritiek en tips zijn zeer welkom, post ze hier ook! De gebruiker kan alle vragen en antwoorden bekijken.. De administrator heeft verschillende functies, en is beveiligd d.m.v. authenticatie. - F.A.Q. toevoegen - F.A.Q. bewerken - F.A.Q. verwijderen - Hele tabel legen Voorbeelden Gebruikersnaam: admin Wachtwoord: admin Gebruikerspagina Admin home Admin toevoegen Admin alle FAQ's verwijderen (tabel legen) Afbeeldingen die gebruikt worden: Bewerken Verwijderen Edit:

faq-frequent-asked-questions-met-admin
## SQL-code
[code] CREATE TABLE `vraag_antwoord` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`vraag` VARCHAR( 200 ) NOT NULL ,
`antwoord` VARCHAR( 300 ) NOT NULL
) ENGINE = MYISAM [/code]

## Naam mag je zelf kiezen, verander dit wel bij $page!
[code]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
<head>
    <title>Administrator F.A.Q. &copy; Nick Vu Van</title>
    <style type="text/css">
    input {
    padding: 2px;
    border: 1px solid #AAA;
    color: #444;
    }
    a {text-decoration:none;}
    </style>
</head>
<body>
<?php
# MySQL server
$server = "localhost";
# Gebruikersnaam voor MySQL server
$gebruiker = "root";
# Wachtwoord voor MySQL server
$wachtwoord = "usbw";
# Database
$database = "faq";

# Naam van de F.A.Q. pagina
$page = "index.php";

# Verbinding maken met de database
$db = mysql_connect($server, $gebruiker, $wachtwoord) or die ('Kon geen verbinding maken met MySQL.');
mysql_select_db($database) or die ("Kon de database niet vinden.");

# Query om gegevens uit de tabel te halen
$query = mysql_query("SELECT id,vraag,antwoord FROM vraag_antwoord");

// Aantal entries in tabel tellen
$count = mysql_query("SELECT COUNT(id) FROM vraag_antwoord");
$totaal = mysql_result($count, 0);

# Functie maken om in te loggen, verander hier de gebruikersnaam en het wachtwoord!
function inloggen(){
    # Gebruikersnaam administrator
    $gebruikersnaam = "admin";
    # Wachtwoord
    $wachtwoord = "admin";
    
    if($_SERVER['PHP_AUTH_USER'] != $gebruikersnaam || $_SERVER['PHP_AUTH_PW'] != $wachtwoord){
        header("WWW-Authenticate: Basic realm=\"Authenticatie vereist!\"");
        header("HTTP/1.0 401 Unauthorized");
        echo "Je bent niet ingelogd! <br /><br /> Probeer het <a href=\"javascript:location.reload();\">opnieuw</a>.";
        exit;
    } 
}

if(isset($_GET["beheer"])){
    inloggen();
        
    echo "<h1><a href=\"". $page ."?beheer\" style=\"color:black;\">Administrator F.A.Q.</a></h1>";
    
    if(isset($_GET["actie"])){
        if($_GET["actie"] == "toevoegen"){
            # Een vraag en antwoord toevoegen
            # Als er op submit is gedrukt: gegevens invoeren, anders het formulier tonen
            if($_SERVER['REQUEST_METHOD'] == "POST") {
                $tekst = "";
                    $_POST['vraag'] = trim(strip_tags($_POST['vraag']));
                    if(empty($_POST['vraag'])){
                    $tekst .= "Geen vraag ingevuld.<br />";
                    }
                    $_POST['antwoord'] = trim(strip_tags($_POST['antwoord']));
                    if(empty($_POST['antwoord'])){
                        $tekst .= "Geen antwoord ingevuld.<br />";
                    }
                    
                    if(empty($tekst)){
                        # Als er geen foutmelding is, vraag en antwoord invoeren in de MySQL database
                        # Eerste letter van de vraag / het antwoord met een hoofdletter
                        $vraag = ucfirst($_POST["vraag"]);
                        $antwoord = ucfirst($_POST["antwoord"]);
                        $insert = "INSERT vraag_antwoord (id, vraag, antwoord) VALUES ('', '" . mysql_real_escape_string($vraag) . "', '" . mysql_real_escape_string($antwoord) . "')";
                        if(mysql_query($insert)){
                            header("Location: ". $page ."?beheer");
                        } else {
                            echo "Het toevoegen is mislukt. <br /><br /> Probeer het later opnieuw.";
                            echo "<br /><br />Of klik <a href=\"\" onClick=\"history.go(-1)\">hier</a> om je post te controleren.";
                            exit;
                        }
                    } else {
                        echo $tekst;
                        echo "<br /><a href=\"\" onClick=\"history.go(-1)\">Ga terug</a>";
                    }
            } else {
                ?>
                <form action="<?php echo $_SERVER["REQUEST_URI"]; ?>" method="post">
                <table>
                    <tr>
                        <td width=\"35%\"><b>Vraag:</b></td> <td><input type="text" name="vraag" /> </td>
                    </tr><tr>
                        <td width=\"35%\"><b>Antwoord:</b></td> <td><input type="text" name="antwoord" /> </td>
                    </tr><tr>
                        <td></td> <td><input type="submit" value="Toevoegen" /> <input type="reset" value="Leegmaken" /></td>
                    </tr>
                </table>
                </form>
                <?php
            }
            exit;
        } else if($_GET["actie"] == "clear"){
				if($_SERVER['REQUEST_METHOD'] == "POST") {
					mysql_query("TRUNCATE TABLE vraag_antwoord");
					echo "De tabel is geleegd. <br /><br /> Je wordt teruggestuurd naar de adminpagina.";
					header("Location: " . $page . "?beheer"); 
				} else {
					?>
					Weet je zeker dat je de alle vragen en antwoorden wilt wissen? <br /><br /> Deze actie kan niet ongedaan worden gemaakt!
					<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" name="clear" method="post"> <br />
					<input type="submit" value=" Legen "> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $page . "?beheer"; ?>','_self')">
					</form>
					<?php
				}
		} else if($_GET["actie"] == "bewerken" && isset($_GET["id"]) && is_numeric($_GET["id"])){
			if(mysql_num_rows(mysql_query("SELECT * FROM vraag_antwoord WHERE id = '".$_GET['id']."'")) > 0){
				if($_SERVER['REQUEST_METHOD'] == "POST") {
					$query = "UPDATE vraag_antwoord SET
					vraag = '" . mysql_real_escape_string($_POST['vraag']) . "',
					antwoord = '" . mysql_real_escape_string($_POST['antwoord']) . "'
					WHERE id='" . $_GET["id"] . "'";
               
					if(mysql_query($query)){
						header("Location: " . $page . "?beheer"); 
						} else {
							echo "Het toevoegen is mislukt. <br /><br /> Probeer het later opnieuw.";
							echo "<br /><br />Of klik <a href=\"\" onClick=\"history.go(-1)\">hier</a> om je post te controleren.";
						}
					} else {
						$query = mysql_query("SELECT id,vraag,antwoord FROM vraag_antwoord WHERE id='" . $_GET["id"] . "'");
						while($edit = mysql_fetch_assoc($query)){
							?>
							<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
							<b>Vraag: </b><input type="text" name="vraag" value="<?php echo $edit['vraag']; ?>" /> <br /><br />
							<b>Antwoord: </b><input type="text" name="antwoord" value="<?php echo $edit['antwoord']; ?>" /> <br /><br />
							<input type="submit" value="Bewerken" /> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $page . "?beheer"; ?>','_self')" />
							</form>
							<?php
						}
					}
				} else {
				header("Location: ".$page."?beheer");
				}
        } else if($_GET["actie"]  == "verwijderen" && isset($_GET["id"]) && is_numeric($_GET["id"])){
			if(mysql_num_rows(mysql_query("SELECT * FROM vraag_antwoord WHERE id = '".$_GET['id']."'")) > 0){
				if($_SERVER['REQUEST_METHOD'] == "POST") {
					$query = "DELETE FROM vraag_antwoord WHERE id='" . $_GET["id"] . "'";
					if(mysql_query($query)){
						header("Location: " . $page . "?beheer"); 
					} else {
						echo "Het toevoegen is mislukt. <br /><br /> Probeer het later opnieuw.";
						echo "<br /><br />Of klik <a href=\"\" onClick=\"history.go(-1)\">hier</a> om terug te gaan.";
					}
				} else {
					$query = mysql_query("SELECT id,vraag,antwoord FROM vraag_antwoord WHERE id='" . $_GET["id"] . "'");
					while($del = mysql_fetch_assoc($query)){ ?>
						<!-- Gegevens weergeven die de gebruiker wil verwijderen -->
						<i><b>Bericht-id:</b></i> #<?php echo $del['id']; ?>
						<br /><br /> <i><b>Naam:</b></i> <?php echo $del['vraag']; ?>
						<br /><br /> <i><b>Email:</b></i> <?php echo $del['antwoord']; ?>
						<!-- Submit knop weergeven om de gegevens te verwijderen -->
						<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post"> <br />
						<input type="submit" value="Verwijderen"> <input type="button" value="Nee, terug" onClick="window.open('<?php echo $page . "?beheer"; ?>','_self')">
						</form>
					<?php }
				}
			} else {
				header("Location: ".$page."?beheer");
			}
        } else {
            header("Location: ".$page."?beheer");
        }
    } else {
        if($totaal == 0){
            echo "Er zijn nog geen 'Frequent Asked Questions' toegevoegd.";
            echo "<br /><br /><a href=\"". $page ."\">Gebruikerspagina</a>";
            echo "<br /><br /><a href=\"". $page ."?beheer&actie=toevoegen\">Vraag en antwoord toevoegen</a>";
        } else {
            echo "<table width=\"70%\" style=\"text-align:center;\">
                    <tr>
                        <td width=\"5%\"><b>ID</b></td>
                        <td width=\"40%\"><b>Vraag</b></td>
                        <td width=\"40%\"><b>Antwoord</b></td>
                        <td width=\"10%\"><b>Bewerken</b></td>
                        <td width=\"10%\"><b>Verwijderen</b></td>
                    </tr>";
            while($faq = mysql_fetch_assoc($query)){
			    $faq['vraag'] = htmlspecialchars(strip_tags($faq['vraag']));
				$faq['antwoord'] = htmlspecialchars(strip_tags($faq['antwoord']));
				# Vergedrukte tekst, alleen in antwoord, want de vraag is al vetgedrukt
				$faq['antwoord'] = preg_replace("_\[b\](.*?)\[/b\]_si", '<b>$1</b>', $faq['antwoord']);
				# Schuine tekst
				$faq['vraag']= preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $faq['vraag']);
				$faq['antwoord']= preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $faq['antwoord']);
				# Onderstreepte tekst
				$faq['vraag'] = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $faq['vraag']);
				$faq['antwoord'] = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $faq['antwoord']);
				# Doorgestreepte tekst
				$faq['vraag'] = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $faq['vraag']);
				$faq['antwoord'] = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $faq['antwoord']);
				# Grote tekst
				$faq['vraag'] = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $faq['vraag']);
				$faq['antwoord'] = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $faq['antwoord']);
				# Kleine tekst
				$faq['vraag'] = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $faq['vraag']);
				$faq['antwoord'] = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $faq['antwoord']);
				
                echo "    <tr>
                            <td>". $faq['id'] ."</td>
                            <td>". $faq['vraag'] ."</td>
                            <td>". $faq['antwoord'] ."</td>
                            <td><a href=\"" . $_SERVER['REQUEST_URI'] . "&actie=bewerken&id=". $faq['id'] ."\"><img src=\"edit.png\" alt=\"edit\" title=\"edit\" border=\"0\" /></a></td>
                            <td><a href=\"" . $_SERVER['REQUEST_URI'] . "&actie=verwijderen&id=". $faq['id'] ."\"><img src=\"delete.png\" alt=\"delete\" title=\"delete\" border=\"0\" /></a></td>
                        </tr>
                    ";
            }
            echo "</table>";
            echo "<br /><br /><a href=\"". $page ."\">Gebruikerspagina</a>";
            echo "<br /><br /><a href=\"". $page ."?beheer&actie=toevoegen\">Vraag en antwoord toevoegen</a>";
            echo "<br /><br /><a href=\"". $page ."?beheer&actie=clear\">Alle vragen en antwoorden verwijderen (tabel legen)</a>";
        }
    }

} else {
    if($totaal == 0){
        echo "Er zijn nog geen 'Frequent Asked Questions' toegevoegd.";
    } else {
        echo "<h2>Frequent Asked Questions</h2>";
        while($faq = mysql_fetch_assoc($query)){
            $faq['vraag'] = htmlspecialchars(strip_tags($faq['vraag']));
            $faq['antwoord'] = htmlspecialchars(strip_tags($faq['antwoord']));
			# Vergedrukte tekst, alleen in antwoord, want de vraag is al vetgedrukt
			$faq['antwoord'] = preg_replace("_\[b\](.*?)\[/b\]_si", '<b>$1</b>', $faq['antwoord']);
			# Schuine tekst
			$faq['vraag']= preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $faq['vraag']);
			$faq['antwoord']= preg_replace("_\[i\](.*?)\[/i\]_si", '<i>$1</i>', $faq['antwoord']);
			# Onderstreepte tekst
			$faq['vraag'] = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $faq['vraag']);
			$faq['antwoord'] = preg_replace("_\[u\](.*?)\[/u\]_si", '<u>$1</u>', $faq['antwoord']);
			# Doorgestreepte tekst
			$faq['vraag'] = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $faq['vraag']);
			$faq['antwoord'] = preg_replace("_\[s\](.*?)\[/s\]_si", '<s>$1</s>', $faq['antwoord']);
			# Grote tekst
			$faq['vraag'] = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $faq['vraag']);
			$faq['antwoord'] = preg_replace("_\[big](.*)\[/big\]_si", '<big>$1</big>', $faq['antwoord']);
			# Kleine tekst
			$faq['vraag'] = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $faq['vraag']);
			$faq['antwoord'] = preg_replace("_\[small](.*)\[/small\]_si", '<small>$1</small>', $faq['antwoord']);
			
            echo "<p><b>". $faq['vraag'] ."</b><br />";
            echo $faq['antwoord'] . "</p>";
        }
    }
}
?>

</body>
</html> 
[/code]

Reacties

0
Nog geen reacties.