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

passwort abfrage

Status
Für weitere Antworten geschlossen.

{INF3CT}

Neues Mitglied
Hi,

Ich hab auf meiner Seite einen geschützten Bereich eingerichtet. Wenn man auf den link klickt klappt auch alles wunderpar, da aber die Links im Index eingebunden sind (mit index.php?site=0 ...u.s.w.) kann man die passwortabfrage umgehen wenn man den richtigen Pfad im Browser eingibt. Die Passwortabfrage von php bekommt es auch nicht gebacken (es kommt immer "Falsches pw eingegeben") wollte ich das ganze mit cookies machen. Da ich aber nicht so viel ahnung von cookies hab bräuchte ich da n bisschen hilfe.
Oder habt ihr ne bessere Idee?

Code:
case 1: include("sql/intern/news.php"); break;

der ordner intern ist mit htaccess geschützt. Aber in der Addresszeile im Browser steht ja wenn man auf den link klickt nur ...hp/index.php?site=1,
auf den ordner "intern" wird also nur indirekt zugegriffen, was keine passwortabfrage auslöst.

MFG Sascha
 
....ausserdem würd ich gleich von vorn heran als login script das 'post' statt 'get' verfahren nehmen, das erspart schon allein, wenn man später sachen hinzufügt(ins formular) viele probleme.
 
Hab das ganze jetzt mit sessions gemacht, hab aber genau das gleiche Problem wie mit htaccess.

Ich versuch es euch nochmal besser zu erklären.

Ich habe die datei "news.php" geschützt. Sie entspricht im Index aber "index.php?site=1".
Wenn ich also direkt die datei news.php verlinke Klappt alles (sieht aber scheiße aus oder ich müsste sie genau gleich wie den index aufbauen nur alle links abändern was mir zu viel arbeit ist.)
Wenn ich index?site=1 verlinke (welche ja auch auf news.php zugreift) muss ich aber kein Passwort eingeben.

Wie kann ich dieses Problem lösen? mein Vorschlag waren cookies...
 
Deine news.php wird sicher per include eingebunden und beim entsprechenden GET-Parameter aufgerufen, richtig?

Wo ist also das Problem? Überprüfe doch den Status des Login in Deiner SESSION und mach davon das einbinden bestimmter Bereiche, z.B. Deiner news.php, abhängig.
 
kleines struktogramm dazu:

session_01.jpg


also, die anweisungen und verzweigungen solltest du 'rauslesen können.
und das alles geht nur von einer einzigen datei aus von statten:

PHP:
<?php
/* login_validieren.php */

if($_SESSION['logged'] == false)
   {
   header('location: login.html');
   exit();
   }
?>

du kannst der SESSION aber auch einen bestimmten wert geben und den dann abfragen.

Nils aka XraYSoLo
 
Ich steh grad noch bissl aufm Schlauch^^

Muss ich hier auch was machen?

Code:
<?php
$GET=$_GET["site"];
if ($GET=="") {
$GET="0";
}
switch($GET) {
 
case 0: include("home.php"); break;
case 1: include("sql/intern/news.php"); break;
case 2: include("klasse.php"); break;
case 3: include("bilder.php"); break;
case 4: include("communicate.php"); break;
case 5: include("impressum.php"); break;
case 6: include("sql/intern/kalender.php"); break;
case 7: include("sql/intern/klassenliste.php"); break;
case 8: include("sql/intern/forum.php"); break;
case 9: include("sql/intern/chat.php"); break;
default: include("home.php");
}
?>

oder reicht es wenn ich die sessions bei den einzelnen Dateien (news.php; klassenliste.php;...) einbinde?

PS: wäre nett wenn ihr mir den 'include' Abschnitt gleich verbessern könntet!
 
jeder einzelne der include-einträge muss diese abfrage enthalten, wenn du ihn schützen willst.

Nils aka XraYSoLo
 
ich hab kein peil wie das geht, kann php fast gar nicht... desswegen hab ich um ein die verbesserung gebten...

ich bin bissher soweit:
Code:
<?php session_start();
$GET=$_GET["site"];
if ($GET=="") {
$GET="0";
}
switch($GET) {
default: include("failed.php");
case 0: include("home.php"); break;
case 2: include("klasse.php"); break;
case 3: include("bilder.php"); break;
case 4: include("communicate.php"); break;
case 5: include("impressum.php"); break;
}
$Zugangspasswort = "insider";
if($_SESSION['passwort'] == $Zugangspasswort)
{switch($GET) {
case 6: include("sql/intern/kalender.php"); break;
case 7: include("sql/intern/klassenliste.php"); break;
case 8: include("sql/intern/forum.php"); break;
case 9: include("sql/intern/chat.php"); break;
case 1: include("sql/intern/news.php"); break;
}
}
?>

mfg Sascha
 
Zuletzt bearbeitet:
Hab den 'include' Abschnitt verbessert, stimmt er jetzt?

Wie sieht die passwort abfrage aus? einfach ne .htaccess in den ordner intern oder meinst du in jede .php datei folgendes:
Code:
<?php
  session_start();
  ?>
<html>
<head><title>Geschützter Bereich</title>
</head>
<body>
<?php
$Zugangspasswort = "insider";
if($_SESSION['passwort'] == $Zugangspasswort)
{
?>
 
-INHALT-

<?php
}
else
{
?>
<p>Login fehlgeschlagen</p>
<?php
}
?>
</body>
</html>
?
 
naja ich habs jetzt genau so wie es oben steht und es geht nicht.

Meine login.php hab ich aus nem turtorial dieser Seite rauskopiert, dürfte laso richtig sein.
Auf was muss ich achten?

Pls HELP!!!
 
Zuletzt bearbeitet:
.htaccess

du brauchst kein .htaccess !
du musst nur in jede php datei also zum Beispiel in chat.php oder forum.php folgendes reinschreiben

PHP:
defined("logged") or die();

und in der index.php

PHP:
define("logged", true);

an den anfang

mfg
bas
 
@ frank
ja hab ich ^^
ich hab hier auch nur eine möglichkeit gepostet!!
und statt
session_start()
kann man genausogut das reinschreiben !!

mfg bas
 
nur deine möglichkeit hat einen gravierenden nachteil. Einmal gesetzt kann man den Wert im verlauf des Scriptes nicht mehr ändern.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben