Ankündigung

Einklappen
Keine Ankündigung bisher.

Session Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session Problem

    Hallo habe ein Problem mit einem Loginsystem.
    In unserem Script soll sich ein Redakteur durch ein Loginsystem in den Redaktionsrbereich einwählen können.
    Die Redakteure sind mit Name und Passwort in der Datenbank vermerkt.
    Nun wollen wir mit 3 scripten die Session starten, den Namen und das Passwort vergleichen und auf das Redaktionsmenü verlinken.
    Das Problem ist nun das es nicht funktioniert. Wir bekommen keine Fehlermeldung sondern nur einen Weißen Bildschirm.
    Wir haben auch durch echos zu testen wie weit das Script läuft, jedoch bekamen wir auch so eine leere Seite.

    Login_check.php:

    PHP-Code:
    <?php
    //Logindaten ueberpruefen
    echo "test";
    include(
    "/var/www/12IV/Gruppe_JJS/verbindungsdaten.inc");
    {
     
    $p_verbindungskennung=mysql_connect($db_server,$db_user,$db_passwort);
    if(!
    $p_verbindungskennung)
        die(
    "Der Server kann nicht erreicht werden.");
    if(!
    mysql_select_db($db_name,$p_verbindungskennung))
        die(
    "Die Datenbank kann nicht angesprochen werden.");
    return 
    $p_verbindungskennung;
    }
    $nickname=$_POST['redakteur'];
    $passwort=$_POST['passwort'];

        
        
    $query="select nickname
            from redakteur
            where nickname=
    $nickname";

        
    $real_name=mysql_query($query$verbindungskennung);


        
        
    $query1="select passwort            
            from redakteur
            where nickname=
    $nickname";

        
    $real_passwort=mysql_query($query1$verbindungskennung);

    if
        (
    $nickname==$real_name && $passwort==$real_passwort)
    {
        


    //eine Session wird gestartet und
    //der Name des Redakteurs wird gespeichert

    session_start();
    $_SESSION['redakteur']=$nickname;

    //umleiten zur Seite redaktions_menue.php
    header('Location: ./redaktions_menue.php');
    }
    else
    {
    //die Login-Seite wird mit der Information, dass der Login
    //abgewiesen wurde, erneut aufgerufen
    header('Location: ./redaktions_login.php?abgewiesen=true');
    }
    ?>
    Session:

    PHP-Code:
    <?php
    //die Include-Datei session.inc.php wird von jeder
    //Redaktionsseite eingebunden

        
    session_start();

    // falls die Seite ohne Login aufgerufen wurde, wird die 
    // Session abgebrochen
        
        
    if (empty($_SESSION ['redakteur']))
    {
        
    session_destroy();
        die (
    "Bitte melden Sie sich zunächst an.");
    }
    ?>
    Redaktions_login.php

    PHP-Code:
    <html>
    <head><title>Redaktionsbereich Schwarzes Web-Brett</title></head>
    <body>
    <?php
    // wurde ein Login-Versuch abgewiesen?
        
    if ($_GET['abgewiesen']=='true')
            echo 
    "Anmeldung fehlgeschlagen!<br><br>";
        
    ?>
        
        <b>Login Redaktionsbereich</br><br><br>
        <form action="./login_check.php" method="post">
            Redakteur: <input type="text" name="redakteur"><br>
            Passwort: <input type="password" name="passwort"><br>
            <input type="submit" value="Login">
        </form>
        </body>
        </html>

    Ich hoffe ihr könnt mir helfen. Danke schon einmal im Voraus.


  • #2
    session_start() gaaaaaaaaaanz oben an den Anfang und error reporting anmachen.


    grüße
    I like cooking my family and my pets.
    Use commas. Don't be a psycho.
    Blog - CoverflowJS

    Kommentar


    • #3
      Wenn Ihr selbst bei echos eine weiße Seite bekommt ist ein Syntax-Fehler vorhanden.
      Meistens hervorgerufen durch ein fehlendes Semikolon.

      Schalte den Error-Report an, um Fehler ausgeben zu lassen!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Wir haben Fehler provoziert die auch so von PHP erkannt werden. Das ist anscheinend an oder gibt es noch eine Erweiterung für die Fehlerausgabe?
        Habt ihr vll einen groben Denkfehler gefunden oder auch was syntaktisches.

        Kommentar


        • #5
          PHP-Code:
          <?php
          //Logindaten ueberpruefen
          echo "test";
          Wird test ausgegeben oder nicht?!
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            Nein

            Kommentar


            • #7
              Dann besteht auf jeden Fall ein Syntaxfehler!
              PHP-Code:
              error_reporting(-1);
              ini_set('display_errors',true); 
              ganz an den Anfang bitte!
              Was kommt dann dabei raus?


              EDIT:
              PHP-Code:
              {
              $p_verbindungskennung=mysql_connect($db_server,$db_user,$db_passwort);
              if(!
              $p_verbindungskennung)
                  die(
              "Der Server kann nicht erreicht werden.");
              if(!
              mysql_select_db($db_name,$p_verbindungskennung))
                  die(
              "Die Datenbank kann nicht angesprochen werden.");
              return 
              $p_verbindungskennung;

              1. Was soll das?
              2. Wo wird das return abgefangen? Du befindest Dich dort in keiner Funktion oder täusche ich mich jetzt...?
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Wir bekommen trotzdem eine weiße Seite.
                Liegt das vll an den Sessions? Ich glaube das dort der Fehler liegt aber ich weiß nicht wie die richtige Form aussieht.

                Kommentar


                • #9
                  Zitat von GrafCoxX100 Beitrag anzeigen
                  PHP-Code:
                  <?php
                  //Logindaten ueberpruefen
                  echo "test";
                  include(
                  "/var/www/12IV/Gruppe_JJS/verbindungsdaten.inc");
                  {
                  ...
                  }
                  Was soll das bitte? Ich glaub, dass ich das einfach net verstehe...
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar


                  • #10
                    Also, wie rudygotya so schön dezent angemerkt hat:
                    session_start() gaaaaaaaaaanz oben an den Anfang


                    Und dann könntest Du vor dem header zum Redaktions-Menü noch die Sitzungsdaten speichern:
                    PHP-Code:
                    session_write_close();
                    header('Location: ./redaktions_menue.php'); 

                    @Paul:
                    Sinnvoll finde ich das auch nicht, würde aber funktionieren.
                    Alles was Du innerhalb des Blocks deklarierst(z.B. Variablen) sind außerhalb nicht gültig.
                    Mich irretiert das return mit Rückgabewert da drin
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Meinst du vlt sowas?

                      PHP-Code:
                      <?php
                      function getVerbindungsKennung() { 
                          include_once(
                      "/var/www/12IV/Gruppe_JJS/verbindungsdaten.inc"); 
                          
                      $p_verbindungskennung=mysql_connect($db_server,$db_user,$db_passwort) OR die("Der Server kann nicht erreicht werden."); 
                          
                      mysql_select_db($db_name,$p_verbindungskennung) OR die("Die Datenbank kann nicht angesprochen werden.");
                          
                          return 
                      $p_verbindungskennung;
                      }
                      Wolltest du sowas in der Art machen?
                      "My software never has bugs, it just develops random features."
                      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                      Kommentar


                      • #12
                        Dann würde er irgendwo im Script ja diese Funktion aufrufen wollen.
                        Und das hätte ihm bei eingeschaltetem Error-Report auf jeden Fall eine Meldung ausgegeben...
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Alles was Du innerhalb des Blocks deklarierst(z.B. Variablen) sind außerhalb nicht gültig.
                          Stimmt nicht.

                          Wortlose "Whitescreens" trotz error reporting kommen meist von mangelhaften DB-Verbindungen. Da würde ich ansetzen.
                          --

                          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                          --

                          Kommentar


                          • #14
                            das Problem is glaube ich ein fach das er den Funktionsnamen vergessen hat...

                            So sieht das bei ihm aus
                            Code:
                            include ('...');
                            {
                            ...
                            }
                            Da fehlt doch einfach was... Hab so ne Syntax noch nie gesehn... Bin ja aber auch noch jung!
                            "My software never has bugs, it just develops random features."
                            "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                            Kommentar


                            • #15
                              Probier mal:
                              PHP-Code:
                              <?php
                              //Logindaten ueberpruefen
                              error_reporting(E_ALL);
                              echo 
                              "test";
                              exit;
                              und ruf die Seite direkt im Browser auf (http://domain/Login_check.php). Wenn dass immernoch eine Weiße Seite ausgibt dann stimmt etwas an der config nicht.

                              Kommentar

                              Lädt...
                              X