Problem mit Variablen

  • Hi

    Ich schaffe es einfach nicht in den geschützten Bereich zu gelangen.

    Könnte mir bitte jemand den Code hier überprüfen?

    Der Fehler liegt vermutlich entweder an action=\"".$_SERVER['PHP_SELF']."?$user=$setuser&$pw=$setpw\" oder an if (!isset($pw, $user)) {.

    LG
    Shyne

  • irgend wie fehlt da etwas code oder? ird ja nirgends gepfürt ob ps richtig sind...

    zu dem ist es unsicher pws als get zu transportieren.
    das mit der session, post und dem $sesuser, $sespw raffe ich auch nicht..

    alles im allen macht dieser code keinerlei sinn und schaut noch nicht mal hübsch aus.

  • GreenRover ist ja auch längst nicht fertig :)

    Ich möchte nur wissen, wie ich die folgende Abfrage umgehen kann: if (!isset($pw, $user)) {

    Zitat von GreenRover

    zu dem ist es unsicher pws als get zu transportieren.


    Das ist wahr. Aber ich weiss halt nicht wie ich die Variablen sonst übermitteln kann.

  • Hi!

    Zitat

    <form action=\"".$_SERVER['PHP_SELF']."?$user=$setuser&$pw=$setpw\" method=\"post\">


    macht keinen Sinn!
    Beim Übergeben der Variablen hast du zwei Möglichkeiten:
    Entweder du übergibst sie mit "GET" oder du verwendest "POST":
    Bei "GET" würde dein form-tag so aussehen:

    Code
    <form action=\"".$_SERVER['PHP_SELF']."\" method=\"get\">


    Bei "POST" so

    Code
    <form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">


    Auf der folgenden Seite stehen dir dann je nach Auswahl die Variablen $_GET[''] oder $_POST[''] zur Verfügung. Die Abfrage wäre also:

    Code
    if (!isset($_GET['pw'], $_GET['name']))


    bzw.

    Code
    if (!isset($_POST['pw'], $_POST['name']))


    LG nif7

  • NIF7 vielen Dank für die hilfreiche Antwort!

    Ich habe so ein ähnliches Script mal im Net gefunden. Anhand dieses Script hab ich versucht mein eigenes zu erstellen.

    Das Original sieht so aus:


    Nun, hier wird ja auch if (isset($user, $pw)) verwendet und funktionieren tut es ja auch.

  • Hier sind ja auch einige Kleinigkeiten anders:

    Zitat

    $user = $_POST['user'];
    $pw = $_POST['pw'];

    Zitat

    echo '<form name="login" method="post" action="'.$_SERVER['PHP_SELF'].'">

    Zitat

    User Name: <input type="text" name="user">

  • Yep ... hast du recht.

    Also ich hab mein Script jetzt auch einige Massen verbessert.


    Villeicht fällt euch was dazu ein. Und Kritik kann ich immer gebrauchen :)
    Ausserdem arbeite ich noch nicht lange mit PHP, deshalb kann ich Fehler nur schwer erkennen.


    Nun, was hierbei noch fehlen, sind die Sessions. Wenn ich ehrlich bin, hab ich sehr wenig Ahnung davon.

    Deswegen möchte ich vorher noch ein Bisschen üben. Das Beispiel von dieser Seite habe ich ausprobiert. Funktioniert jedoch bei mir nicht so, wie es sollte.
    Ich erhalte folgende Ausgabe:

    Zitat

    Willkommen auf Seite 2


    01.01.1970 01:00:00

    Zum Anfang


    Woran liegt das?

  • Hi,

    warum gibst du soviel HTML-Code per echo aus? Außerdem würde ich in dem echo ' anstatt der \" benutzen. Aber viel wichtiger: google füttern mit

    $_SERVER['PHP_SELF'] xss

    gruß
    bandit

  • Zitat von bandit600

    warum gibst du soviel HTML-Code per echo aus?


    Weil der gesammter Code, Zweck dieser Abfrage ist: if (!isset($_POST['name'], $_POST['pw'])) {

    Zitat von bandit600

    Aber viel wichtiger: google füttern mit

    $_SERVER['PHP_SELF'] xss


    Soll ich besser stattdessen $_SERVER['SCRIPT_NAME']; benutzen?
    Hat mir zumindest Google gesagt :)

  • Hi

    Zitat von Shyne

    Weil der gesammter Code, Zweck dieser Abfrage ist: if (!isset($_POST['name'], $_POST['pw'])) {

    Zitat

    Soll ich besser stattdessen $_SERVER['SCRIPT_NAME']; benutzen?
    Hat mir zumindest Google gesagt :)


    Wenn du das per google so gefunden hast, wird da wohl was dran sein. Ich schreibe zumindest schon lange $_SERVER['SCRIPT_NAME']

    Gruß
    bandit

  • An dem script in dem tutorial ist nichts auszusetzen, dass müsste so funktionieren. Noch ein tipp: schreibe an den anfang deines scriptes die Zeilen

    Code
    error_reporting(E_ALL);
    init_set("display_errors", true);


    und beseitige dann alle Notice-Meldungen, die du bei deinem script dann massenhaft bekommst.

    Gruß
    bandit

  • Hmm ... dann bekomme ich aber ne Fehlmeldung:

    Zitat

    Fatal error: Call to undefined function: init_set() in ... on line 4

    Zitat von bandit600

    An dem script in dem tutorial ist nichts auszusetzen, dass müsste so funktionieren.


    Tut es aber nicht. Kann es sein dass mein Provider die Session-Funktion nicht freigibt oder so was in der Art?

  • Ups, das heißt ini_set und nicht init_set. Baue diese zeilen auch in dein testscript ein, vielleicht sagt dir php was dazu.

    Und wieso testet du direkt bei deinem provider? warum hast du keine entwicklungsumgebung auf deinem rechner?

    Gruß
    bandit

  • Ahso alles klar, bekomme folgende Notices. Villeicht sagen sie dir was:

    Zitat

    Notice: Undefined index: vorname in ... on line 9


    Notice: Undefined index: alter in ... on line 10


    Notice: Undefined index: zeit in ... on line 11

    Zitat von bandit600

    Und wieso testet du direkt bei deinem provider? warum hast du keine entwicklungsumgebung auf deinem rechner?


    Nee, wusste gar nicht dass es sowas gibt :)

  • Hi,
    klar sagen mir diese meldungen was. Aber wie ich vorhin entdeckt habe, ist dir in einem anderen forum schon gesagt worden, dass du die grundlagen lernen sollst. Anstatt dich an diesen durchaus intelligenten rat zu halten, hast du ja lieber rumgemeckert. Auch ich bin durchaus der meinung, dass dir die nötigisten grundlagen bzgl. php fehlen, ohne diese geht es aber nicht.

    Ich habe das script aus dem tutorial gerade getestet, es funktioniert einwandfrei. Entweder hast du da was dran verändert oder session funktionieren auf dem server nicht, was ich mir aber nicht vorstellen kann. Da wirst du wohl was falsch gemacht haben.

    Für deinen rechner: xampp von http://www.apachefriends.de

    Gruß
    bandit

  • Zitat von bandit600

    Hi,
    klar sagen mir diese meldungen was. Aber wie ich vorhin entdeckt habe, ist dir in einem anderen forum schon gesagt worden, dass du die grundlagen lernen sollst. Anstatt dich an diesen durchaus intelligenten rat zu halten, hast du ja lieber rumgemeckert. Auch ich bin durchaus der meinung, dass dir die nötigisten grundlagen bzgl. php fehlen, ohne diese geht es aber nicht.


    Doch, geht es wohl! Denn schliesslich hab ich ja mein Ziel erreicht. Und ich sehe es als reine Übung ein. Manche lernen durch lesen, ich lerne durch experimentieren. Nicht nur im PHP, sondern auch reichlich in anderen Sprachen. Diese Methode brachte mir bessere Erfolge und schnelleres Lernen. Also warum sollte ich darauf verzichten? Nur weil sich manche zu gut sind um hilfreich zu sein?

    Zitat von bandit600


    Ich habe das script aus dem tutorial gerade getestet, es funktioniert einwandfrei. Entweder hast du da was dran verändert oder session funktionieren auf dem server nicht, was ich mir aber nicht vorstellen kann. Da wirst du wohl was falsch gemacht haben.


    Das Problem hat sich erlediegt.

  • Zitat

    Nur weil sich manche zu gut sind um hilfreich zu sein?


    Einspruch, euer ehren. ich lese in diesem forum sehr viel und habe dort auch viel gelernt. Die leute dort haben schon richtig was drauf, ich kenne kein besseres deutschsprachiges php-forum. Ich kann die leute dort gut verstehen, denn wenn der tausendste Parse-Error oder fragen zu den grundlagen kommen, dann nervt das irgendwann ungemein. Auch wenn der ton nicht immer der beste ist, aber recht haben sie in den meisten fällen.

    Gruß
    bandit

  • Ihre guten Kenntnisse und schlechte Laune interessiert mich nicht.
    Wem die Frage nicht gefällt, soll wegschauen oder im schlimmsten Fall den Thread löschen. Wer helfen will, hilft bei jedem Problem und nicht nur bei Problemen, die am schönsten aussehen.

    Es gibt gewisse "Helfer", die im Wirklichkeit gar nicht helfen wollen, sondern hauptsächlich nur ihre Kenntnisse unter Beweis stellen möchten.

    Ich helfe selber seit Jahren für andere Sprachen und unterscheide die Fragen / Problemen nicht von einander. Zumindest brauch ich mich nicht für jedes kleine Etwas aufzuregen - und schon gar nicht wenn sie nicht meine Probleme sind. Ich denke ein Bisschen Toleranz gehört halt nun mal dazu. Nett dass du sie verteidigen oder halt deine Meinung loswerden möchtest aber ich denke nicht dass es notwendig ist, mir zu sagen wie sie ticken. Es ist viel mehr ne Sache von Persönlichkeit und Charakter.

    Aber auf solche Kommentare und solche Leute kann ich echt verzichten.
    Interessiert mich ehrlich gesagt auch gar nicht. Ich hab ja mein Account schon von dort gelöscht.

    LG
    Shyne