php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.06.2011, 23:23  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard Geschützter Bereich mit zwei includierte Dateien

Hallo, hab wieder als Anfänger eine Frage .

Ich versuche einen Geschützten Bereich zu machen und eig. klappt das auch, doch ich habe probleme mit meinem Code. Ich weis nicht wirklich was ich ändern soll, damit eine datei bzw auch die andere inkludiert ist.


-------------------------------------

Also wie ich das meine:

navi-links.php soll includiert werden, wenn der User nicht eingeloggt ist.
navi-links2.php soll includiert werden, wenn der User eingeloggt ist.





index.php:
PHP-Code:
<?php
$db 
mysql_connect("host""name""passwort") or die(mysql_error()); 
if (!
mysql_select_db ("tabelle"$db)) 
{
die (
"Datenbank konnte nicht ausgewählt werden"); 
}

$username $_POST["name"]; 
$passwort $_POST["password"]; 

$abfrage "SELECT name, password FROM login WHERE name LIKE '$username' LIMIT 1"
$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

if(
$row->password == $passwort
    { 
    
$_SESSION["name"] = $username
    include (
"navi-links2.php");
    } 
else 
    { 
    include (
"navi-links.php"); 
    } 

?>

wie ermögliche ich es?


Danke!
Aceh ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.06.2011, 23:34  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Aceh Beitrag anzeigen
wie ermögliche ich es?
Im Prinzip so mit einem if-else-Konstrukt, wie du es schon gemacht hast.
(Abgesehen davon, dass du der Problematik SQL Injection keinerlei Beachtung geschenkt hast.)

Wenn das nicht „funzt“, dann ist dein Script wohl an irgendeiner Stelle fehlerhaft - also betreibe Debugging!
Wenn du nicht weißt, wie - dann lies dir die entsprechenden Artikel in unserem Wiki durch für erste Ansätze.

Und danach beschreibe hier, wenn du den Fehler damit noch nicht selber findest, welche Schritte du durchgeführt hast und mit welchen Ergebnissen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 30.06.2011, 23:36  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Du versuchst bei jedem Aufruf der index.php die Logindaten zu überprüfen aus dem Request. Ein Login passiert aber nur einmal, danach bleibt man eingeloggt (session)

Probiers mal so:
Code:
session starten oder wieder aufnehmen

WENN post request mit Logindaten eingeht -> Daten per SQL prüfen 
  WENN korrekt -> session status "eingeloggt" 

WENN session status vorhanden und "eingeloggt" -> zeige navi2
ANSONSTEN zeige navi
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 30.06.2011, 23:46  
mn_
Benutzer
 
Registriert seit: 23.06.2011
Beiträge: 32
PHP-Kenntnisse:
Fortgeschritten
mn_ befindet sich auf einem aufstrebenden Ast
Standard

hi,

der login sollte nur durchgeführt werden wenn $_SESSION["name"] nicht gesetzt ist

außerdem:

es fehlt session_start() am anfang des scripts

alle werte, die vom benutzer kommen ($_GET, $_POST, $_COOKIE, ..) sollten unbedingt mit mysql_real_escape_string() behandelt werden, wenn sie in einem mysql statment verarbeitet werden

das passwort sollte nicht im klartext übergeben werden, sondern als hash (zB md5()) und auch so in der datenbank gespeichert sein

verwende statt im sql statment statt LIKE ein = wenn du einen exakten wert suchst
mn_ ist offline   Mit Zitat antworten
Alt 07.07.2011, 14:26  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard Session start bzw Login-Bereich Problem

Hallo!
Ich habe ein Problem mit Session_start.
in der Datei navi-links.php habe ich einen Login-Script drin, der scheint auch zu funktionieren und die session start funktionieren auch.
Wenn ich mich aber am nächsten Tag einlogge funktioniert das auf einmal nicht und man kommt immer in den "unangemeldeten" Login-Bereich und nicht in den geschützten bereich.

Weis jemand wo das Problem liegt???


Für Session_start habe ich 2 Beispiele. einmal index.php und einmal irgentwas.php. Wenn man sich einloggen will kommt man zum index.php .

index.php
PHP-Code:
<?php 
//$_SESSION["name"] = $name;
//$_SESSION["password"] = $password; 
session_start();
?>

<! HTML und PHP sätze>
<! HIER KOMMT MAN BEIM EINLOGGEN HIN>
<? include ("navi-links.php"); ?>

irgentwas.php
PHP-Code:
<?php 
session_start
();
?>

<!HTML und PHP sätze>
<? include ("navi-links.php"); ?>

navi-links.php
PHP-Code:
<?php 
$verbindung 
mysql_connect("Server""Name""Passwort"
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("Datenbank") or die ("Datenbank konnte nicht ausgewählt werden"); 

$name $_POST["name"]; 
$password = ($_POST["password"]); 
$name $_SESSION["name"]; 
$password $_SESSION["password"]; 


$query "SELECT name, password FROM login WHERE name LIKE '$name' LIMIT 1";
$result mysql_query($query);
$row mysql_num_rows($result);


if(
$row
    {
    
$_SESSION["name"] = $name;
    
$_SESSION["password"] = $password
    echo 
"

//Langer HTML-Code mit PHP-Variablen für angemeldete User (geschützter Bereich)

    "
;
  } else { 
    echo 
"


//Langer HTML-Code mit PHP-Variablen für unangemeldete User (Loginbereich)



"

    } 

?>

Danke!

LG Aceh
Aceh ist offline   Mit Zitat antworten
Alt 07.07.2011, 14:37  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Deine navi-links.php verwendet POST Daten wo eventuell gar keine sind!
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 07.07.2011, 14:53  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$name $_POST["name"]; 
$password = ($_POST["password"]); 
$name $_SESSION["name"]; 
$password $_SESSION["password"]; 
Was soll denn das bewirken?!

Und wo überprüfst du denn bitte das Passwort?

Und warum eigentlich ein Like beim Usernamen?


--> Grundlagen
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 08.07.2011, 07:43  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard

PHP-Code:
$name $_SESSION["name"]; 
$password $_SESSION["password"]; 
Soll bewirken, dass name und password im SESSION gestartet wird.

---------------------------------

PHP-Code:
$name $_POST["name"]; 
$password = ($_POST["password"]); 
Soll bewirken, dass die Login-Dateien dahin gepostet werden.


------------------------------------------

PHP-Code:
} else {  
    echo 



//Langer HTML-Code mit PHP-Variablen für unangemeldete User (Loginbereich) 



"
;  
    }  

?> 
Bei diesem Code-Schnippsel ist der Login-Bereich, also das Loginfeld versteckt.
Aceh ist offline   Mit Zitat antworten
Alt 08.07.2011, 11:12  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Zitat:
Zitat von Aceh Beitrag anzeigen
PHP-Code:
$name $_SESSION["name"]; 
$password $_SESSION["password"]; 
Soll bewirken, dass name und password im SESSION gestartet wird.

---------------------------------
PHP-Code:
$name $_POST["name"]; 
$password = ($_POST["password"]); 
Soll bewirken, dass die Login-Dateien dahin gepostet werden.
Das sind nur Variablenzuweisungen... gestartet/gepostet wird da nichts.

Bei der Variablenzuweisung wird ein vorhandener Wert auf ein (noch nicht vorhandene) Variable gelegt.

Du musst als Programmierer dafür sorgen, das eine Variablenzuweisung Sinn macht, d.h. du musst das Vorhandensein der Quellvariablen sicher stellen.
Zugriff auf etwas nicht vorhandenes meckert PHP bei entsprechend eingestelltem error_reporting auch an.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 14.07.2011, 22:44  
Erfahrener Benutzer
 
Benutzerbild von Aceh
 
Registriert seit: 01.03.2011
Beiträge: 120
PHP-Kenntnisse:
Anfänger
Aceh befindet sich auf einem aufstrebenden Ast
Aceh eine Nachricht über ICQ schicken
Standard

... Habe da ein wenig was verändert und es scheint fast zu klappen.
Das mit dem geschützten Bereich habe ich mit einer anderen Kombination gemacht.



Nun zu meinem Nächsten Problem:
warum kann sich NUR die Person (ich) mit der ID 1 einloggen und die anderen nicht?

also:
ID: 1 | name: ich | password: fragmichnicht | -> Kann sich einloggen
ID: 2 | name: test | password: sonstwas | -> Kann sich nicht einloggen
ID: 3 | name: sonstwer | password: keinplan | -> Kann sich nicht einloggen
......
Warum ist das so?



PHP-Code:
<?php  
$verbindung 
mysql_connect("Server""Name""Passwort")  
or die(
"Verbindung zur Datenbank konnte nicht hergestellt werden");  
mysql_select_db("Datenbank") or die ("Datenbank konnte nicht ausgewählt werden");  

$name $_POST["name"];  
$password = ($_POST["password"]);  
$name $_SESSION["name"];  
$password $_SESSION["password"];  


$abfrage 'SELECT * FROM `login`';
$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis);


if(
$row->password == $password && $row->name == $name)  
    { 
    
$_SESSION["name"] = $name
    
$_SESSION["password"] = $password;  
    echo 


//Langer HTML-Code mit PHP-Variablen für angemeldete User (geschützter Bereich) 

    "

  } else {  
    echo 



//Langer HTML-Code mit PHP-Variablen für unangemeldete User (Loginbereich) 



"
;  
    }  

?>

EDIT: achso, das mit dem POST_ ist drin, damit die Logindateien von der HTML (input usw.) dorthin aufgenommen werden.
Aceh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mit 2 passwörtern geschützter bereich script versuch Kablion PHP Einsteiger 15 30.11.2010 14:47
[BASH]Verzeichnis-Struktur in form von Symlinks für Dateien kopieren ? robo47 Off-Topic Diskussionen 4 17.09.2010 22:01
[Erledigt] ZipArchive: Vorhandene Dateien beim entpacken überschreiben? deMaddin PHP Tipps 2009 6 16.11.2009 19:28
[Erledigt] Ist der Login Bereich wirklich sicher? sliver2203 PHP Tipps 2009 11 08.10.2009 17:25
php Dateien erstellen/auslesen bearbeiten und speicher largo PHP Tipps 2009 7 30.09.2009 10:10
Backup-Funktion, nur veränderte Dateien erfassen @lex PHP Tipps 2009 5 18.08.2009 15:11
[Erledigt] Alle Dateien eines Ordner und aller Unterordner aufrufen und die Größe ber BartTheDevil89 PHP Tipps 2008 6 12.08.2008 19:17
Dateien im loginpflichtigen Bereich verschlüsseln Timer PHP Tipps 2008 1 28.07.2008 23:07
PHP Dateien verschlüsseln GSJLink PHP-Fortgeschrittene 2 26.04.2008 12:29
[Logik] Mehrere Dateien als Anhang per Formular versenden PsychoEagle PHP Tipps 2008 2 27.08.2007 08:58
Bereich um einen float left und float right Bereich andrew22 HTML, Usability und Barrierefreiheit 8 27.02.2007 18:27
[Erledigt] PDF Dateien aus geschützter Session Datenbanken 0 18.08.2005 11:52
[Erledigt] Nur bestimmte Dateien anzeigen, wie mache ich das HILFE PHP Tipps 2005 4 02.04.2005 22:38
[Erledigt] Zugriff auf Dateien im passwortgeschützten Bereich PHP Tipps 2005 15 16.03.2005 17:50
[Erledigt] Dateien aus Verzeichnissen vom Webserver auslesen und linken PHP Tipps 2004 3 08.09.2004 10:07

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php geschützter bereich, php geschützer bereich, geschützter bereich php, php geschützten bereich, php login geschützter bereich, html php geschützter bereich, user geschützter bereich php, passwort geschütztenbereich per php uslesen, php geschützte variabeln, links2 user password, php in datei schreiben geschützter bereich, php includierte datei in geschütztem verzeichnis, mehrere name und passwort in php code, php alle includierte files anzeigen, password geschützter bereich php 2011, daten geschützter bereich, php html passwort gesicherter bereich, php wenn eingeloggt nicht auf andere user daten zugreifen, php login index code, from login where name like

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum