Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SESSION und $_GET

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SESSION und $_GET

    Hallo,
    habe ein kleines Poblem...
    Habe mir ein Admin Interface für ein wunschbox gebaut,
    und um in das interface rein zu kommen, muss man user, passwort und captcha eingeben ...

    damit man nach dem erfolgreichen einloggen nicht andauernt neu das captcha und login-daten eingeben muss, habe ich das löschen des cpatchas weg gelassen.. somit bleibe ich immer online auch nach einer aktualisierung...

    wenn ich aber jetzt von admin.php?action=uberprufung
    mit einem link zu admin.php?action=uberprufung gehen will (der link ist noch nicht komplett aber dort liegt erst der fehler) dann löscht er die session trz. aber wenn ich aktualisieren im browser mache bleibt die session trz.

    meine Frage: wie kann ich machen dass der code so lange bestehen bleibt, bis ich session destroy und oder unset($captcha) benutze? ist es üerhaupt möglich ??

    mein derzeitiger code:

    PHP-Code:
    <?php 
    session_start
    ();  
    include(
    '../inc/overall2.php'); 
    function 
    form() 
    {
    ?> 
    <center> 
    <div id="box2" class="box2"> 
    <form action="admin.php?action=uberprufung" method="POST"> 
    <table> 
    <tr> 
        <td>Username:</td> 
        <td><input type="text" name="user" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
    </tr> 
    <tr> 
        <td>Passwort:</td> 
        <td><input type="password" name="pass" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
    </tr> 
    <tr> 
        <td valign="bottom">Sicherheitscode:</td> 
        <td> 
        <img src="http://www.php.de/captcha/captcha.php" border="0" title="Sicherheitscode"/><br/> 
        <input type="text" name="sicherheitscode" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
    </tr> 
    <tr> 
        <td></td> 
        <td><input type="submit" value="Einloggen!" name="los"class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
    </tr> 
    </table> 
    </form> 
    </div> 
    </center> 
    <?php 

    function 
    tabelle($table_pref

    $q  =   "SELECT * FROM ".$table_pref." ORDER BY `datetime` DESC"
                                  
    $res=   @mysql_query($q); 
                            while(
    $row  =   mysql_fetch_assoc($res)) 
                            { 

                                
    $date      =   $row["datetime"]; 
                                
    $autor     =   $row["autor"]; 
                                
    $email     =   $row["email"]; 
                                
    $titel     =   $row["titel"]; 
                                
    $interpret =   $row["interpret"]; 
                                
    $gruss     =   $row["gruss"]; 
                                
    $id        =   $row["id"]; 

                                echo    
    "<tr>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">".$date."</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">".$autor."<br/>(".$email.")</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">&nbsp;</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">".$titel."</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">".$interpret."</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">&nbsp;</td>"
                                echo    
    "<td valign=\"top\"class=\"row_1\">".$gruss."</td>"
                                echo    
    "<td class=\"row_1\"><a href=\"admin.php?action=uberprufung\" id=\"link2\"title=\"Eintrag l&ouml;schen\">X</a></td>"
                                echo    
    "</tr>"

                            } 


    if(isset(
    $_GET["action"])) 

        if(
    $_GET['action'] == "uberprufung"
        { 
                    
    $code   =   $_SESSION['captcha_spam']; 
                    if(isset(
    $code) AND $_POST["sicherheitscode"] == $code
                    { 
                        
    //unset($code); 

                        
    IF( $_POST["user"] == $user_admin && $_POST["pass"] == $pass_admin
                        { 
                            
    ?> 
                            <table class="admintop" width="700" cellpadding="0" cellspacing="0"> 
                                <tr> 
                                    <td width="100"><a href="admin.php?action=uberprufung&logout=true" id="link2"><b>Logout</b></a></td> 
                                    <td>Eingeloggt als: <b><?php echo $_POST['user'];?></b></td> 
                                </tr> 
                            </table> 
                                <br/> 
                                <center><b>Die Eintr&auml;ge werden nach Daum und Uhrzeit sotiert!</b></center> 
                            <table> 
                                <tr> 
                                    <td width="70"class="topeintrag" >Datum:</td><td class="topeintrag" width="120">Name:</td><td class="topeintrag" >&nbsp;&nbsp;&nbsp;</td><td class="topeintrag"  width="150">Titel:</td><td class="topeintrag"  width="150">Interpet:</td><td class="topeintrag" >&nbsp;&nbsp;</td><td class="topeintrag"  width="180">Gru&szlig;</td> 
                                </tr> 
                                <?php 
                                 tabelle
    ($table_pref); 
                                 
    ?> 



                                <tr> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td valign="top"class="bottumeintrag">&nbsp;</td> 
                                    <td>&nbsp;</td> 
                                </tr> 
                            </table> 
                            <?php 
                            $fp
    =fopen("../inc/".$datei,"r+"); 
                            
    $zahl=fgets($fp,$stellen); 
                            
    $zahl=sprintf("%0".$stellen."d",$zahl); 
                            
    ?> 
                            <br/> <center>Es wurde schon <b><?php echo $zahl;?></b> mal gew&uuml;nscht!</center> 



                      <?php 
                        

                         else 
                        { 
                            
    form(); 
                        } 

                    } 
                    else 
                    { 
                        
    form(); 
                    } 
        } 
        else 
        { 
            
    form(); 
        } 

    else 

        
    form(); 

    ?> 


    <?php 
    echo "<br/><center>"
    echo 
    "</center>"
    include(
    '../inc/copy.php'); 
    ?>

  • #2
    Simpel:
    PHP-Code:
    $_SESSION['logged_in'] = "irgendwas"
    Du erweiterst Dein Script dann a) um das Setzen der Session nach erfolgreichem Identifzieren ... b) um ein !isset($_SESSION['logged_in']) in Deiner für mich umständlich zu lesenden Source.

    Solange logged_in da ist, wirst auch nicht weiter nach Captcha etc. gefragt. Aber hierfür wirst Deinen Source umbauen dürfen ...

    Kommentar


    • #3
      und wie baue ich das ein ?

      Sorry aber ich bin ein großer Anfänger ..

      Kommentar


      • #4
        Zitat von larabad Beitrag anzeigen
        und wie baue ich das ein ?

        Sorry aber ich bin ein großer Anfänger ..
        demnach hast du das script nicht selber geschrieben oder?

        Kommentar


        • #5
          doch das schon

          Kommentar


          • #6
            Ich mach Dir einen Vorschlag ... ich geb Dir meinen PayPal-Kontakt und Du überweist meinen Stundensatz ...

            Code:
            <?PHP
            session_start();  
            include('../inc/overall2.php'); 
            
            function tabelle($table_pref){ 
            	$q = "SELECT * FROM ".$table_pref." ORDER BY `datetime` DESC"; 
            	$res = mysql_query($q); // @ wech ... wenn Fehler, dann soll er melden!!
            	$output = "";
            	while( $row = mysql_fetch_array($res) ){
            		$output .= "<tr>
            						<td valign=\"top\"class=\"row_1\">".$row["datetime"]."</td>
            						<td valign=\"top\"class=\"row_1\">".$row["autor"]."<br/>(".$row["email"].")</td>
            						<td valign=\"top\"class=\"row_1\">&nbsp;</td>
            						<td valign=\"top\"class=\"row_1\">".$row["titel"]."</td>
            						<td valign=\"top\"class=\"row_1\">".$row["interpret"]."</td>
            						<td valign=\"top\"class=\"row_1\">&nbsp;</td>
            						<td valign=\"top\"class=\"row_1\">".$row["gruss"]."</td>
            						<td class=\"row_1\"><a href=\"admin.php?del=".$row["id"]."\" id=\"link2\"title=\"Eintrag l&ouml;schen\">X</a></td>
            					</tr>";
            	} 
            	return $output;
            } 
            
            function __getWunschanzahl(){
            	$zahl = 0;
            	$fp=fopen("../inc/".$datei,"r+"); 
            	$zahl = fgets($fp,$stellen); 
            	$zahl = sprintf("%0".$stellen."d",$zahl); 
            	return $zahl;
            }
            
            // womöglich hast Du $user_admin und $pass_admin als Konstanten abgelegt, ergo ...
            define('__user_admin__', "admin");
            define('__pass_admin__', "admin");
            
            $viewContent = false;
            
            if( 
            	isset($_GET["action"]) && ($_GET['action'] == "uberprufung") && 
            		isset($_POST['sicherheitscode']) && ($_POST['sicherheitscode'] != "") && 
            			!isset($_SESSION['logged_in']) ){
            	$code = isset($_SESSION['captcha_spam']) && (strlen($_SESSION['captcha_spam']) > 0) ? $_SESSION['captcha_spam'] : "xXxXxXxXx";
            	if( ($_POST["sicherheitscode"] == $code) && (__user_admin__ === $_POST['user']) && (__pass_admin__ === $_POST['pass']) ){
            		$_SESSION['logged_in'] = "yeahbaby";
            	}
            }
            
            if( $_SESSION['logged_in'] == "yeahbaby"){
            	$zahl = __getWunschanzahl();
            	$output = tabelle($table_pref);
            	$viewContent = true;
            } else if(isset($_GET['logout'])){
            	$_SESSION = array();
            	@ session_destroy();
            	$viewContent = false;
            } else if(isset($_GET['del']) && is_numeric($_GET['del']) ){
            	// Wunsch löschen ...
            }
            
            ?>
            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
            <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
            	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            	<title>Unbenanntes Dokument</title>
            </head>
            <body>
            <?PHP if($viewContent){ ?>
            	<table cellpadding="0" cellspacing="0" width="700" border="0" summary="">
            	<tr> 
            		<td width="70"><a href="admin.php?logout" id="link2" style="font-weight:bold">Logout</a></td>
            		<td colspan="7">Eingeloggt als: <b>ADMIN</b></td> 
            	</tr> 
            	<tr> 
            		<td width="70"class="topeintrag" >Datum:</td>
            		<td class="topeintrag" width="120">Name:</td>
            		<td class="topeintrag" >&nbsp;&nbsp;&nbsp;</td>
            		<td class="topeintrag"  width="150">Titel:</td>
            		<td class="topeintrag"  width="150">Interpet:</td>
            		<td class="topeintrag" >&nbsp;&nbsp;</td>
            		<td class="topeintrag"  width="180">Gru&szlig;</td> 
            	</tr> 
            	<?php print $output; ?> 
            	<tr>
            		<td colspan="8" valign="top"class="bottumeintrag">&nbsp;</td> 
            	</tr> 
            	</table> 
            	<center><b>Die Eintr&auml;ge werden nach Daum und Uhrzeit sotiert!</b></center> 
            	<center>Es wurde schon <b><?php echo $zahl;?></b> mal gew&uuml;nscht!</center>
            <?PHP } else { ?>
            	<center> 
            	<div id="box2" class="box2"> 
            	<form action="admin.php?action=uberprufung" method="POST"> 
            	<table> 
            	<tr> 
            		<td>Username:</td> 
            		<td><input type="text" name="user" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
            	</tr> 
            	<tr> 
            		<td>Passwort:</td> 
            		<td><input type="password" name="pass" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
            	</tr> 
            	<tr> 
            		<td valign="bottom">Sicherheitscode:</td> 
            		<td> 
            		<img src="http://www.php.de/captcha/captcha.php" border="0" title="Sicherheitscode"/><br/> 
            		<input type="text" name="sicherheitscode" class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
            	</tr> 
            	<tr> 
            		<td></td> 
            		<td><input type="submit" value="Einloggen!" name="los"class="normal" onmouseover="this.className='hover'" onmouseout="this.className='normal'"/></td> 
            	</tr> 
            	</table> 
            	</form> 
            	</div> 
            	</center> 
            <?PHP } ?>
            
            <?PHP include('../inc/copy.php'); ?>
            </body>
            </html>
            Ich habe mir erlaubt, Deinen Source zu modifizieren - ich habe den "Fetisch", PHP und Content zu trennen und nicht Abfragen im HTML nochmal auf die DB zu machen o. ä. Ob es geht, kann ich Dir nicht sagen, da ich das eben "on-the-fly" erstellt habe ...

            Kommentar


            • #7
              irgend wie will er trz. wenn ich mich eingeloggt habe, un dann den link klicke schmeist er mich trz. raus un will das ich mich neu anmelde ...=(

              Kommentar


              • #8
                Welchen Link?

                Baue bitte mal nach session_start() folgendes ein:
                PHP-Code:
                var_dump($_SESSION); 
                Dann beobachte aufgrund Deines Klickens, wie sich dieses Array verhält ... leert es sich irgendwo, dann weißt ja Bescheid ...

                Tipp: Solltest Du dies auch irgendwo als INCLUDE nutzen, so wird das nix ...

                Kommentar


                • #9
                  der link soll ein weiteren GET an die url setzten und dies soll dazu führen dass man ihn löschen kann

                  Kommentar


                  • #10
                    jetzt kann ich mich überhaupt nicht mehr einloggen...

                    Kommentar


                    • #11
                      So ... langsam ... Du wirst blind kopiert haben ... behaupte ich!!!

                      1.) Ich bin davon ausgegangen, dass die Seite, die ich da "on-the-fly" erstellt habe, diese ist:
                      Code:
                      admin.php?logout
                      Wenn das korrekt ist, so brauchst Du oben in die Adresszeile Deines Browser nur ?logout hinter schreiben und er loggt Dich aus, wenn Du Probleme hast ...

                      Alternativ: Browser schließen und neu anfahren ...

                      2.) Was willst Du löschen?! Die Wunschtitel? Da habe ich in meinem Source bereits Vorkehrungen getroffen:
                      Code:
                      admin.php?del=".$row["id"]
                      Damit übergibst Du admin.php das GET "del" und löschst mit LIMIT 1 in der DB oder entsprechend anders in Deinem Textfile ... eine Löschfunktion habe ich Dir nur angedeutet - die bau fein selbst!!

                      Kommentar


                      • #12
                        Oh danke ...
                        es klappt ergibt jetzt noch ein paar fehler aus, die ich grad al versuch zu behben ....

                        Ich dank dir !

                        Kommentar


                        • #13
                          sorry wenn ich nerv .. *grins

                          er loggt nicht aus .. tabelle bleibt alles bleibt...

                          Kommentar


                          • #14
                            danke hab es selbst ... gab probleme mit else if ...

                            danke das du mir geholfen hast!
                            diese Plattform ist die beste!

                            Gruß larabad

                            Kommentar

                            Lädt...
                            X