SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 21.12.2003, 03:56:24
db_user db_user ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 8
login funktioniert nicht

Ich möchte, dass Html-Dateien nur aufgerufen werden, wenn der user eingeloggt ist. Hab nach einem Tutorial (von Mr. Happiness) die Scripte gecodet und der Eintrag der user klappt bestens. Beim Aufruf der zu schützenden Seiten möchte ich, dass nicht eingeloggte user wieder auf die login-seite verwiesen werden, aber genau das klappt nicht. Die Seiten können aufgerufen werden trotz session. In den Html-Seiten steht folgendes an 1. Stelle:

PHP-Code:
php session_start(); 
if(
logged_in()){ 
include 
'sessionhelpers.inc.php';} 
else { 
die(
'Sie sind nicht eingeloggt.'); 
include 
'http://www.xxx.com/login.php'

Ich size jetzt seit 2 Tagen fast ununterbrochen vor der Kiste und krieg noch nen Schreikrampf. Das kann doch nur noch ne Kleinigkeit sein, oder?
Thx im voraus
Mit Zitat antworten
  #2  
Alt 21.12.2003, 06:35:43
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: login funktioniert nicht

Zitat:
Original geschrieben von db_user
Die Seiten können aufgerufen werden trotz session. In den Html-Seiten steht folgendes an 1. Stelle:
1. Werden auf Deiner Kiste HTML Seiten mit PHP geparst?
2. Wie übergibst Du die PHP-Session Variable an die Folgeseiten?
3. Was treibt Dein logged_in() eigentlich?
Mit Zitat antworten
  #3  
Alt 21.12.2003, 07:13:13
db_user db_user ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 8
Zur Zeit blick ich nix mehr, wieso html mit php geparst?
Bin Anfänger und weis nicht mehr weiter. Bin für jede Hilfe dankbar.


PHP-Code:
function login($userid

    
$sql="UPDATE users 
    SET UserSession='"
.session_id()."' 
    WHERE userId="
.$userid
     
mysql_query($sql); 

Mit Zitat antworten
  #4  
Alt 21.12.2003, 08:43:32
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
Für ein Login-System sollteste vielleicht PEAR::Auth verwenden. Siehe auch: Ein Loginsystem von tut.php-q.net.
__________________
PHP-Tutorial - PHP-FAQ - PHP-Manual
HTMLWiki
Mit Zitat antworten
  #5  
Alt 21.12.2003, 09:17:58
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von db_user
[B]Zur Zeit blick ich nix mehr, wieso html mit php geparst?
Du hattest geschrieben, daß Du in Deine *HTML* Seiten oben PHP Quelltext reinschreibst ("In den Html-Seiten steht folgendes an 1. Stelle"). Das ist dem Apachen im Prinzip völlig schnuppe, weil er bei der *üblichen* Konfiguration nur solche Files an PHP weiterreicht, die die Fileextension .php haben.

Im Weiteren frage ich mich bei "if(logged_in()){ ", woher PHP die Funktion logged_in() kennt, denn um die Funktion, die nicht zu den Standard PHP Funktionen gehört, zu kennen, muß vorher das PHP-File, in dem die Funktion deklariert wurde, per include oder require eingefügt werden. Eigentlich meckert PHP bei solchen Fehlern ganz böse, aber man kann PHP auch so verkonfigurieren, daß es alles schluckt.

PHP-Code:
Bin Anfänger und weis nicht mehr weiterBin für jede Hilfe dankbar
Das wird schwer werden, weil ich kein Hellseher bin. Das, was Du bisher aus Deinen Quelltexten zitiert hattest, ist zuwenig.

Zitat:
PHP-Code:
function login($userid

    
$sql="UPDATE users 
    SET UserSession='"
.session_id()."' 
    WHERE userId="
.$userid
     
mysql_query($sql); 

Wenn Du hier keine "automatische Verfallszeit" für die Session mit einbaust, bleibt der User so lange eingelogt, bis der Rechner kaputtgeht.

Geändert von meikel (†) (21.12.2003 um 09:28:12 Uhr)
Mit Zitat antworten
  #6  
Alt 21.12.2003, 09:27:01
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von Progman
Siehe auch: Ein Loginsystem von tut.php-q.net.
Nicht schlecht, Herr Progman! Nur das Logout solltest Du noch korrigieren:
PHP-Code:
# angemeldet und möglichst vor dem HTML content
if (isset($_REQUEST['action'] ) AND $_REQUEST['action'] == 'logout')
{
  
session_destroy(); # <---
  
$url 'http://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
  if (!
headers_sent())
  {
   
header ("Location: $url");
   exit;
  }
  
printf('<a href="%s">KLICK!</a>'$url);

Je nach Konfiguration funktioniert Auth nämlich auch mit Keksen.
Mit Zitat antworten
  #7  
Alt 21.12.2003, 10:52:22
db_user db_user ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 8
egal, was ich in die html-seiten reinschreibe, er zeigt sie an, wie kann ich die "normale" Konfiguration dementsprechend ändern?

siehe:

"Du hattest geschrieben, daß Du in Deine *HTML* Seiten oben PHP Quelltext reinschreibst ("In den Html-Seiten steht folgendes an 1. Stelle"). Das ist dem Apachen im Prinzip völlig schnuppe, weil er bei der *üblichen* Konfiguration nur solche Files an PHP weiterreicht, die die Fileextension .php haben."

Geändert von db_user (21.12.2003 um 11:04:06 Uhr)
Mit Zitat antworten
  #8  
Alt 21.12.2003, 11:01:01
db_user db_user ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 8
Hier mal die php-files


PHP-Code:
login.php
<? 
session_start();
include 'sessionhelpers.inc.php'; 
if (isset($HTTP_POST_VARS['login'])) 

    $userid=check_user($HTTP_POST_VARS['identnr'], $HTTP_POST_VARS['pwd']); 
    if ($userid!=false) 
        login($userid); 
    else 
        echo 'Ihre Anmeldedaten waren nicht korrekt!'; 

if (!logged_in()) 
    echo '<form method="post" action="login.php"> 
        <label>ID-Nummer.:</label><input name="identnr" type="text"><br> 
        <label>Passwort: </label><input name="pwd" type="password" id="pwd"><br> 
        <input name="login" type="submit" id="login" value="Einloggen"> 
    </form>'; 
else 
    echo '<a href="logout.php">Ausloggen</a>'; 
echo '<p /><a href="inhalt/index.html">start</a>'; 
?> 


logout.php
<? 
session_start(); 
include 'sessionhelpers.inc.php'; 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.<p />'; 
logout(); 
echo 'Sie sind '; 
if (!logged_in()) 
    echo 'nicht '; 
echo 'eingeloggt.< p/>'; 
echo '<a href="login.php">Einloggen</a>'; 
?> 



sessionhelper.inc.php
<? 
function connect() 

    $con= mysql_connect('xxx','xxx','poppen69') or die(mysql_error()); 
     mysql_select_db('xxx',$con) or die(mysql_error()); 


function check_user($identnr, $pwd) 

    $sql="SELECT UserId 
    FROM users 
    WHERE identnr='".$identnr."' AND pwd=MD5('".$pwd."') 
    LIMIT 1"; 
    $result= mysql_query($sql) or die(mysql_error()); 
    if ( mysql_num_rows($result)==1) 
    { 
        $user=mysql_fetch_assoc($result); 
        return $user['UserId']; 
    } 
    else 
        return false; 


function login($userid) 

    $sql="UPDATE users 
    SET UserSession='".session_id()."' 
    WHERE userId=".$userid; 
     mysql_query($sql); 


function logged_in() 

    $sql="SELECT UserId 
    FROM users 
    WHERE UserSession='".session_id()."' 
    LIMIT 1"; 
    $result= mysql_query($sql); 
      return ( mysql_num_rows($result)==1); 


function logout() 

    $sql="UPDATE users 
    SET UserSession=NULL 
    WHERE UserSession='".session_id()."'"; 
     mysql_query($sql); 


connect(); 
?>
Mit Zitat antworten
  #9  
Alt 21.12.2003, 11:34:24
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von db_user
egal, was ich in die html-seiten reinschreibe, er zeigt sie an, wie kann ich die "normale" Konfiguration dementsprechend ändern?
Einfach mal das Handbuch lesen:
http://www.dclp-faq.de/q/q-apache-parsen.html
Mit Zitat antworten
  #10  
Alt 21.12.2003, 11:37:00
db_user db_user ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 8
Hab den grundsätzlichen Fehler, habe webspace bei 1und1, die php-Konfiguration lässt sich nicht ändern, sodass die "Sicherheits-Scripte"nicht aufgerufen werden. Werde jetzt die html-seiten auf php umschreiben.

Welchen Provider würdet Ihr empfehlen? In der Ausbaustufe soll das ganze mal ein CMS-System werden, in dem registrierte user Dateien und kleine Videos downloaden können, Infos abrufen und kleine personalisierte Homepages erstellen können.Der Anbieter sollte kein kleiner sein.

thx
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:16:53 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt