• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP - Aufstellung Komplexe Frage

Sprich ich speicher in die Datenbank die Formation für den User.

Lass sie dann in einer extra datei beim Einloggen Auslesen und binde die entsprechende Datei ein (hab ich das soweit richtig verstanden? ;))

Dann hätte ich aber doch nur den Fall beim Einloggen abgehandelt.

Aber z. B. nicht denn Fall wenn er von z.B. Starsteite auf Aufstellung klickt.
 
Ich würde bei jeder Formularübermittlung das aktuelle in die DB schreiben und immer, wenn man auf die Seite geht und keine Formulardaten vorhanden sind, die Daten aus der DB lesen.
 
Ich würde bei jeder Formularübermittlung das aktuelle in die DB schreiben und immer, wenn man auf die Seite geht und keine Formulardaten vorhanden sind, die Daten aus der DB lesen.


mh, dass ich das formular aber nicht in der aufstellung.php verarbeiten lasse sondern in einer anderen datei ändert trotzdem nichts daran oder?
 
hab gerade versucht, alles in eine Datei zu bekommen.. (also die die wo das Formular verarbeitet wird in die aufstellungsdateien) dann jedoch funktioniert das ganze nicht mehr (weiße Seite :D)

wenn ich aber alles in extra dateien habe, geht dein Vorschlag doch nicht mehr oder?
 
Ohne expliziten Code, können wir dir nicht wirklich helfen. Theoretisch kann man jeden Mist in eine extra Datei packen.
 
PHP:
<?php
if (isset($_REQUEST['menu1']))  {
    switch ($_REQUEST['menu1']) {
       case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;
   }
  require($filePhp);
} 
  

  
?>

Das ist in einer Extra Datei (also die Formularverarbeitung).. die  ganze Aufstellungsdatei zu posten würde kein Sinn machen das sind über 1000 zeilen :D
 
Meine formularverarbeitung.php sieht nun so aus :

PHP:
<?php

require("global.inc.php");



if (isset($_REQUEST['menu1']))  {
    switch ($_REQUEST['menu1']) {
       case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;
   }
  require($filePhp);
} 

    $res = mysql_query("SELECT formation FROM ".$conf['db_prefix']."_aufstellung WHERE verein_id='".$verein['id']."'");
    $formation = mysql_fetch_array($res);
    mysql_free_result($res);

if (!$_REQUEST['menu1']) {
    switch($formation['formation']) {
      case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;   
    }
    require($filePhp);	
}
?>

Nun wird das Formular aber gar nicht mehr verarbeitet.. und es erscheint immer eine weiße seite..

weiß einer warum?
 
Nun wird das Formular aber gar nicht mehr verarbeitet.. und es erscheint immer eine weiße seite..

weiß einer warum?
Da Du komplett auf eine Fehlerbehandlung verzichtest, ist es nicht verwunderlich, dass Du weder eine Fehlermeldung noch Inhalte gezeigt bekommst. Auch ist es komisch, dass Du die Datei zweimal einbinden willst, aber der eigentliche Fehler dürfte die Bedingung in der zweiten IF-Anweisung darstellen.

Du solltest Dir angewöhnen, dass IF-Anweisungen auch einen ELSE-Zweig haben und das SWITCH-Anweisungen einen DEFAULT-Bereich besitzen. Außerdem können Datenbankanweisungen auch mal fehlschlagen - in dem Zuge am besten gleich mal nach SQL-Injections umschauen.
 
PHP:
<?php

ini_set('display_errors','On');
error_reporting(E_ALL);

require("global.inc.php");



if (isset($_REQUEST['menu1']))  {
    switch ($_REQUEST['menu1']) {
       case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;
    default:
    $filePhp="aufstellung.php";
    break;
   }
  require($filePhp);
} 


else {

    $res = mysql_query("SELECT formation FROM ".$conf['db_prefix']."_aufstellung WHERE verein_id='".$verein['id']."'");
    $formation = mysql_fetch_array($res);
    mysql_free_result($res);
    
    var_dump($res);
    
    switch($formation['formation']) {
      case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;
    default:
    $filePhp="aufstellung.php";
    break;   
    }
    require($filePhp);	
}
  

  
?>

Auch hier wird nichts ausgegeben wirklich nada nur weiße Seite.. keine Fehlermeldungen.. obwohl ich das auf angeschaltet habe :(


Weißt du genau wo der fehler liegt?
 
Am geschicktesten ist wohl mein problem mit einem Cookie zu lösen. Jedoch ist mir da noch kein Gedanke gekommen wie..

Könnte mir jemand dazu nur den Theorie Teil geben? Also wie es Umsetzbar ist mit dem cookie das er immer die richtige Aufstellungsdatei nimmt? Umsetzen tu ich es dann selber :)
 
Hab das ganze jetzt einfach mal probiert mit einem Cookie.. und zwar in der aufstellung.php (ist ja eigentlich die einzigst relevante Datei.. da ja auf diese Datei immer zugegriffen wird.. (diese datei ist ja in der Navigation verlinkt ;)).

Und zwar folgendermaßen :

PHP:
// Cookie Setzen und Aufstellung Datei wählen // 

$result = mysql_query("SELECT formation FROM ".$conf['db_prefix']."_aufstellung WHERE verein_id='".$verein['id']."'"); 
$formation = mysql_fetch_array($result); 
mysql_free_result($result); 

setcookie('formation', $formation['formation'], time()+86400); 

if ($_COOKIE['formation']) { 
    switch ($_COOKIE['formation']) { 
       case "442doppel6":  
          $filePhp="aufstellung442doppel6.php";  
      break;  
      case "442raute":  
         $filePhp="aufstellung.php";  
      break;  
      case "4231lmrm":  
          $filePhp="aufstellung4231lmrm.php";  
      break;  
      case "4213":  
         $filePhp="aufstellung4213.php";   
      break;  
      case "343":  
         $filePhp="aufstellung343.php";  
      break;  
      case "442":  
         $filePhp="aufstellung442.php";  
      break;  
      case "4231lara":  
         $filePhp="aufstellung4231lara.php";  
      break; 
    } 
} 

var_dump($_COOKIE['formation']); 

//- Cookie Setzen und Aufstellung Datei wählen //

Die Ausgabe von $_COOKIE(['formation']) ergibt leider NULL.. sprich kein Wert..

An der Datenbankabfrage liegt es nicht das habe ich schon gecheckt..

Es liegt wohl am cookie.. wisst ihr was ich da falsch gemacht habe?

danke
 
Habe weitergearbeitet.. demn Cookie setz ich nun beim login (dies klappt auch hab ihn testweise mal ausgeben lassen :))

In der Aufstellungsdatei hab ich dann diese Switch abfrage :

PHP:
if ($_COOKIE['formation']) {
    switch ($_COOKIE['formation']) {
       case "442doppel6": 
          $filePhp="aufstellung442doppel6.php"; 
      break; 
      case "4231lmrm": 
          $filePhp="aufstellung4231lmrm.php"; 
      break; 
      case "4213": 
         $filePhp="aufstellung4213.php";  
      break; 
      case "343": 
         $filePhp="aufstellung343.php"; 
      break; 
      case "442": 
         $filePhp="aufstellung442.php"; 
      break; 
      case "4231lara": 
         $filePhp="aufstellung4231lara.php"; 
      break;
      default:
         $filePhp="aufstellung.php";
      break;
    }
    require($filePhp);
}


Doch leider bekomm ich wieder eine weiße seite.. keine Fehlermeldung

Error Reporting ist an ;)
 
Doch leider bekomm ich wieder eine weiße seite.. keine Fehlermeldung
Damit das mit den weißen Seiten mal aufhört:
- mittels echo, var_dump, print_r kannst Du Texte und Variablen ausgeben lassen
- es steht nirgendwo geschrieben, dass man nur ein echo, var_dump, print_r einbauen darf
- sinnvoll sind solche Ausgaben an allen Verzweigungs- und Ausstiegspunkten, so dass man sehen kann durch welche Zweige der Server läuft
- sinnvoll ist es auch die verschiedenen Ausgaben voneinander unterscheidbar zu halten, so dass eine eindeutige Zuordnung möglich wird
- veränderliche Variablen kann sollte man im Verlauf mehrfach ausgeben, um Wertänderungen verfolgen und verifizieren zu können
 
Ich habs hinbekommen :)

und zwar so

PHP:
// Cookie Setzen und Aufstellung Datei wählen //

if ($_COOKIE['formation']) {
    switch ($_COOKIE['formation']) {
       case "442doppel6": 
         header("location: aufstellung442doppel6.php");
      exit;
      case "4231lmrm": 
          header("location: aufstellung4231lmrm.php");
       exit; 
      case "4213": 
         header("location: aufstellung4213.php");
      exit; 
      case "343": 
         header("location: aufstellung343.php");
     exit; 
      case "442": 
        header("location: aufstellung442.php");
       exit; 
      case "4231lara": 
         header("location: aufstellung4231lara.php"); 
      exit;
      default:
       header("location: aufstellung.php");
      exit;
    }
}


//- Cookie Setzen und Aufstellung Datei wählen //

um zu verhindern das er immer beim aufrufen der aufstellung.php datei (da die aufstellung.php datei ja ein eigenes system ist) lasse ich in der test.php (sprich wenn ein neues System gewählt wird) den Cookie immer löschen :

PHP:
<?php

ini_set('display_errors','On');
error_reporting(E_ALL);

if (isset($_COOKIE['formation'])) {
setcookie('formation', $formation['formation'], time()-3600*24*365);
}





if (isset($_REQUEST['menu1']))  {
    switch ($_REQUEST['menu1']) {
       case "442doppel6":
          $filePhp="aufstellung442doppel6.php";
       break;
       case "442raute":
          $filePhp="aufstellung.php";
      break;
      case "4231lmrm":
          $filePhp="aufstellung4231lmrm.php";
      break;
      case "4213":
       $filePhp="aufstellung4213.php"; 
    	break;
    	case "343":
    	$filePhp="aufstellung343.php";
    	break;
    	case "442":
    	$filePhp="aufstellung442.php";
    	break;
    	case "4231lara":
    	$filePhp="aufstellung4231lara.php";
    	break;
    default:
    $filePhp="aufstellung.php";
    break;
   }
  require($filePhp);
} 

?>

Funktioniert :)

Nun eine allerletzte frage..

Ich muss nun immer einen Cookie Setzen wenn die Aufstellung gespeichert wird (der Cookie beeinhaltet natürlich die Formation).. weiß einer wie das funktioniert :)
 
Zurück
Oben