Daten aus Datenbanl auslesen und via <ul> wiedergeben

Danke für die Antworten. Das mit der .htaccess Datei hab ich noch nicht geschafft. In welches Verzeichnis soll das denn bei xampp? Also müsste ich quasi die Links in einem array Speichern und das Array mit ner switch Abfrage planen? Also um es sicherer zu machen als mit ner get Abfrage?
 
Die .htaccess kommt in das root-Verzeichnis deiner Seite.
Lies dir zum Thema PHP sicher programmieren mal den Link durch. und über Google findest Du da auch ne Menge.
 
Zu dem Sichermachen: Da sich jeder hier scheinbar etwas Anderes vorstellt,
zeig doch mal etwas mehr Code, was du da meinst. Was sicherer werden soll.

.htaccess:
Selbes Verzeichnis wie die HTML/PHP/...-Dateien, für die die .htaccess gelten soll.
Um zu testen, ob sie überhaupt gefunden wird, schreib einfach mal irgendeinen Unsinn rein
(blablub reicht schon) und ruf eine Seite auf.
Es sollte eine Meldung von einem Servererror, Fehler 500 oder irgendwas in der Art kommen.

@Zero:
Da das irgendwie so rüberkommt, dass dein Link das einzig Wahre sein sollte:
"Sicher" ist weit mehr als das...
 
So da ich leider am Handy keinen Quellcode posten kann, hab ich jetzt mal meinen Lappi geholt :)

Das hier ist der ganze Code mit der Navigation:

PHP:
function page_content(){
		$page = $_GET['name'];
		switch($page){
		
			case "content":
			include('includes/content.php');
			break;
			
			case "karte":
			include('includes/karte.php');
			break;
			
			case "fahrzeug":
			include('includes/fahrzeug.php');
			break;
		
			case "einsatz":
			include('includes/einsatz.php');
			break;
			
			case "schleife":
			include('includes/schleife.php');
			break;
			
			case "stichwort":
			include('inlcudes/stichwort.php');
			break;
			
			case "benutzer":
			include('includes/benutzer.php');
			break;
			
			case "teamspeak":
			include('includes/teamspeak.php');
			break;
			
			case "melder":
			include('includes/melder.php');
			break;
			
			case "fms":
			include('includes/fms.php');
			break;
			
			case "dev":
			include('includes/dev.php');
			break;
			
			case "disclaimer":
			include('includes/impressum.php');
			break;
			
			case "admin":
			include('includes/admin.php');
			break;
			
			case "login":
			include('includes/login.php');
			break;
		}
	}

Dementsprechend sieht dann die Navigation so aus:
HTML:
<ul id='nav'>
	<li><a href='index.php?name=content'>Übersicht</a>
		<ul>
			<li><a href='index.php?name=karte'>Karte</a></li>
		</ul>
	</li>
	<li><a href='#'>Verwaltung</a>
		<ul>
			<li><a href='index.php?name=fahrzeug'>Fahrzeug</a></li>
			<li><a href='index.php?name=einsatz'>Einsatz</a></li>
			<li><a href='index.php?name=schleife'>Schleifen</a></li>
			<li><a href='index.php?name=stichwort'>Stichwort</a></li>
			<li><a href='index.php?name=benutzer'>User</a></li>
			<li><a href='index.php?name=teamspeak'>Teamspeak</a></li>	
		</ul>
	</li>
	<li><a href='#'>Funk</a>
		<ul>
			<li><a href='index.php?name=melder'>Melder</a></li>
			<li><a href='index.php?name=fms'>FMS</a></li>
		</ul>
	</li>
	<li><a href='#'>Entwicklung</a>
		<ul>
			<li><a href='index.php?name=dev'>Pre-Alpha</a></li>
		</ul>
	</li>
	<li><a href='index.php?name=disclaimer'>Impressum</a></li>
	<li><a href='index.php?name=admin'>Admin</a></li>
	<li><a href='index.php?name=login'>Login</a></li>
</ul>

Ist dies sicher genug? Oder wie kann ich diese Sachen sicherer machen? Reicht da schon das "Links schöner machen via .htaccess, also auf gut deutsch mod_rewrite?
 
wenn es das wäre hätte ich es geschrieben, bin selber Anfänger aber irgendwo muss man doch mal anfangen, was wird denn sicherer wenn ich hier mit Switch case arbeite****
 
Vllt. vor dem ganzen switch zuerst mit isset($_GET['name']) prüfen,
ob überhaupt was übergeben wurde.
Sonst sollte das keine Probleme machen.

Nur ein Vorschlag zur Codeverkürzung:
a) Alle Strings wie "content" "karte"... in ein Array
b) Einmal prüfen, ob der GET-Wert im Array enthalten ist
c) Wenn ja: include('includes/' . $_GET['name'] . '.php');

Zu einem anderen Seite von "sicher", worüber die Diskussion zwischen Zero und alxy ging(?):
Wenn irgendwer mit-"hören" versucht, was Benutzer X von dieser Seite aufruft,
kann er das bei GET und POST rausfinden (oder auch nicht (verschlüsselt etc.etc.)).
GET/POST macht da keinen Unterschied.

Wenn man direkt beim Computer ist:
Bei GET sieht man den Wert in der Adresszeile vom Browser,
bei POST muss man sich minimal mehr anstrengen als nur auf den Bildschirm zu schauen.
Das wär sicherheitsmäßig der vermutlich einizge Unterschied.

@Zero: Bei dir und alxy gings doch um Get/Post, von switch war da keine Rede?
 
@Zero2000
Die Switch case Abfrage ist einfach nur zum Link holen damit eben der Navlink mit ?name= abgerufen werden kann. Ich weiß das es dort noch eine einfachere Form gibt dies zu schreiben, nur leider ist dies mir entfallen bzw beim nachgooglen hab ich leider nichts dazu gefunden :/
 
Mal gerade ne andere Frage welche hier eigentlich nicht reingehört aber ich sie dennoch fragen möchte ohne neues Thread (Find das immer sehr nervig 1000 Threads für 2 Themen :D).

Und zwar habe ich folgenden CSS Code:

Code:
#content {
height:600px;
width:900px;
text-align:center;
}

Ich habe jetzt mal rumexperimentiert und habe mal "height: auto" eingegeben, damit sich die Contentbox auf das Content jeweils erweitert. Ist dies sinnvoll? Oder ist dies mehr "Schwachsinn"?

@sheel
Danke für den Denkanstoß :) Ich probiere das gleich mal aus. :) Mit den Benutzer Daten verschlüsseln wollt ich eine md5 Verschlüsselung nehmen wo der Hashtag abgefragt wird nach Gleichheit.
 
@MD5: Das ist keine "Verschlüsselung", kann nicht rückgängig gemacht werden -> Hash
Bei Benutzerdaten in einer DB macht das nur wirklich Sinn fürs Passwort,
zum Vergleichen der Hashes beim eingeben (damit man die Passwörter nicht
aus der DB rauslesen kann wenn man an die Daten kommt)
Wenn Benutzername etc. gehasht wären würde man selbst auch nciht mehr drankommen.
Diese Sachen werden ja auch zum Auslesen gebraucht, nicht nur zum Vergleich mit Eingaben.

Und bitte bitte verwendet kein MD5.
Ersetz md5() einfach durch sha1(), machts schon viel besser.
MD5 ist schon jahrelang bewiesenermaßen unsicher.

PS: Wenn das ganze Verschlüsseln jetzt auf das GET/POST-Mithören von oben bezogen war:
Das hilft dagegen nichts.
 
Ne ne sheel :) Darauf war es nicht gemünzt. Ok dann kein m5 ^^ Mir fiel nur nicht mehr die sha1 Verschlüsselung ein :D

Ähm wie sieht es denn aus wenn ich einfach eine Art "Filter" einbaue. Ich habe eine Seite gefunden auf der folgender Filter eingebaut wurde:
PHP:
<?PHP
function filterfilename($filename){
    $filename = strtolower($filename);
    $filename = preg_replace("/[^a-z0-9\-\/]/i","",$filename);
    if($filename[0] == "/"){
        $filename = substr($filename,1);
    }
    $filename .= ".php";
    if(!file_exists($filename)){
        $filename = "content/articles/errors/404.php";
    }
    return $filename;
}
?>
aber ich glaube das ist auch am Thema "sicher" vorbei oder?
 
Zurück