SESSION Verwaltung auf index.php

Add & edit - Formulare ähneln sich sehr, da könnte man mit Refactoring arbeiten

Schön das du mit Fachwörtern umhandierst.Die beschreibung dazu ich doch sehr allgemein.Aber wie würdest du das bei Formularen in der Praxis umsetzen?

Mit Funktionen und klassen ?

Mfg Splasch
 
Ich denke er wollte damit allgemein sagen,
Code:
Lesbarkeit:  so dass möglichst viele Programmierer verstehen, was der Code tatsächlich macht
;-)
Das kapier selbst ich nicht auf anhieb bei meinem jetztigen (oben beschriebenen) Verfahren!!

Soviel ich weiß kann man in PHP5 auch OO Programmieren.

by the way:
schaut euch doch auch nochmal meinen vorletzten Post an bitte.

Matze
 
@Matze

Nein das hat nix mit bessere Lesbarkeit zu tun sondern eben wie bei deinem Problem schon geschildert wurde einfach Redunazen zu vermeiden. Also sachen vermeiden die sich wiederholen um es auf Deutsch auszudrücken.(Klassen gehören zur OOP Programmierung dazu Objekte,Methoden unsw.)

So nun zu deinem Quellcode den würd ich mal komplett umschreiben.Mit deinen vielen If abfragen verliert man da schnell den Überblick.Sowas kann man elegant über eine switch abfrage lösen und die Elemente dann einfach includen.

Mfg Splasch
 
@Splasch:

Danke für den Hinwesi. Wenn du mir da mal ein klitzte kleines Beispiel parat hättest? Heute ist doch Freitag ;-)
Das löst mir aber immer noch nicht das Problem, dass ich eventuell die Session zu früh zerstöre.


Matze
 
Das destroy im formular ist auch net gut. Ok ich werd mir mal die Zeit nehmen und deinen Code umschreiben. dauert aber eine weile.

Ich werd dir statt den vielen if eine switch einbauen und die anderen code teile in eine neue Datei stecken.

Ich Poste es hier dann.

Hier mal ein kleines Beispiel dafür
PHP:
<?php
session_start();

if (isset($_POST['action']))
    {    $action = $_POST['action'];    
    }
    else
    {    if (isset($_GET['action']))
            {    $action = $_GET['action'];    }
            else
            {    $action = "start" ;        }
    }
switch ($action){ 
    case Memberbereich:         
            include('Memberbereich.php'); 
            break; 
    case Einstellungen: 
            include('Einstellungen.php'); 
            break; 
    case Anleitung: 
            include('Anleitung.php'); 
            break; 
    default: 
            include('willkommen.php'); 
}      
If ($_SESSION['login']== true){
include('User_Menu.php');
}Else{ include('Standart_Menu.php');}

Neue Datei name Anleitung.php
PHP:
Anleitung (offen)<br>
<a href="index.php?action=start">Start</a>
Neue Datei name Membereich.php
PHP:
include('Einstellung.php') // Prüfen ob man eingelogt ist

echo "bin drinnen<br>";
echo "Bereich Einstellungen<br>";
echo '<a href="index.php?action=start">Start</a>';
Neue Datei willkommen
PHP:
<?
if   (  $_POST['user'] != null && $_POST['passwd'] != null )
{
    echo "Willkommen auf der Kundenseite alles OK<br><br>";
if($_POST['user'] == "testname" && $_POST['passwd'] == "pass"){

    echo "Benutzername passt: Passwort OK<br><br>";
    echo "Benutzer: <b>".$user."</b><br>";
    echo "Passwort: <b>".$passwd."</b><br>";
    echo "BenutzerID: <b>".$login."</b><br>";
    
    $login = true;
    
    echo $user."<br>";
    echo $passwd."<br>";
    echo $login."<br><br>";
    $_SESSION['user'] = $user;
    $_SESSION['passwd'] = $passwd;
    $_SESSION['login'] = $login;
     
    echo "Login Erfolgreich";    
    }
    else {
    echo "Benutzername und Passwort ->  MURKKSSSSS<br>";
    echo '<a href="index.php?action=start">Start</a>';
    } 

} 
else {
    
?>
<form action="index.php?action=willkommen" method="POST">
	<table border="0" cellpadding="0" cellspacing="4">
    	<tr>
       		<th colspan="2">Melden Sie sich hier bitte an.</th>
	  	</tr>
    	<tr>
          <td align="right">User</td>
          <td><input name="user" type="text" size="30" maxlength="30"></td>
        </tr>
        <tr>
          <td align="right">Password:</td>
          <td><input name="passwd" type="password" size="30" maxlength="40"></td>
        </tr>
   		 <tr>
    		<td><input type="submit" name="send" value=" Absenden "></td>
          	<td><input type="reset" value=" Abbrechen"></td>
        </tr>
         <tr>
    		<td colspan="2" class="passwd">* Passwort <a href="index.php?status=forgot">vergessen</a>?</td>
         <tr>
      </table>
    </form>
<? }

Deine Namen vergebung ist etwas verwirrent willkommen würde ich bsp Login bennen aber jeden sein *g

Neue Datei Einstellung.php ich würd die allerdin Usercheck bennen ..
PHP:
if ($_SESSION['login'] != true)    {
    echo "Bitte erst einloggen<br>";
    echo '<a href="index.php?action=start">Start</a>';
    session_destroy();
exit();
    }

unsw. Ich denke nun sollte dir das Schema klar geworden sein. Natürlich muß man noch einiges am code ändern ich habs dir nur mal grob umgeschrieben damit du sieht wie man das mit einer switch abfrage aufbauen kann.

Das Navigation Menü mußte erst später in der Index datei einblenden nach der switch abfrage.
Mfg Splasch
 
Zuletzt bearbeitet:
Hallo Splasch,

nach dem WE erst mal vielen Dank für deine Umsetzung.
Das sieht doch sehr viel übersichtlicher aus als bei mir ;-) Danke.
Hast du noch eine Möglichkeit parat, wie ich auf jeder Seite auf der ich den Status eingeloggt habe einen Logout-Button mitziehen kann.
So wie ich das hier schonmal hatte:
PHP:
<form action="index.php" method="POST">
<!-- hier folgen die Formularelemente fuer das Abmelden-->
<input type="hidden" name="destroy" value="<?php session_destroy(); ?>">
<input type="submit" name="logout" value="Logout"></td>
</form>

Der die Session zerstört und wieder auf der Startseite landet?


Vielen Dank
Gruß Matze
 
Zurück