login weiterleitung

  • Hallo,

    Mein bissheriges Script:

    Nun steht dort aber auch:

    PHP
    include("admin.php");

    Kann ich es irgendwie so umschreiben, das beim klicken der Logintaste, die admin.php in einem neuen Fenster oder Tab geöffnet wird?
    D.h. Ich gebe BN und PW an, drücke OK und werte in die Admin.php weitergeleitet.
    Ist das möglich?

    Mfg
    Ace

  • Solange es nur eine Weiterleitung ist, funktioniert das ganze über das Attribut ' action="" ' im HTML Formular. Dabei wird aber im gleichen Fenster umgeleitet. Für ein neues Tab musst du einen Großen Zauber machen der mein Level übersteigt. Warte da dann einfach auf einen der 1337 h3x0r Zauberer.

  • Ja, nur prüft der nun iwie nicht mehr, ob auch der User in $user und $pass steht. D.h. ich kann iwas eingeben und komme zum Admin bereich.

    code:

  • Aber wie sicherst du deine Datei überhaupt wenn jemand zb "http://deinseseite.de/admin.php" aufruft? Gar nicht?

    mfg

  • Das Formular geht direkt nach admin.php. Dein PHP-Code wird überhaupt nicht verwendet. Ersetzt 'action="admin.php"' durch 'action=""', sodass das aktuelle Script verwendet wird. admin.php sollte in keinem Fall aufrufbar sein. Außerdem solltest du Sessions verwenden.

  • Das Formular geht direkt nach admin.php. Dein PHP-Code wird überhaupt nicht verwendet. Ersetzt 'action="admin.php"' durch 'action=""', sodass das aktuelle Script verwendet wird. admin.php sollte in keinem Fall aufrufbar sein. Außerdem solltest du Sessions verwenden.

    Ich bin quasi noch anfänger in PHP. D.H Sessions sagt mir noch recht wenig. Wie sollte ich denn das sonst gestalten mit dem "admin.php" das es nicht aufrufbar ist?

  • Update vllt nimmst ja etz mal meinen code

    index.php

    admin.php

    Code
    <? session_start(); if($_SESSION['login']!=2) die ("Kein Zugriff"); ?>  der rest der seite

    4 Mal editiert, zuletzt von Pion (20. Mai 2009 um 23:20)

  • @Pion
    Das mit dem Outputbuffering ist da aber nicht so geschickt.
    Lieber so:

    Ist doch viel unkomplizierter, kein unnötiger Output.

  • Vllt hast meinen beitrag noch nicht gesehen, hab ihn geändert, nun kann man die admin.php nur noch aufrufen wenn man sich eingeloogt hat, pro browser aufruf muss man sich neu einloogen

    mysql_connect kannst du in admin sparen, weil du noch ne offene verbindung von der index hast

    EDIT :

    User du hast recht , ich mach es aber immer mit Buffer :D

    @ treadstarter

    du musst noch ein session_start();

    Auf der admin.php hinzufügen, vergass ich , habs editiert


    mfg

  • Zitat

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/shinu/www/clan/php/admin.php:20) in /users/shinu/www/clan/php/admin.php on line 28

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/shinu/www/clan/php/admin.php:20) in /users/shinu/www/clan/php/admin.php on line 28
    Kein Zugriff

    Update.

    mfg
    ace

  • @Pion
    Das muss man jetzt nicht verstehen, oder? :D
    Ich habe auch immer Buffering. Einmal zur Verarbeitung im Template und einmal für FirePHP. Das macht es einfach. Dennoch gebe ich nicht sinnlos Text aus.

    Ace <3st
    Was sollen immer diese dämlichen Tabellen bei deinen Formularen? Formulare brauchen keine Tabellen.

  • Ace <3st leerzeichen vor session_start entfernen ;)

    The User, nun ja ich arbeit nur mit meinen CMS System und da wird eben Bufferung verwendet, bzw puffer ich den Content, um nachträglich was einzupflanzen (nicht wegen sinnlosen tpls)

    Nachteile am Buffer hab ich noch nicht festgestellt

    zu den Tabellen, versteh ich , er stellt eben die Formulare Tabelarisch da also ist das in Ordnung, ich machs auch so zb

  • Sinnlose Templates? Du hast doch auch Templates? Naja egal.
    Buffering ist ja praktisch und sinnvoll, sinnlos ist es jedoch, Sachen auszugeben und location: zu senden. Mach niemals Dinge, ohne dass sie für Features oder Flexibilität sorgen. :D

  • Hä spinn ich jetzt, zeig doch mal beides Codes, verwendest du nun meinen oder seinen ? :D

    Zeig mal index.php und admin.php wie du es nun hast

    @ The User, ich finde es Schwachsinn hoch 10 das man zb wie bei Smarty eine quasi eigene Sprache erlernen muss (Platzhlater / Platzhaltersystem)
    Dann kann man auch gleich folgendes lernen <?= PLATHALTER ?> <= schneller + flexibler + eine Sprache

  • index.php

    admin.php

    Könnte mir nebenbei noch jemand folgendes erklären:

    PHP
    <?session_start(); if($_SESSION['login']!=2) die ("Kein Zugriff"); ?>
  • Ace <3st du darfst vor session_start(); keine Ausgabe kommen sprich session_start(); steht gaaaaaaaaaaaaaaanz oben ;)

    admin.php versteh ich eh net was das bringen soll aber naja gut^^

    also  <?session_start(); if($_SESSION["login"]!=2) die ("Kein Zugriff"); ?> bedeutet

    Sessionstart greift auf alle aktivien session zu, session ist quasi einfach eine variable die auf allen dokumenten die Sessionstart am anfang stehen hat vorhanden sit (klar net richtig erklärt aber halt damit du es verstehst)

    die iff sollte ja kein Problem sein? die <= bricht das script mit der fehlermeldung zwischen den " ab sprich es bricht ab wenn session login ungleich 2 ist und ja normal exxistiert die session ja nicht ,sondern erst wenn du sie beim erfolgreichen login erstellst und mit dem wert 2

    mfg

    Einmal editiert, zuletzt von Pion (20. Mai 2009 um 23:34)

  • @Pion
    Ich verwende zwar kein Smarty, aber Smarty ist definitiv nicht langsamer als PHP. Aber auch dein PHP-Kram sind ja Templates. Hängt natürlich von der Struktur ab, evtl. packst du da auch viel von der Funktionalität rein.