Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] nach dem login kommt die willkommensnachricht

Einklappen

Neue Werbung 2019

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

  • [Erledigt] nach dem login kommt die willkommensnachricht

    hi leute nachdem mein login wunderbar funktioniert hab ich jetzt gleich das nächste problem ....

    ich möchte gerne das wenn man sich z.b. mit test anmeldet auch im darauf folgenden text steht:

    Hier die Profildaten von [username mit dem man sich angemeldet hat],


    hier der code mit dem ich das versucht habe:

    logged.php
    Code:
    <?php session_start();
          include('navi.php');
          include('settings-reg.inc.php');
    ?>
    <html>
     <head>
      <title>
       CORA-PLANET.DE
      </title>
      <link rel="stylesheet" type="text/css" href="cora-planet-template.css">
     </head>
    
     <body>
      <div class="header">
       <a href="http://www.cora-planet.de"><img src="images/logo.gif" height="43" border="0"></a>
      </div>
    
      <div class="menubox">
       <div class="head">
        <b>
         Men&uuml;
        </b>
       </div>
       <a href="index.php?index">Home</a><br>
       <a href="index.php?kalender">Kalender</a><br>
       <a href="index.php?bilder">Bilder</a><br>
       <a href="index.php?kontakt">Kontakt</a><br>
       <a href="index.php?chronik">Chronik</a><br>
       <a href="index.php?neues">Neues</a><br>
       <a href="index.php?impressum">Impressum</a><br>
       <a href="logout.php">Ausloggen</a><br>
      </div>
      <div class="loginbox">
       <div class="head">
        <b>
         Login
        </b>
       </div>
       <form action="check_login.php" method="POST">
        Username:<br>
        <input type="text" name="u_name" size="15"><br>
        Passwort:<br>
        <input type="password" name="u_pass" size="15"><br><br>
        <input type="submit" value="Login">
       </form>
       <a href="index.php?register">Registrieren</a><br>
       <a href="#">Passwort vergessen</a>
      </div>
      <div class="news">
       <p>17.04.2008<br>
       <hr>
       Der Login ist nun funktionsbereit. Jedoch k&ouml;nnen Sie sich leider noch nicht registrieren. Dies wird 
       aber in den n&auml;chsten Tagen m&ouml;glich sein. Wir arbeiten intensiv daran.<br></p>
       <p>18.04.2008
       <hr>
       Das Loginsystem ist nun endg&uuml;ltig fertiggestellt. Es ist jetz sowohl das Einloggen, alsauch das Registrieren
       m&ouml;glich. Dabei ist zu beachten, das es noch keinen Content f&uuml;r registrierte Nutzer gibt!!</p>
      </div>
    
      <div class="footer">
       &copy; by KM April 2008
      </div>
    
      <div class="content">
       <?php 
    
       $abfrage = "SELECT u_name FROM usr_web1036_5.u_users";
       $ergebnis = mysql_query($abfrage) or die(mysql_error());?>
       <p>Hier die Profildaten von 
    <?php while($row = mysql_fetch_object($ergebnis)){ echo $row->u_name.",&nbsp;"; } ?>,</p>
       <table border="1">
        <tr>
         <td>
          Ihr Name:
         </td>
         <td>
           <?php   $abfrage = "SELECT u_name FROM usr_web1036_5.u_users";
       $ergebnis = mysql_query($abfrage) or die(mysql_error());
        while($row = mysql_fetch_object($ergebnis)){ echo $row->u_name.",&nbsp;"; } ?>
         </td>
        </tr>
       </table>
      </div>
     </body>
    </html>
    mein problem ist jetzt, das mir alles usernamen aus der db ausgegeben werden die bereits registriert sind was im moment folgendes ergibt:

    Hier die Profildaten von Admin, test, Ghost Rider, magnet2006, ,

    hab schon einiges versucht wie z.b. die variable $_POST["u_name"] mit der WHERE clausel zu übernehmen wobei er mir dann garkeinen namen mehr ausgibt weil er anscheinend nix in der variable $_POST stehen hat

    wie kann ich das problem lösen?? sitze hier schon seit über 5 stunden dran und finde keine lösung

    PS: habe auch schon die suchfunktion genutzt aber leider nix gescheites gefunden zu diesem problem

  • #2
    $_POST ist wahrscheinlich deshalb leer, da du es nicht übergibst.

    Deine logged.php ruft die check_login.php auf. Wenn der Benutzer authentifiziert wurde wird (ich rate mal) der Benutzer via Redirect auf die logged.php verwiesen.

    Da dies ein neues Request ist sind auch die alten Post Daten weg. Da du bereits sessions verwendest würde ich vorschlagen den Benutzernamen nach der Authentifizierung in der check_login.php in der Session zu speichern.

    Dadurch hast du in jedem Script welche die gleiche Session hat auch die Daten zur Verfügung.

    Kann natürlich sein, dass ich komplett falsch liege, aber bevor wir net diese ominöse check_login.php kennen, können wir nur raten

    Kommentar


    • #3
      Zitat von pacey Beitrag anzeigen
      Kann natürlich sein, dass ich komplett falsch liege, aber bevor wir net diese ominöse check_login.php kennen, können wir nur raten
      ok dann hier noch die check_login.php

      Code:
      <?php
      session_start();
      
      //konfiguration und verbindungsdaten holen
      include_once('config.inc.php');
      include_once('connect.inc.php');
      
      //prüfen ob die eingabefelder ausgefüllt wurden
      if(empty($_POST['u_name']) || empty($_POST['u_pass']))
          {
          header('location:index.php?loginfehler');
          //wenn sie nicht ausgefüllt wurden
          exit();
          }
          //wenn sie ausgefüllt wurden
      else
          {
          $sql = "SELECT u_id,
      		   u_name,
      		   u_pass
      	    FROM   u_users
      	    WHERE  u_name = '".mysql_real_escape_string($_POST['u_name'])."'
                  AND    u_pass = '".md5($_POST['u_pass'])."'
                  ";
      
          $result = mysql_query($sql) or die (mysql_error());
      
      //prüfung, ob genau eine der spalten mit der eingabe überein stimmt
      if(mysql_num_rows($result) !=1)
          {
          //wenn nicht übereinstimmt
          header('index.php?loginfehler2');
          exit();
          }
          //wenn übereinstimmt
          {
          //eine session "logged" auf TRUE setzen
          //eine session mit dem usernamen erstellen
          $_SESSION['logged'] = TRUE;
          $_SESSION['u_name'] = $_POST['u_name'];
      
          //auf die geschützte datei weiterleiten
          header('location: logged.php');
          exit();
          }
      }
      ?>
      dann kann ich die $_SESSION['u_name'] in der sql abfrage verwenden?? wie z.b. hier (nur ein test)

      SELECT u_name FROM usr_web1036_5.u_users WHERE u_name = '"$_SESSION['uname']".'; oder ist diese sql abfrage falsch??

      Kommentar


      • #4
        Ok, die besagte POST Variable ist nach dem Redirect wie gesagt weg.

        Das Problem kannst du lösen indem du anstelle von $_POST['u_name'] die Variable $_SESSION['u_name'] verwendets

        Kommentar


        • #5
          so wie ich das im vorherigen post nochmal (im edit) gefragt habe oder ist diese sql abfrage fehlerhaft??

          Edit: ok die sql abfrage ist falsch da kommt jetzt die fehlermeldung:
          Parse error: syntax error, unexpected T_VARIABLE in /var/www/html/web1036/html/logged.php on line 77

          Kommentar


          • #6
            Das was du meinst ist richtig die Implementierung ist falsch:
            PHP-Code:
            $abfrage"SELECT u_name FROM usr_web1036_5.u_users WHERE u_name = '"$_SESSION['u_name']. "';"

            Kommentar


            • #7
              dann habe ich wohl einen punkt und ein semikolon vergessen ... funktioniert jetzt danke für die rasche hilfe

              Kommentar

              Lädt...
              X