Ankündigung

Einklappen
Keine Ankündigung bisher.

Session Frage / Weiterleitung

Einklappen

Neue Werbung 2019

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

  • Session Frage / Weiterleitung

    Hallo zusammen,

    ich hab folgendes Problem. Ich möchte auf meiner Seite
    http://<a href="http://www.besuchtun...uchtuns.de</a> nen Administrationsteil machen. Passwort und User sollen in der Session gespeichert werden und die gespeicherten Daten mit den Einträgen in der Datenbank verglichen werden. Das funktioniert auch soweit. Ich hab nur ein Problem dass er mir sobald ich 2x hintereinander auf den Button Administration klicke bleibt die Seite weiss, solange bis ich die Seite neu aufrufe (die gesamte Website) oder die Cookies im Browsercache lösche. Das ist allerdings nicht Sinn der Sache. Er soll wenn möglich solange die Sessiondaten korrekt sind automatisch auf die Administrationsseite gehen. Ursprünglich war das ganze mit htaccess geschützt nur leider läuft htaccess auf meinem aktuellen Webspace nicht und den Fehler kann ich leider nicht beheben. Daher wollte ich es mit einer Session probieren. Hier mein Quellcode:

    Code:
    <?php
    session_start();
    
    include ("connect.php");
    mysql_select_db($tabelle, $db);
    
           
    
    
                if (($_SESSION['LoginData']['LoggedIn']===true))
                {
                $User = $_POST['User'];
                $Password = $_POST['Password'];
    
                $sql1 = "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";
    
    		if (!$result = mysql_query($sql1, $db))
    		{
    			echo mysql_error();
    		}
    		else
    		{
    			while ($row = mysql_fetch_object($result))
    				{
    					$pw = $row->Password;
    					$Name = $row->User;
    				}
    
    
    		if  (($Name) == ($User))
            {
            $sql1 = "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";
    
            		if (!$result = mysql_query($sql1, $db))
    					{
    						echo mysql_error();
    						 Session_destroy();
    					}
    				else
    				{
             
    			while ($row = mysql_fetch_object($result))
    				{
                      
    					$passw = $row->Password;
    					$Nik = $row->User;
    					
    
    				}
    
    				if  (($User) != ($Nik))
            			{
    
            			echo "
    Du bist hier leider nicht angemeldet";
            			Session_destroy();
    
    
            			}
    
    						else
    		{
    			if (($Password) != ($passw))
    			{
    				echo "Dein Passwort passt nicht zu deinem User! Bitte Versuch es erneut!
    				<form method = \"post\" action =\"".$SERVER['PHP_SELF']."\">
    				<input type=\"button\" value=\"Zurück\" name=\"back_button\" onClick=\"javascript:history.back(1)\">
    				</form>";
    				 Session_destroy();
    			}
    			else
    			{
    				if (($User == $Nik))
    				{
                echo "<center>";
                $gelogt = true;
                echo "Hallo, ".$User."
    
    ";
    			echo "Welche Seite m&ouml;chtest Du &auml;ndern?";
    			echo "
    ";
    			echo "<form action=\"../examples/edit.php\" method=\"post\" target=\"_blank\">";
    			echo "<table border= \"0\" height=\"50\" width=\"200\">";
    			echo "<tr><td>";
    			echo "<input type = \"radio\" name=\"Choice\" value=\"1.inc\">Startseite";
    			echo "</td><td>";
    			echo "<input type = \"radio\" name=\"Choice\" value=\"2.inc\">&Uuml;ber uns";
    			echo "</td></tr>";
    			echo "<tr><td>";
    			echo "<input type = \"radio\" name=\"Choice\" value=\"3.inc\">Kontakt";
    			echo "</td><td>";
    			echo "<input type = \"radio\" name=\"Choice\" value=\"stat.inc\">Impressum";
    			echo "</td>";
    			echo "</tr>";
    			echo "</table>
    ";
    			echo "<input type= \"submit\" name=\"Senden\" value=\"Seite &auml;ndern\">";
    			echo "</form>";
    			echo "<hr/>";
    			}}}}}}}
    
    else
    {
    
    		   echo "<center>
    ";
    			echo "Sie sind nicht berechtigt diese Seite zu betreten.";
    			echo "
    
    ";
    			echo "Bitte loggen Sie sich ein.
    ";
    			echo "<form action =\"".$SERVER['PHP_SELF']."\" method=\"post\">";
    			echo "<table border=\"0\"><tr><td>User: </td>";
    			echo "<td><input type=\"text\" name=\"User\" value=\"\"></td></tr>";
    			echo "<tr><td>Passwort: </td><td><input type=\"password\" name=\"Password\" value=\"\"></td></tr></table>";
    			echo "<input type=\"submit\" name=\"Senden\" value=\"Senden\">";
    			$_SESSION['LoginData']['LoggedIn']=true;
    			$_SESSION['LoginData']['User']=$_REQUEST['User'];
    			$_SESSION['LoginData']['Password']=$_REQUEST['Password'];
    			 echo"</form>";
    			 }
    
    ?>
    Wäre toll wenn einer von euch mal etwas zeit investieren könnte und vielleicht den Fehler finden würde oder eine Idee hat wie ich das mit der weissen Seite beheben kann.

    Vielen Dank im Vorraus
    LG Anja


  • #2
    Wenn du den ganzen Käse mal ordentlich einrückst und statt dem Code-Tag den PHP-Tag hier benutzt, sieht sich das vielleicht auch jemand an.

    Gruß
    phpfan

    Kommentar


    • #3
      klar gerne
      PHP-Code:
      <?php
      session_start
      ();

      include (
      "connect.php");
      mysql_select_db($tabelle$db);




                  if ((
      $_SESSION['LoginData']['LoggedIn']===true))
                  {
                      
      $User $_POST['User'];
                      
      $Password $_POST['Password'];

                      
      $sql1 "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";

                          if (!
      $result mysql_query($sql1$db))
                            {
                               echo 
      mysql_error();
                            }
                          else
                            {
                               while (
      $row mysql_fetch_object($result))
                                  {
                                       
      $pw $row->Password;
                                      
      $Name $row->User;
                                  }


                              if  ((
      $Name) == ($User))
                                  {
                                      
      $sql1 "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";

                                          if (!
      $result mysql_query($sql1$db))
                                                {
                                                     echo 
      mysql_error();
                                              }
                                          else
                                              {

                                                    while (
      $row mysql_fetch_object($result))
                                                      {

                                                          
      $passw $row->Password;
                                                            
      $Nik $row->User;


                                                      }

                                                  if  ((
      $User) != ($Nik))
                                                       {

                                                             echo 
      "
      Du bist hier leider nicht angemeldet"
      ;


                                                         }

                                                  else
                                                     {
                                                          if ((
      $Password) != ($passw))
                                                                 {
                                                                  echo 
      "Dein Passwort passt nicht zu deinem User! Bitte Versuch es erneut!
                                                                  <form method = \"post\" action =\""
      .$SERVER['PHP_SELF']."\">
                                                                  <input type=\"button\" value=\"Zurück\" name=\"back_button\" onClick=\"javascript:history.back(1)\">
                                                                  </form>"
      ;
                                                                      
      Session_destroy();
                                                               }
                                                           else
                                                               {
                                                                  if ((
      $User == $Nik))
                                                                             {
                                                                               echo 
      "<center>";
                                                                               
      $gelogt true;
                                                                               echo 
      "Hallo, ".$User."

      "
      ;
                                                                               echo 
      "Welche Seite m&ouml;chtest Du &auml;ndern?";
                                                                               echo 
      "
      "
      ;
                                                                               echo 
      "<form action=\"../examples/edit.php\" method=\"post\" target=\"_blank\">";
                                                                               echo 
      "<table border= \"0\" height=\"50\" width=\"200\">";
                                                                               echo 
      "<tr><td>";
                                                                               echo 
      "<input type = \"radio\" name=\"Choice\" value=\"1.inc\">Startseite";
                                                                               echo 
      "</td><td>";
                                                                               echo 
      "<input type = \"radio\" name=\"Choice\" value=\"2.inc\">&Uuml;ber uns";
                                                                               echo 
      "</td></tr>";
                                                                               echo 
      "<tr><td>";
                                                                               echo 
      "<input type = \"radio\" name=\"Choice\" value=\"3.inc\">Kontakt";
                                                                               echo 
      "</td><td>";
                                                                               echo 
      "<input type = \"radio\" name=\"Choice\" value=\"stat.inc\">Impressum";
                                                                               echo 
      "</td>";
                                                                               echo 
      "</tr>";
                                                                               echo 
      "</table>
      "
      ;
                                                                               echo 
      "<input type= \"submit\" name=\"Senden\" value=\"Seite &auml;ndern\">";
                                                                               echo 
      "</form>";
                                                                               echo 
      "<hr/>";
                                                                              }
                                                                     }
                                                          }
                                                     }
                                              }
                                      }
              }

      else
      {

                  echo 
      "<center>
      "
      ;
                  echo 
      "Sie sind nicht berechtigt diese Seite zu betreten.";
                  echo 
      "

      "
      ;
                  echo 
      "Bitte loggen Sie sich ein.
      "
      ;
                  echo 
      "<form action =\"".$SERVER['PHP_SELF']."\" method=\"post\">";
                  echo 
      "<table border=\"0\"><tr><td>User: </td>";
                  echo 
      "<td><input type=\"text\" name=\"User\" value=\"\"></td></tr>";
                  echo 
      "<tr><td>Passwort: </td><td><input type=\"password\" name=\"Password\" value=\"\"></td></tr></table>";
                  echo 
      "<input type=\"submit\" name=\"Senden\" value=\"Senden\">";
                  
      $_SESSION['LoginData']['LoggedIn']=true;
                  
      $_SESSION['LoginData']['User']=$_REQUEST['User'];
                  
      $_SESSION['LoginData']['Password']=$_REQUEST['Password'];
                   echo
      "</form>";
                   }

      ?>

      Kommentar


      • #4
        D-D-D-De-De-De.....Debugger!
        So jetzt ists raus...

        Kommentar


        • #5
          erstmal danke für die antwort. aber irgendwie steh ich auf dem schlauch. werde aus deiner antwort nicht wirklich schlau

          Kommentar


          • #6
            PHP-Code:
            error_reporting(E_ALL);
            ini_set('display_errors'true);
            session_start();

            // ohne diese Datei ist das restliche Skript doch wertlos -> require statt include
            require "connect.php"
            // Fehlerbehandlung
            mysql_select_db($tabelle$db) or die(mysql_error());

            // was sollen die doppelten Klammern?
            if ($_SESSION['LoginData']['LoggedIn']===true)
            {
                
            // Wozu die Zuweisung von $_POST[irgendwas]->$irgendwas? Hat keinen Mehrwert.
                // Es sei denn, die eh notwendige ABsicherung der Parameter findet hier statt
                // siehe [url]http://faq-phpfriend.de/q/q-sql-injection.html[/url]
                
            $User mysql_escape_string($_POST['User']);
                
            $Password mysql_escape_string($_POST['Password']);

                
            $sql1 "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";
                if (!
            $result mysql_query($sql1$db))
                {
                    echo 
            mysql_error();
                }
                else
                {
                    
            // Was soll diese while Schleife
                    
            while ($row mysql_fetch_object($result))
                    {
                        
            $pw $row->Password;
                        
            $Name $row->User;
                    }
                    
            // was sollen die Klammern um $Name und $User?
                    // Austausch $user->$_POST[User]
                    // genauer Vergleich mit ===
                    
            if  ($Name === $_POST['User'])
                    {
                        
            // Nanu? Hatten wir die Abfrage nicht eben schon?
                        // Déjà vu?
                        
            $sql1 "SELECT * FROM besuchtuns WHERE User LIKE '%$User%'";
                        if (!
            $result mysql_query($sql1$db))
                        {
                            echo 
            mysql_error();
                        }
                        else
                        {
                            while (
            $row mysql_fetch_object($result))
                            {
                                
            // naja, erstmal Schluss.
                                // beschreib doch einfach mal mit ganzen Sätzen, ohne Code, was das Skript machen soll 

            Kommentar

            Lädt...
            X