Zweite Seite im gleichen Modul

trc120

Gesperrt
Hallo zusammen.
Bin neu in der php welt und hätte gerne euren rat.
Ich bin mir nicht sicher, ob ich mit meinem problem hier richtig bin, wenn nicht bitte nicht böse sein.
Zur verdeutlichung hänge ich ein Bild an:

templatenr5x.jpg


Jetzt zur Erklärung.
Ich versuche schon seit tagen, nach dem erfolgten Login in dem module Anmeldung nur den Abmelde button anzeigen zu lassen. Das selbe möchte ich auch im modul INTERN, wobei hier nach dem Login die link zum Profil und Logout stehen sollten.
Wie kann ich das hinbekommen, damit das funktioniert
Die ANMELDUNG besteht aus einem einfachen Formular, wo ich die Login_brüfung.php include habe.

Login.php

PHP:
<div id="module_login">
 <div class="module_h3">Anmeldung</div>
   <div id="login">
      <form method="post" action="">
      Benutzername:<br>
      <input type="text" name="benutzername" size="25"><br><br>
      Passwort:<br />
      <input type="password" name="passwort" size="25"><br><br>
      <input type="submit" value="Anmeldung" name="senden"><br><br>
      Angemeldet bleiben?<input type="radio" name="save_login" value="radio"><br><br>
      <a href="index.php?seite=passwort_ver">Passwort vergessen?</a>
      <a href="index.php?seite=registrierung">Registrieren</a>
     </form>

      <!-- Hier das PHP-Skript fr die Login-Verwaltung includen
   	       ***************************************************** -->

<?php
  include "include/login_pruefung_inc.php";
?>

</div>

Login_brüfung.php

PHP:
<?php

// Prüfen, ob Sende-Button geklickt wurde.
// Ansonsten darf Formular-Prüfung nicht starten.

//  Öffnen der Datenbank Zugangskontrolle


if (isset($_POST['senden']) == true)
{


$db = new MySQLi("localhost","root","","trc")
      or die('Derzeit kann keine Verbindung zur Datenbank hergestellt werden');




// Auslesen des Formulars und zuweisen in Variablen
//*************************************************

  $benutzername  = $_POST['benutzername'];
  $passwort      = $_POST['passwort'];
  $passwort_md5  = md5($passwort);

// Prüfen der Variablen welche die Formular-Eingaben enthalten.
//*************************************************************



//  Aktionsteil mit Aufruf der Berechnung-Funktion.
//*************************************************

  if ($fehlermeldung == "")
  {

// Suchen in der Tabelle Personen ob Eingaben vorhanden.
//+++++++++++++++++++++++++++++++++++++++++++++



// SELECT-Befehl für Abfrage einer Tabelle
// ***************************************
$anfrageart = "SELECT * FROM userdaten WHERE benutzername='$benutzername'AND passwort='$passwort_md5'";

$ergebnis = $db -> query($anfrageart); // Senden an Dabenbank

// Wenn Daten gefunden wurden
if ($ergebnis -> num_rows > 0)
{
  // Schleife, solange Daten im Ergebnis   vorhanden sind, soll ausgegeben werden.
  while ($datenzeile = $ergebnis ->   fetch_assoc())
  {
     // Ausführen der Aktionen (Ausgaben, Berechnung etc, z.B.:
     // Aufbau der Session-Variablen um regulären Login auf erlaubter Seite zu prüfen.

     $_SESSION['benutzername'] =$datenzeile['benutzername'];
     $_SESSION['berechtigt'] = "ja";
	 $_SESSION['berechtigung'] = $datenzeile['berechtigung'];
   
    // Cockies setzen
		
   if(isset($_POST['save_login']) AND $_POST['save_login'] == 'yes')
     {
	 setcookie("benutzername", $_POST[benutzername], time()+(3600*24*365));
     setcookie("passwort", $_POST[passwort], time()+(3600*24*365)); 
     }

	?>
   <meta http-equiv="refresh" content="3;URL=index.php?seite=startseite"></meta>
   <?php
  }  // klammer zu while Schleife..

}
/*
else
{
   echo "<strong>Noch nicht Aktiv!</strong>";
}
*/




   //echo "Die Registrierung war erfolgreich !";

     $db -> close(); //  datenbank geschlossen.

// Automatische Weiterleitung zur Login-Seite.


  }
  else
  {
   echo $fehlermeldung;
  }




} //if ende Button-Prüfung.


?>
 
Ok, zuerst mal, Passwort in einem Cookie speichern ist echt keine gute Idee.

Anhand deines Codes, würde ich das wohl so in etwa aufbauen:
PHP:
<?php
if (!isset ($_SESSION['berechtigt']) || $_SESSION['berechtigt'] != "ja") {
?>
      <form method="post" action="">
      Benutzername:<br>
      <input type="text" name="benutzername" size="25"><br><br>
      Passwort:<br />
      <input type="password" name="passwort" size="25"><br><br>
      <input type="submit" value="Anmeldung" name="senden"><br><br>
      Angemeldet bleiben?<input type="radio" name="save_login" value="radio"><br><br>
      <a href="index.php?seite=passwort_ver">Passwort vergessen?</a>
      <a href="index.php?seite=registrierung">Registrieren</a>
     </form>
<?php
}
else {
	// hier der Abmeldeknopf
	print '<a href="#">Abmelden</a>';
}
?>

So ähnlich sollte das dann auch in der anderen Box (Intern) aussehen. Im oberen Block das notieren, was zu sehen ist wenn man nicht eingeloggt ist (bzw. Berechtigt).
 
Super Loomes ganz großes Dankeschön, werde es morgen gleich testen.
Bezüglich Passwort, das möchte ich noch ändern, " neues passwort-generieren mail "
 
Bezüglich Passwort, das möchte ich noch ändern, " neues passwort-generieren mail "
Wobei das eine hier nichts mit dem anderen zu tun hat. :)

Du speicherst den Benutzernamen und das Passwort in der Cookies, damit du einen Autologin durchführen kannst und der User nicht jedes mal seine Daten eingeben muss, richtig?

Da wäre es besser ein Cookie, zum Beispiel mit dem schlichten Namen "autologin" zu setzen, welches einen zufällig generierten String enthält.
Dieser String wird gleichzeitig in der Benutzertabelle bei dem jeweiligen User hinterlegt.
Beim nächsten Aufruf der Seite wird nun einfach nachgesehen, zu welchem Benutzer dieser String gehört (Mit Frauen hat das ausnahmsweise mal nix zu tun. ;)) und bei Übereinstimmung der Login durchgeführt.

Da kann man noch einige Sicherheitstweaks einbauen, aber um das Grundprinzip zu verstehen sollte das vorerst ausreichen. :)
 
@Loomes

Tausen Dank hat super geklappt. Bin jetzt ganz begeistert, hatte mich schon zei tage damit abgekämpft:)

so jetzt versuche ich das mit dem coockies und dann noch passwort vergessen funktion:rolleyes:

Ich hoffe, ich darf euch wieder nerven, wenn ich nicht mehr weiterkomme.

Nochmals Danke für die schnelle und nette hilfe.
 
Zurück