Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

login pw-abfrage PHP

Diskussion: login pw-abfrage PHP im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hi, habe da mal wieder son problem mit php! habe ein login-script: 1. login.html (eingabe name und passwort (html)) ...

Antwort
Alt 07.06.05, 19:30   #1 (permalink)
gesperrt
 
Registriert seit: 07.03.05
Hirnbreaker Leistung: Facit NTK
Likes: 0
Standard login pw-abfrage PHP

Anzeige

hi, habe da mal wieder son problem mit php!

habe ein login-script:
1. login.html (eingabe name und passwort (html))
2. admin.php (inhalt der administration: darf keiner dran bevor er pw und bn in der login.html eingebene hat)
3. gbadmin.php
4. newsadmin.php
5. forumadmin.php

die datein 3,4,5 möchte ich ebenfalls so einrichten, dass sie nur angesehen werden können, wenn in der login.html die daten richtig eingegeben wurden!!

wie stelle ich das an???

Hirnbreaker ist offline   Mit Zitat antworten
Alt 07.06.05, 19:36   #2 (permalink)
 
Registriert seit: 07.05.03
4future Leistung: Facit NTK
4future eine Nachricht über ICQ schicken
Likes: 0
Standard

mit lesen: tut.php-q.net
4future ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 07.06.05, 20:45   #3 (permalink)
 
Registriert seit: 09.03.04
mise Leistung: Facit NTK
Likes: 0
Standard

Vielleicht hift dir auch .htaccess weiter: .htaccess Tutorial
mise ist offline   Mit Zitat antworten
Alt 07.06.05, 20:47   #4 (permalink)
Member of Honour
 
Benutzerbild von Sven
 
Registriert seit: 14.09.03
Sven Leistung: 8086Sven Leistung: 8086
Likes: 34
Standard

nach erfolgreichem vergleich der login daten machst du folgendes:

PHP-Code:
session_register('safe'); 
an den anfang jeder datei stelltst du dann

PHP-Code:
<? session_start(); 
if(!
session_is_registered('safe')) {
      die (
"<b>Please login</b> <br>");
      }
?>
aber noch vor das <html> also in zeile 1

grüße
Sven
__________________
Mein Portfolio
Meine Fotogalerie
best view with open eyes
Sven ist offline   Mit Zitat antworten
Alt 07.06.05, 21:25   #5 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

Warum machst du aus der Login.html nicht eine Login.php? Dann köntest du dein Anmeldeformular in der Art schreiben:
PHP-Code:
<form name="login" method="post" action="login.php" target="_self">
Username: <input type="text" name="uname"><br>
Password: <input type="password" name="upwd"
</
form
In der gleichen Datei (also login.php) kannst du dann kucken ob das Passwort und der Benutzername (korrekt) eingegeben wurden, ungefähr so:
PHP-Code:
<?
if (isset($_POST['uname'],$_POST['upwd']))
{
include(
"PATH/daten.php"); //die Datei zum Überprüfen der Eingabe inculden wo die Userdaten drin liegen (du solltest diese Datei am besten über dem ersten vom Web aus erreichbaren Ordner speichern und den Pfad zu der Datei anstelle von PATH angeben)
 
if ( $_POST['uname']==$username && $_POST['upwd']==$password)
 {
  
//hier dann entweder die anderen Dateien (admin.php / gbadmin.php / newsadmin.php / forumadmin.php) includen oder komplett reinkopieren
 
}else echo "<b>Login nicht erfolgreich.</b>";
}else 
{
//hier kannst du das Formular rein packen
?>


<?
}
?>
ich hoffe das hilft dir weiter ...
[EDIT]
achso, damit das Anmelde-Formular verschwindet nachdem die Daten Korrekt eingegeben wurden kannst du es in den elseZweig von if(isset()) schreiben
[/EDIT]

mfg
püppi
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Alt 07.06.05, 21:40   #6 (permalink)
Member of Honour
 
Benutzerbild von Sven
 
Registriert seit: 14.09.03
Sven Leistung: 8086Sven Leistung: 8086
Likes: 34
Standard

Zitat:
Original von PuppE
Warum machst du aus der Login.html nicht eine Login.php? Dann köntest du dein Anmeldeformular in der Art schreiben:
PHP-Code:
<form name="login" method="post" action="login.php" target="_self">
Username: <input type="text" name="uname"><br>
Password: <input type="password" name="upwd"
</
form
In der gleichen Datei (also login.php) kannst du dann kucken ob das Passwort und der Benutzername (korrekt) eingegeben wurden, ungefähr so:
PHP-Code:
<? if (isset($_POST['uname'],$_POST['upwd']))
{
include(
"PATH/daten.php"); //die Datei zum Überprüfen der Eingabe inculden wo die Userdaten drin liegen (du solltest diese Datei am besten über dem ersten vom Web aus erreichbaren Ordner speichern und den Pfad zu der Datei anstelle von PATH angeben)
 
if ( $_POST['uname']==$username && $_POST['upwd']==$password)
 {
  
//hier dann entweder die anderen Dateien (admin.php / gbadmin.php / newsadmin.php / forumadmin.php) includen oder komplett reinkopieren
 
}
ich hoffe das hilft dir weiter ...

mfg
püppi
man kann auch alles direkt in eine Datei fassen...
PHP-Code:
if($_GET['admin'] == 1) { session überprüfen,.... } 
die links dann www.bla.de/index.php?admin=1 zb
__________________
Mein Portfolio
Meine Fotogalerie
best view with open eyes
Sven ist offline   Mit Zitat antworten
Alt 07.06.05, 21:49   #7 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Original von Sven
man kann auch alles direkt in eine Datei fassen...
PHP-Code:
if($_GET['admin'] == 1) { session überprüfen,.... } 
die links dann www.bla.de/index.php?admin=1 zb
abgesehen davon das ich nich verstehe wofür admin=1 steht, was soll das bringen ? bzw. kannste das mal näher ausführen ... ?

mfg
püppi
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Alt 07.06.05, 21:55   #8 (permalink)
Member of Honour
 
Benutzerbild von Sven
 
Registriert seit: 14.09.03
Sven Leistung: 8086Sven Leistung: 8086
Likes: 34
Standard

Liebe puppe
das war ein Beispiel

du kannst in der index php diverese If abfragen einbauen, ich hätte auch schreiben können Puppe=1
aber zb Wenn admin=1 per Get übergeben wird und eine if Schleife dazu existiert, kann danach der part der admin.php ausgegeben werden.
Per geschickten Abfragen liese sich auch realisieren, dass immer nur ein Wert übergeben wird.
-> du hast nur eine datei mit dem Inhalt von 5

und wenn keine der if Abfragen erfüllt wird (eine if abfrage für den Index also liste aller Verfügbaren Seiten) kann man halt den Login ausgeben lassen

grüße
Sven
__________________
Mein Portfolio
Meine Fotogalerie
best view with open eyes
Sven ist offline   Mit Zitat antworten
Alt 07.06.05, 22:33   #9 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

ich hatte schon das Grundprinzip verstanden ...
Blos wo willst du denn deine Variable (admin / puppe) setzen ?

Wäre es nicht sinnvoller (wenn man schon eine Unterscheidung treffen will) in dem Anmeldeformular ein paar Radiobuttons zu vereinbaren die der User dann anklicken kann ? zb.:
PHP-Code:
<form name="login" method="post" action="login.php" target="_self">  Username: <input type="text" name="uname"><br>
Password: <input type="password" name="upwd">
<
input type="radio" name="Admin" value="Admin"Admin
<input type="radio" name="PuppE" value="PuppE"PuppE
</form
die könnte man dann mit if(isset($_POST['Admin'])) überprüfen und dann die jeweilige seite ausgeben.

Das war jetzt auch nur ein Beispiel

mfg
püppi
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Alt 07.06.05, 22:33   #10 (permalink)
gesperrt
Themenstarter
 
Registriert seit: 07.03.05
Hirnbreaker Leistung: Facit NTK
Likes: 0
Standard

@puppe
deine alternative ist richtig und funzt auch, jedoch ist damit leider noch net mein problem behoben. denn so hat jeder die möglichket (vorausgesetzt er kennt den pfad der datei), die datei, die ich include will auch manuel zu öffnen! oder liege ich da falsch und verstehe deine antwort nicht ganz!

ich möchte ja alle datein, die ich includen möchte ebenso mit pw u. bn schützen! denn wenn jemand den pfad der (z.b.) gbadmin.php kennt, kann er darauf zugreifen und sie dennoch öffnen (er umgeht in dem fall den passwortschutz)!

ist es irgendwie möglich alle datein so zu schützen (also die datein die ich in die admin.php include möchte) dass man die datein nur über die "login.php" öffnen kann!? d.h. nur mit eingabe des pw u. bn!?

bisher habe ich es wie folgt (in der art):

in der login.php das formular (diese verzweigt dann durch form="" zur "admin.php")

die admin.php sieht dann so aus:

<?php
include ("pw.php"); // enthält pw u. bn

if (($user== "$bn") and ($pws== "$pw"))
{
?>
<html>
<head>
<title>admin</title>
</head>
<body>

<a href="gbadmin.php">gb</a>
<a href="newsadmin.php">news</a>

</body>
</html>
<?
}
else {
echo "Kein Zugriff!";
}
?>



nun möchte ich (wie oben zu sehen) die beiden dateien (gbadmin und newsadmin.php) darin laden!
wenn jemand jedoch den pfad der beiden dateien kennt, kann er so drauf zugreifen und den pwschutz umgehen!
das möchte ich net!
möchte, dass man nur über die pw-abfrage auf die dateien kommt (d.h. wenn man zwar den pfad kennt und die datei öffnen will bzw. die pw-abfrage umgehen will, dass dann kommt "Error" oderso)
Hirnbreaker ist offline   Mit Zitat antworten
Alt 07.06.05, 22:37   #11 (permalink)
Member of Honour
 
Benutzerbild von Sven
 
Registriert seit: 14.09.03
Sven Leistung: 8086Sven Leistung: 8086
Likes: 34
Standard

Nein puppe
ich will extra links dafür machen
also du loggst dich ein
und siehst 3 Links mit jeweils ner anderen Get Variablen
und dann If Abfragen zu jeder einzelenen Get Variablen

so hab ich mir das gedacht

@ Hirnb.

da ich jezt erstmal pennen gehe werde ich dir morgen, sollte ich zeit finden mal nen Fertigen source posten

danach dürfte dann auch alles klar sein
__________________
Mein Portfolio
Meine Fotogalerie
best view with open eyes
Sven ist offline   Mit Zitat antworten
Alt 07.06.05, 22:42   #12 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

Um deine Datei vor ungewolltem Zugriff zu schützen solltest du Sie ausser halb des vom WWW erreichbarem Bereich lagern und später includen. Das gilt ganz besonders für die pw.php
Ich weis nicht wie deine Verzeichnisstruktur aussieht, aber normaler weise hat man einen Ordener der nicht vom Web aus erreichbar ist (dieser liegt meist Über dem www-Ordner), falls nicht muss ich mir halt noch was anderes ausdenken
Also musst du ansatt die Links auszugeben, die jeweilige Datei includen.
Um zu unterscheiden wo der User hin will, könntest du Svens Ansatz (mit meiner Variante, den Radiobuttons) benutzen, so das der User vorher schon sagen muss wo er hin will.

mfg
püppi
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Alt 07.06.05, 22:54   #13 (permalink)
Member of Honour
 
Benutzerbild von ivegotmail
 
Registriert seit: 28.05.03
ivegotmail Leistung: Z3
Likes: 1
Standard

Zitat:
Original von PuppE
Ich weis nicht wie deine Verzeichnisstruktur aussieht, aber normaler weise hat man einen Ordener der nicht vom Web aus erreichbar ist (dieser liegt meist Über dem www-Ordner), falls nicht muss ich mir halt noch was anderes ausdenken
alternativ könnte man die dateien in einen htaccess geschützen bereich packen.
__________________
http://livehabo.hackerboard.de | http://livebb.sourceforge.net
ivegotmail ist offline   Mit Zitat antworten
Alt 07.06.05, 23:05   #14 (permalink)
gesperrt
Themenstarter
 
Registriert seit: 07.03.05
Hirnbreaker Leistung: Facit NTK
Likes: 0
Standard

ja das wäre möglich und auch wohl momentan am einfachsten! jedoch möchte ich das gerade net! ^^
bin da etwas eigen!

ich habe mir was gerade so überlegt, mit einem switch die datein in der admin.php zu includen, jedoch bringt mich das net weiter, da durch son break; keine variablen vom darüberliegendem "switch" "durchgehen"
oh mein gott, hoffe ihr versteht was ich meine!?

admin.php

<?
include "pw.php"; // natürlich anderer pfad ^^

if (($user== "$bn") and ($pws== "$pw")) // $user u. $pws von login.php(werden überprüft)
{

switch($admin) {

default:
?>
<a href="gbadmin.php?admin=gb">gb</a>
<a href="newsadmin.php?admin=news">news</a>
<?
}
else {
echo "Kein Zugriff!";
}
?>
<?
break;
case "gb":
include ('gbadmin.php'); // in der datei ebenfals if (($user == "$bn") and ......

break;
case "news":
include ("gbnews.php'); // in der datei ebenfals if (($user == "$bn") and ......
}
?>




könnten fehler drin sein! hab sie nur mal schnell reingeschrieben, solen zum vereutlichen dienen! ^^^

ist so etwas möglich?? d.h. die (zb) gbadmin.php hat oben auf die abfrage der daten stehen, das hieße man könnte so auf die datei net zugreifen!

aber durch son break; kommen auch net die daten von der "normalen" admin.php durch?? oder wie ist so etwas möglich?
Hirnbreaker ist offline   Mit Zitat antworten
Alt 07.06.05, 23:27   #15 (permalink)
Moderator
 
Benutzerbild von PuppE
 
Registriert seit: 13.12.04
PuppE Leistung: Facit NTK
Likes: 0
Standard

du machst da einen ganz großen logischen fehler ... mit <a href="gbadmin.php?admin=gb">gb</a> rufst du die gbadmin.php auf und über gibst der gbadmin.php die variable admin mit dem wert gb. Du willst aber in der admin.php die variable $_GET['admin'] (nicht $admin) überprüfen, die wird da _nie_ ankommen ...
was hast du gegen die Variante mit dem geänderten Formular ?
PHP-Code:
<form name="login" method="post" action="login.php" target="_self">  Username: <input type="text" name="uname"><br>
Password: <input type="password" name="upwd">
<
input type="radio" name="gbnews" value="gbnews"GBNews
<input type="radio" name="gbadmin" value="gbadmin"GBAdmin
</form
dann könntest du in der login.php folgendes machen:
PHP-Code:
<?
if (isset($_POST['uname'],$_POST['upwd']) && (isset($_POST['gbadmin']) || isset($_POST['gbnews'])))  {
include(
"pw.php"); 
 if ( 
$_POST['uname']==$username && $_POST['upwd']==$password)   { 
   if(isset(
$_POST['gbadmin']))
   include(
"gbadmin.php"); 
   if(isset(
$_POST['gbnews']))
   include(
"gbnews.php");
  }
}else 
{
//hier kannst du das Formular rein packen
?>


<?
}
damit ersparst du dir ne menge fummelei und das erneute überprüfen der UserDaten.
__________________
[Wer glaubt, dass Projektleiter Projekte leiten, glaubt auch, dass Zitronenfalter Zitronen falten.]
PuppE ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » login pw-abfrage PHP
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Abfrage Prophion Code Kitchen 5 29.01.09 18:24
SQL-Abfrage mauralix Code Kitchen 8 12.02.07 13:29
Checkbox abfrage? TeeKayo2 (Web-) Design und webbasierte Sprachen 6 16.01.06 22:54
SQL Abfrage sfil Code Kitchen 4 21.03.05 22:52
SQL Abfrage Tomekdomek (Web-) Design und webbasierte Sprachen 4 28.02.02 09:36


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61