egokyniker
Grünschnabel
Hallo
Ich habe ein PHP-Programm , das mir Probleme bereitet. Ich arbeite an einer Klausurenverwaltung, das menü besteht unter anderem aus
kluasur_1
studentenkartei
neuer eintrag
In den neuem eintrag konnte man neue studenten anlegen mit Punkten etc.
aber er zeigt mir die Einagebfelder nicht merh an , da steht nur noch die Überschrift " Eintrag"
Da drüber steht.
string(14) "lib_kartei.php" wuffwuff
die Datei liegt aber im richtigen Ordner : public_html/klausurenverwaltung/lib
sie ist drin und ich weiß nicht warum er diese nicht mehr anzeigt
vorher hat es funktioniert. wo liegt der fehler????
Ich habe ein PHP-Programm , das mir Probleme bereitet. Ich arbeite an einer Klausurenverwaltung, das menü besteht unter anderem aus
kluasur_1
studentenkartei
neuer eintrag
In den neuem eintrag konnte man neue studenten anlegen mit Punkten etc.
aber er zeigt mir die Einagebfelder nicht merh an , da steht nur noch die Überschrift " Eintrag"
Da drüber steht.
string(14) "lib_kartei.php" wuffwuff
die Datei liegt aber im richtigen Ordner : public_html/klausurenverwaltung/lib
sie ist drin und ich weiß nicht warum er diese nicht mehr anzeigt





vorher hat es funktioniert. wo liegt der fehler????
PHP:
<?php
/**
* @brief Studentenkartei
*
* @param $dbh PDO DB handle
* @param $parameter Die Parameter die vom Menue übergeben werden
* @param &$smarty die Referenz auf das Smarty Objekt
*/
function kartei__laden($dbh, $parameter, &$smarty)
{
$klausur = klausur_lesenId($dbh, $parameter['klausurid']);
// Changes an Smarty schicken
$smarty->assign('klausurchanges', $klausur['changes']);
global $global_fachrichtungen;
$smarty->assign('fachrichtungen',$global_fachrichtungen);
$url = $_SERVER['REQUEST_URI'];
$url = rtrim($url,'/');
$url = rtrim($url,'0123456789');
$laden = true;
// Studenten ID
$id = (int) trim($parameter['urlparams'], '/');
// Formular verarbeiten, d.h. speichern oder löschen
if (filter_input(INPUT_POST, 'formular') === 'student_speichern') {
// soll Student gelöscht werden?
$filter = filter_input(INPUT_POST, 'loeschen');
if (!empty($filter)) {
if (filter_input(INPUT_POST, 'wirklich') === 'ja') {
$res = student_loeschen($dbh, $parameter['klausurid'], $id);
if ($res === false) {
$smarty->assign('meldung', 'Student konnte nicht geloescht werden.');
}
else {
$_SESSION['sess_meldung'] = 'Student erfolgreich gelöscht.';
header('Location: '.$url);
exit();
}
}
else {
$smarty->assign('meldung', 'Student nicht gelöscht, da "wirklich" nicht angekreuzt war.');
}
}
// Student speichern
elseif((bool) filter_input(INPUT_POST, 'neu') !== true) {
$save = true;
$student = student_lesenId($dbh, $parameter['klausurid'], $id);
$hash = md5($student['vorname'].$student['name'].$student['wiederholer'].$student['fachrichtung'].$student['matrikelnummer'].$student['punkte'].$student['semester'].$student['id']);
if ($hash != $_POST['student_hash'])
{
$_SESSION['sess_meldung'] = 'Nicht gespeichert, da der Student seit dem Laden dieser Seite verändert wurde.';
header('Location: '.$url.$id.'/');
exit();
}
$punkte = array();
for($i = 0; $i < 12; $i++)
{
$p = filter_input(INPUT_POST, 'punkte'.$i, FILTER_SANITIZE_STRING);
if ($p == '' && $p != '0')
$p = '-';
if ($p != '-')
$p = str_replace(',', '.', $p);
if ($p != '-' && !is_numeric($p))
{
$_SESSION['sess_meldung'] = 'Nicht gespeichert, da ein ungültiges Punkteformat angegeben war.';
header('Location: '.$url.$id.'/');
exit();
}
else
{
$punkte[$i] = $p;
}
}
if ($_POST['name'] == '')
{
$smarty->assign('meldung', 'Bitte einen Namen angeben.');
$save = false;
}
if ($_POST['vorname'] == '')
{
$smarty->assign('meldung', 'Bitte einen Vornamen angeben.');
$save = false;
}
if ($_POST['matrikelnummer'] == '')
{
$smarty->assign('meldung', 'Bitte eine Matrikelnummer angeben.');
$save = false;
}
if ($save) {
if (student_aendern($dbh, $parameter['klausurid'], $id, array('name' => filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING),
'vorname' => filter_input(INPUT_POST, 'vorname', FILTER_SANITIZE_STRING),
'matrikelnummer' => filter_input(INPUT_POST, 'matrikelnummer', FILTER_SANITIZE_STRING),
'semester' => filter_input(INPUT_POST, 'semester', FILTER_SANITIZE_STRING),
'wiederholer' => filter_input(INPUT_POST, 'wiederholer', FILTER_SANITIZE_STRING),
'fachrichtung' => filter_input(INPUT_POST, 'fachrichtung', FILTER_SANITIZE_STRING),
'punkte' => $punkte)))
$_SESSION['sess_meldung'] = 'Student gespeichert';
else
$_SESSION['sess_meldung'] = 'Änderungen wurden nicht gespeichert. Bitte korrekte Werte angeben oder die Klausur ist gesperrt.';
// Speichern und (weiter|vor|nix)
$filter_wei = filter_input(INPUT_POST, 'submitwei');
$filter_vor = filter_input(INPUT_POST, 'submitvor');
if (!empty($filter_wei)) {
$next = $id;
switch ($_SESSION['filter'])
{
case 'info': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "fachrichtung='info'"); break;
case 'ninfo': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "NOT(fachrichtung='info')"); break;
case 'all': default: $studenten = student_alleLesen($dbh, $parameter['klausurid']); break;
}
for ($i = 0; $i < count($studenten); $i++)
if ($studenten[$i]['id'] == $id)
{
if ($i < count($studenten) - 1)
$next = $studenten[$i + 1]['id'];
break;
}
header('Location: '.$url.$next.'/');
}
elseif (!empty($filter_vor))
{
$last = $id;
switch ($_SESSION['filter'])
{
case 'info': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "fachrichtung='info'"); break;
case 'ninfo': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "NOT(fachrichtung='info')"); break;
case 'all': default: $studenten = student_alleLesen($dbh, $parameter['klausurid']); break;
}
for ($i = 0; $i < count($studenten); $i++)
if ($studenten[$i]['id'] == $id)
{
if ($i > 0)
$last = $studenten[$i - 1]['id'];
break;
}
header('Location: '.$url.$last.'/');
}
}
}
// Student erzeugen
elseif ((bool) filter_input(INPUT_POST, 'neu') === true) {
$save = true;
$punkte = array();
for($i = 0; $i < 12; $i++)
{
$p = filter_input(INPUT_POST, 'punkte'.$i, FILTER_SANITIZE_STRING);
if ($p == '' && $p != '0')
$p = '-';
if ($p != '-')
$p = str_replace(',', '.', $p);
if ($p != '-' && !is_numeric($p))
{
$_SESSION['sess_meldung'] = 'Nicht gespeichert, da ein ungültiges Punkteformat angegeben war.';
header('Location: '.$url.'neu/');
exit();
}
else
{
$punkte[$i] = $p;
}
}
if ($_POST['name'] == '')
{
$smarty->assign('meldung', 'Bitte einen Namen angeben.');
$save = false;
}
if ($_POST['vorname'] == '')
{
$smarty->assign('meldung', 'Bitte einen Vornamen angeben.');
$save = false;
}
if ($_POST['matrikelnummer'] == '')
{
$smarty->assign('meldung', 'Bitte eine Matrikelnummer angeben.');
$save = false;
}
if ($save)
{
$id = student_anlegen($dbh, $parameter['klausurid'], array( 'name' => filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING),
'vorname' => filter_input(INPUT_POST, 'vorname', FILTER_SANITIZE_STRING),
'matrikelnummer' => filter_input(INPUT_POST, 'matrikelnummer', FILTER_SANITIZE_STRING),
'semester' => filter_input(INPUT_POST, 'semester', FILTER_SANITIZE_STRING),
'wiederholer' => filter_input(INPUT_POST, 'wiederholer', FILTER_SANITIZE_STRING),
'fachrichtung' => filter_input(INPUT_POST, 'fachrichtung', FILTER_SANITIZE_STRING),
'punkte' => $punkte));
if ($id === false) {
$_SESSION['sess_meldung'] = 'Student konnte nicht angelegt werden: Matrikelnummer existiert bereits für diese Klausur!';
}
else {
$_SESSION['sess_meldung'] = 'Student gespeichert';
}
$parameter['neu'] == true;
header('Location: '.$url.'/');
}
}
}
// Anzeigen
if($laden) {
if (array_key_exists('sess_meldung', $_SESSION) && !empty($_SESSION['sess_meldung'])) {
$smarty->assign('meldung', $_SESSION['sess_meldung']);
$_SESSION['sess_meldung'] = '';
}
// Keine ID übergeben -> Übersicht anzeigen
if ($id === 0 && !(array_key_exists('neu', $parameter) && $parameter['neu'])) {
if (filter_input(INPUT_POST, 'formular') === 'filter')
{
$_SESSION['filter'] = $_POST['filter'];
}
elseif (!array_key_exists('filter', $_SESSION)) {
$_SESSION['filter'] = 'all';
}
$smarty->assign('filter', $_SESSION['filter']);
switch ($_SESSION['filter'])
{
case 'info': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "fachrichtung='info'"); break;
case 'ninfo': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "NOT(fachrichtung='info')"); break;
case 'all': default: $studenten = student_alleLesen($dbh, $parameter['klausurid']); break;
}
$smarty->assign('modus', 'uebersicht');
$smarty->assign('studenten', $studenten);
return;
}
// ID übergeben -> Student anzeigen
elseif ($id > 0 && !(array_key_exists('neu', $parameter) && $parameter['neu'])) {
$student = student_lesenId($dbh, $parameter['klausurid'], $id);
if ($student === false)
{
$smarty->assign('meldung', 'Konnte den Student nicht finden.');
return;
}
$punkte = explode(':', $student['punkte']);
for ($i = 0; $i < 12; $i++)
if ($punkte[$i] === '-')
$punkte[$i] = '';
else
$punkte[$i] = str_replace('.', ',', $punkte[$i] / 10);
$hash = md5($student['vorname'].$student['name'].$student['wiederholer'].$student['fachrichtung'].$student['matrikelnummer'].$student['punkte'].$student['semester'].$student['id']);
$smarty->assign('filter', $_SESSION['filter']);
switch ($_SESSION['filter'])
{
case 'info': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "fachrichtung='info'"); break;
case 'ninfo': $studenten = student_alleLesenFilter($dbh, $parameter['klausurid'], "NOT(fachrichtung='info')"); break;
case 'all': default: $studenten = student_alleLesen($dbh, $parameter['klausurid']); break;
}
for ($i = 0; $i < count($studenten); $i++)
if ($studenten[$i]['id'] == $id)
break;
$smarty->assign('studenten_index', $i);
$smarty->assign('studenten_anzahl', count($studenten));
$url = $_SERVER['REQUEST_URI'];
$url = rtrim($url,'/');
$url = rtrim($url,'0123456789');
$links = array();
if ($i - 100 >= 0)
$links[] = array('link' => $url.$studenten[$i - 100]['id'].'/', 'text' => '< 100');
if ($i - 50 >= 0)
$links[] = array('link' => $url.$studenten[$i - 50]['id'].'/', 'text' => '< 50');
for ($j = $i - 10; $j < $i; $j++)
if ($j >= 0)
$links[] = array('link' => $url.$studenten[$j]['id'].'/', 'text' => '< '.($i - $j));
for ($j = $i + 1; $j < $i + 11; $j++)
if ($j < count($studenten))
$links[] = array('link' => $url.$studenten[$j]['id'].'/', 'text' => '> '.($j - $i));
if ($i + 50 < count($studenten))
$links[] = array('link' => $url.$studenten[$i + 50]['id'].'/', 'text' => '> 50');
if ($i + 100 < count($studenten))
$links[] = array('link' => $url.$studenten[$i + 100]['id'].'/', 'text' => '> 100');
$smarty->assign('links', $links);
$smarty->assign('student', $student);
$smarty->assign('punkte', $punkte);
$smarty->assign('hash', $hash);
$smarty->assign('modus', 'formular');
return;
}
// Neu Formular?
elseif (array_key_exists('neu', $parameter) && $parameter['neu'] || $id === 0)
{
$smarty->assign('modus', 'formular');
$smarty->assign('neu', true);
return;
}
}
}