weiterleitung Einlogin

valeripf

Erfahrenes Mitglied
ich will weiter leitung an zwei verschidene seiten

in navimenü hab ich zum startseite ist mit
PHP:
<a href="index.php">Startseite</a>
verlinkt

so jetz will wenn;

1 wenn nicht Eingeloggt bin soll bei drucken auf button startseite verlinken an der index.php

2 wenn Eingeloggt bin soll bei drucken auf button startseite verlinken an der myprofil.php

Frager

es ist möglich?

Danke
 
Zuletzt bearbeitet:
Ja, dafür brauchst du eine if-Abfrage, in der du prüfst, ob der benutzer eingeloggt ist oder nicht. Danach gibst du den Link aus.
 
PHP:
<?php if (is_logged_in()): ?>
<a href="index.php">Startseite</a>
<?php else: ?>
<a href="myprofil.php">Profil</a>
<?php endif ?>
 
ich wll hier einsetzen dann bei Startseite

PHP:
<td><a href="index.php">Startseite</a></td>
<td><a href="registrierung.php">Registierung</a></td>
 
Ok und was hast du von einfach nur cracks Beispiel verwendet!?

Zeig uns auch mal bitte wie das Einloggen funktioniert und wie du speicherst ob jemand eingeloggt ist oder nicht.
 
login

PHP:
<?php
if(isset($_POST['submit']) AND $_POST['submit']=='Einloggen'){
	// Falls der Nickname und das Passwort übereinstimmen..
	$sql = "SELECT
					ID
			FROM
					User
			WHERE
					Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
					Passwort = '".md5(trim($_POST['Passwort']))."'
			";
			$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
			// wird die ID des Users geholt und der User damit eingeloggt
			$row = mysql_fetch_assoc($result);
			// Prüft, ob wirklich genau ein Datensatz gefunden wurde
			if (mysql_num_rows($result)==1){
				doLogin($row['ID'], isset($_POST['Autologin']));
?>
<p>
<?php
	echo "<h4>Willkommen ".$_SESSION['Nickname']."</h4>\n";
?>
<h5>
	Sie wurden erfolgreich eingeloggt.<br>
	Zur <a href="myprofil.php">Startseite</a>
</h5>
<?php
	}
	else{
?>
<p>
	Sie konnten nicht eingeloggt werden.<br>
	Nickname oder Passwort fehlerhaft.<br>
	<?php
	echo "Zur&uuml;ck zum <a href=\"".$_SERVER['PHP_SELF']."\">Login-Formular</a>\n";
		}
		}
		else{
		echo "<form ".
		" name=\"Login\" ".
		" action=\"".$_SERVER['PHP_SELF']."\" ".
		" method=\"post\" ".
		" accept-charset=\"ISO-8859-1\">\n";
	?>

<?php
	echo "</form>\n";
		}

?>

ich weis nicht was für teil du drauchst darum hab ich dir beide gepostet

functions.php


PHP:
<?php
    // Prüft die Länge jedes Wortes eines Strings und korrigiert diese evtl.
    function shorten($str, $max=30, $range=5)
    {
            // aufteilen in Zeilen
         $lines = explode("\n", $str);
         foreach($lines as $key_line => $line){
                 // aufteilen in Wörter
                 $words = explode(" ", $line);
                 // prüfen der Länge jeden Wortes
                 foreach($words as $key_word => $word){
                        if (strlen($word) > $max)
                                $words[$key_word] = substr($word,0,$max-3-$range)."...".substr($word,-$range);
                 }
                 // zusammenfügen der neuen Zeile
                 $lines[$key_line] = implode(" ", $words);
         }
         // zusammenfügen des neues Textes
         $str = implode("\n", $lines);
         return $str;
    }


    // loggt einen User aus, ..
    function doLogout()
    {
         // .. indem das Cookie und ..
         if(isset($_COOKIE['Autologin']))
             setcookie("Autologin", "", time()-60*60);
         // .. die Session ID aus der Datenbank gelöscht werden
         $sql = "UPDATE
                           User
                 SET
                           SessionID = NULL,
                           Autologin = NULL,
                           IP = NULL

                 WHERE
                           ID = '".$_SESSION['UserID']."'
                ";
         mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    }

    // liefert die Rechte eines Users ..
    function getRights()
    {
        $rights = array();
        // .. indem die Rechte eines User aus der Datenbank ausgewählt werden..
        if(isset($_SESSION['UserID'])){
            $sql = "SELECT
                            Recht
                    FROM
                            User_Rechte
                    WHERE
                            UserID = '".$_SESSION['UserID']."'
                   ";
            $result = mysql_query($sql) OR die ("<pre>\n".$sql."</pre>\n".mysql_error());
            $rights = array();
            // .. und als array zurückgegeben werden
            while($row = mysql_fetch_assoc($result))
                    $rights[] = $row['Recht'];
        }
        return $rights;
    }

    // Loggt einen User ein, ..
    function doLogin($ID, $Autologin=false)
    {
        // .. indem die aktuelle Session ID in der Datenbank gespeichert wird
        $sql = "UPDATE
                        User
                SET
                        SessionID = '".mysql_real_escape_string(session_id())."',
                        Autologin = NULL,
                        IP = '".$_SERVER['REMOTE_ADDR']."',
                        Letzte_Aktion = '".mysql_real_escape_string(time())."',
                        Letzter_Login = '".mysql_real_escape_string(time())."'
                WHERE
                        ID = '".$ID."'
                ";
        mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        // Wenn 'eingeloggt bleiben' aktiviert wurde
        if($Autologin){
            // Zufallscode erzeugen
            $part_one = substr(time()-rand(100, 100000),5,10);
            $part_two = substr(time()-rand(100, 100000),-5);
            $Login_ID = md5($part_one.$part_two);
            // Code im Cookie speichern, 10 Jahre dürfte genügen
            setcookie("Autologin", $Login_ID, time()+60*60*24*365*10);
            $sql = "UPDATE
                            User
                    SET
                            Autologin = '".$Login_ID."'
                    WHERE
                            ID = '".$ID."'
                   ";
            mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        }

        // Daten des Users in der Session speichern
        $sql = "SELECT
                        Nickname
                FROM
                        User
                WHERE
                        ID = '".$ID."'
               ";
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

        $row = mysql_fetch_assoc($result);
        $_SESSION['UserID'] = $ID;
        $_SESSION['Nickname'] = $row['Nickname'];
        // Rechte in der Session speichern
        $_SESSION['Rechte'] = getRights();
    }
?>

autologout

PHP:
<?php
    error_reporting(E_ALL);

    // Prüfen, ob ein Autologin des Users stattfinden muss
    if(isset($_COOKIE['Autologin']) AND !isset($_SESSION['UserID'])){
        $sql = "SELECT
                        ID
                FROM
                        User
                WHERE
                        Autologin = '".mysql_real_escape_string($_COOKIE['Autologin'])."'
               ";
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        $row = mysql_fetch_assoc($result);
        if(mysql_num_rows($result) == 1)
            doLogin($row['ID'], '1');
    }

    // Online Status der User aktualisieren
    if(isset($_SESSION['UserID'])){
        $sql = "UPDATE
                        User
                SET
                        Letzte_Aktion = '".time()."'
                WHERE
                        ID = '".$_SESSION['UserID']."'
               ";
        mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
    }

    // User ohne Autologin ausloggen
    $sql = "UPDATE
                    User
            SET
                    SessionID = NULL,
                    Autologin = NULL,
                    IP = NULL
            WHERE
                    '".(time()-60*20)."' > Letzte_Aktion AND
                    Autologin IS NULL
           ";
    mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());

    // Kontrollieren, ob ein automatisch ausgeloggter User noch eine gültige Session besitzt
    if(isset($_SESSION['UserID'])){
        $sql = "SELECT
                        SessionID
                FROM
                        User
                WHERE
                        ID = '".$_SESSION['UserID']."'
               ";
        $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
        $row = mysql_fetch_assoc($result);
        if(!$row['SessionID']){
            $_SESSION = array();
            session_destroy();
        }
    }
?>
 
Also du speicherst in der Variablen $_SESSION['UserID'] die ID des Users so bald er erfolgreich eigeloggt ist.

Dann müsste es etwa so aussehen:

PHP:
if (isset($_SESSION['UserID'])) {
    echo '<td><a href="index.php">Startseite</a></td>';
} else {
    echo '<td><a href="registrierung.php">Registierung</a></td>';
}

Wenn jetzt die UserID vorhanden ist, wird der Link zur Startseite angezeigt, wenn nicht der Link zur Registrierung.

Wobei du im ersten Beitrag noch was anderes geschrieben hast!?
 
Danke lauf supper;)

jetz hab ich noch eine frage wie krieg ich das selbe mit bild?

PHP:
<h1><a href="index.php">Dru<span>po</span>sen<span>.de</span></a></h1>
 
Zurück