• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SQL-Befehl durch URL-Include verhindert

TheShadow

Neues Mitglied
Hallo!
Ich bastel gerade ein Newssystem mit Login. Hierbei includiere ich die einzelnen Adminseiten auf eine acp_index.php. Wenn ich jetzt jedoch eine neue News schreiben will, verarbeitet er nicht die in der new_news.php stehenden Vorgänge, sondern schickt mich zurück zur index.php, weil ja die GET-Variable wahrscheinlich nach dem Drücken des Abschicken-Buttons nicht mehr existiert und ich dann - wie normal gewollt - zum Index zurück komme. Dadurch gehen sämtliche Meldungen der new_news.php und auch der Eintrag der News verloren.

Wie kann ich das umgehen? Ich will eigentlich nicht auf die URL-Includes verzichten.

Hier die acp_index.php:
PHP:
<?php

	//acp_index.php
	error_reporting(E_ALL);
	
	//Login?
	include('checkuser.php');
	
?>

	<html>
	
		<head>
		
			<title>Six Noises - Admin Control Panel</title>
			
			<style type="text/css">

				body {
				
					font-family: Verdana;
					color: #ffffff;
					background-color: #53a8ff;
			
				}
				
				#menue {
				
					background-color: #1d2c4d;
					width: 200px;
					height: 900px;
					float:left;
				
				}  
				
				#content {
				
					margin-left: 250px;
					
				}
				
			</style>
				
		</head>
		
		<body>
		
			<div id="menue">
				<b>News</b><br>
				<ul>
					<li><a href="acp_index.php?site=new_news">News schreiben</a>
					<li>News editieren
					<li>News löschen
				</ul><br>
				<b>Galerie</b><br>
				<ul>
					<li>Neues Bild hochladen
					<li>Bild/er löschen
					<li>Bild/er editieren
				</ul><br>
				<b>User</b><br>
				<ul>
					<li>Neuen User erstellen
					<li>User editieren
					<li>User löschen
				</ul>
				<?php
				
					echo "Sie sind eingeloggt als ";
					echo $_SESSION['Username'];
					echo ".";
				
				?>
				
				<br><a href="logout.php">Logout</a>
			</div>
			
			<div id="content">
			
				<?php 
				
					//Array mit allen benötigten Seiten
					$site = array();
					$site['index'] = 'index.php';
					$site['new_news'] = 'new_news.php';
					$site['edit_news'] = 'edit_news.php';
					$site['delete_news'] = 'delete_news.php';
					$site['new_pic'] = 'new_pic.php';
					$site['edit_pic'] = 'edit_pic.php';
					$site['delete_pic'] = 'delete_pic.php';
					$site['new_user'] = 'new_user.php';
					$site['edit_user'] = 'edit_user.php';
					$site['delete_user'] = 'delete_user.php';
					
					if (isset($_GET['site'], $site[$_GET['site']])) {
						
						include $site[$_GET['site']];
					
					} else {
						
						include $site['index'];

					}
					
				?>
			
			</div>
			
		</body>
		
	</html>

Und hier die new_news.php:

PHP:
<?php

	error_reporting(E_ALL);
	//new_news.php
	
	include('connection.php');

?>

	<html>
	
		<head>
			<title>Neuen Newseintrag schreiben</title>
		</head>
		
		<body>
			<div id="formular">
				<b>Hinweis</b><br>
				Auf dieser Seite können Sie News verfassen. Bitte füllen Sie alle Felder aus. Das Datum wird automatisch generiert und in die Datenbank gespeichert.<br><br><br>
				<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
				
					Titel: <input type="text" name="Titel" size="20"><br>
					Inhalt: <textarea name="Inhalt" cols="50" rows="10" wrap="soft"></textarea><br>
					Abschicken: <input type="Submit" name="Abschicken" value="Abschicken">  
			
				</form>
			</div>
		</body>
		
	</html>
	
<?php

	//Überprüfen ob alle Felder ausgefüllt sind
	if(isset($_POST['Abschicken'])) {
	
		if(empty($_POST['Titel']) or empty($_POST['Inhalt'])) {
	
			echo "Sie haben nicht alle Felder ausgefüllt!";
		
		} else {
	
			$query = "INSERT INTO news(Titel, Datum, Inhalt) values ('".$_POST['Titel']."', NOW(), '".$_POST['Inhalt']."')";
		
			$result = mysql_query($query);
		
			if(!isset($result)) {
		
				echo "Ein Fehler ist aufgetreten! Bitte kontaktieren Sie Ihren technischen Ansprechpartner!";
			
			} else {
		
				echo "Ihre News wurde erfolgreich eingetragen!";
			
			}
		
		}
		
	}	
		
?>

Über fehlende Sicherheit braucht ihr euch übrigens nicht sorgen, weil ich das alles noch machen werde.

Vielen Dank schonmal im voraus!
Gruß
 
Werbung:
Zurück
Oben