TE
TE
boss3D
Guest
^^ Vielen Dank, hat einiges klarer gemacht. 
Jedenfalls bin ich jetzt soweit, dass ...
a) der ganze Login (inkl. Registrieren) einwandfrei funktioniert
b) das Durchschalten der Kalenderwochen in projektzeiterfassung.php funktioniert
Bei b) habe ich derzeit nur das Problem, dass er standardmäßig eine KW in 1970 anzeigt, und ich von da aus weiterschalten kann. Wie sollte ich das auf 2014 kriegen?
Darüber hinaus kapiere ich nicht, wieso ich in projektzeiterfassung.php auch meine Datenbankverbindung angeben muss, damit das bei mir funktioniert. Ich hätte das eigentlich schon in config.php gemacht und diese in index.php auch VOR projektzeiterfassung.php eingebunden, aber er erkennt's einfach nicht?!
Meine SESSION Variablen aus config.php werden in projektzeiterfassung.php auch nicht erkannt. Muss ich die in allen Files angeben?
[EDIT]
Wenn ich das ganze Definitionszeugs in projektzeiterfassung.php am Anfang einfüge, dann sind alle warnings und Notices weg, und es wird auch bei einer KW in 2014 begonnen, von wo aus ich korrekt weiterschalten kann. Allerdings ist ja das nicht "Sinn der Sache"?! Ich meine, wozu habe ich dann jetzt config.php?
Oh, ein Problem habe ich gerade noch entdeckt: Bei jedem Weiterschalten der KWs gilt das scheinbar als "Bestätigen" und es entstehen "leere" Einträge in der DB! Das darf natürlich nicht passieren!
^^ Hm, ist schon klar: Die Buttons "Bestätigen", "<<" und ">>" sind alle in einer form enthalten, die index.php aufruft, in der wiederum formular.php inkludiert ist. Da wird bei jedem Button-Klick was in die DB geschrieben ohne zu prüfen, ob das jetzt vom "Bestätigen"-Button kommt. Da muss ich mir was schlaues überlegen ...
[EDIT2]
Wieder ein "workaround" ...
Aber das sind halt alles keine "Ideallösungen"?!

Jedenfalls bin ich jetzt soweit, dass ...
a) der ganze Login (inkl. Registrieren) einwandfrei funktioniert
b) das Durchschalten der Kalenderwochen in projektzeiterfassung.php funktioniert
Bei b) habe ich derzeit nur das Problem, dass er standardmäßig eine KW in 1970 anzeigt, und ich von da aus weiterschalten kann. Wie sollte ich das auf 2014 kriegen?
Darüber hinaus kapiere ich nicht, wieso ich in projektzeiterfassung.php auch meine Datenbankverbindung angeben muss, damit das bei mir funktioniert. Ich hätte das eigentlich schon in config.php gemacht und diese in index.php auch VOR projektzeiterfassung.php eingebunden, aber er erkennt's einfach nicht?!
PHP:
<?php
include('config.php');
include('formular.php');
if (isset($_SESSION['Reg'])) {
unset($_SESSION['Reg']);
}
if (!isset($_SESSION['name'])) {
include('login.php');
} else {
include('projektzeiterfassung.php');
}
?>
PHP:
<?php
session_start();
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', 'root');
define('MYSQL_PASS', 'root');
define('DATABASE', 'projektzeiterfassung');
$user = $_SESSION['name'];
$userid = $_SESSION['id'];
$rechte = $_SESSION['rechte'];
$login = false;
$kw = date('W');
$jahr = date('Y');
$monat = date('n');
$wt = date('N');
$tag = date('j') - ($wt - 1);
$wochenanfang = mktime(12, 0, 0, $monat, $tag, $jahr);
$wochenende = mktime(12, 0, 0, $monat, ($tag + 6), $jahr);
$verbindung = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db(DATABASE) or die ("Datenbank konnte nicht ausgewählt werden.");
?>
PHP:
<?php
$verbindung = mysql_connect('localhost', 'root', 'root') or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db('projektzeiterfassung') or die ("Datenbank konnte nicht ausgewählt werden.");
if (isset($_POST['wa'])) {
$wochenanfang = $_POST['wa'];
}
if (isset($_POST['we'])) {
$wochenende = $_POST['we'];
}
if (isset($_POST['prevWeek'])) {
$wochenanfang -= 60 * 60 * 24 * 7;
$wochenende -= 60 * 60 * 24 * 7;
}
if (isset($_POST['nextWeek'])) {
$wochenanfang += 60 * 60 * 24 * 7;
$wochenende += 60 * 60 * 24 * 7;
}
$kw = date('W', $wochenanfang);
$jahr = date('Y', $wochenanfang);
$monat = date('n', $wochenanfang);
$tag = date('j', $wochenanfang);
echo '<!doctype html>
<html>
<head>
<meta charset="ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Projektzeiterfassung</title>
</head>
<body>
<form action="index.php" method="post">';
echo ' <link rel="stylesheet" type="text/css" href="style.css">';
echo ' <br><h1>Projektzeiterfassung: '.$user.'</h1>';
echo ' <table>';
echo ' <tr>';
echo ' <td colspan="10" class="head_cap">';
echo ' <table style="width:100%; border:none; background-color:#A9F5BC;"><tr>';
echo ' <td style="border:none" align="left"><input type="submit" value="<<" name="prevWeek" class="switch"></td>';
echo ' <td style="width:90%; border:none; text-align:center">';
if (date('Y', $wochenanfang) <> date('Y', $wochenende)) {
echo ' Kalenderwoche '.$kw.': '.date('j.m.', $wochenanfang).' - '.date('j.m.Y', $wochenende);
} else {
echo ' Kalenderwoche '.$kw.': '.date('j.m.Y', $wochenanfang).' - '.date('j.m.Y', $wochenende);
}
echo ' <input type="hidden" value="'.$wochenanfang.'" name="wa">';
echo ' <input type="hidden" value="'.$wochenende.'" name="we">';
echo ' </td>';
echo ' <td style="border:none" align="right"><input type="submit" value=">>" name="nextWeek" class="switch"></td>';
echo ' </tr></table>';
echo ' </td>';
echo ' </tr>';
echo ' <tr>
<th>Tätigkeit</th>
<th>Produkt</th>
<th>Beschreibung</th>
<th width="150">MO <input name="mo" type="text" size="10" maxlength="10"></th>
<th width="150">DI <input name="di" type="text" size="10" maxlength="10"></th>
<th width="150">MI <input name="mi" type="text" size="10" maxlength="10"></th>
<th width="150">DO <input name="do" type="text" size="10" maxlength="10"></th>
<th width="150">FR <input name="fr" type="text" size="10" maxlength="10"></th>
<th width="150">SA <input name="sa" type="text" size="10" maxlength="10"></th>
<th width="150">SO <input name="so" type="text" size="10" maxlength="10"></th>
</tr>';
$taetigkeiten = array();
$sql_t = "SELECT * FROM taetigkeiten;";
$res_t = mysql_query($sql_t) or die ("Get Taetigkeiten failed.<br>".mysql_error());
if (mysql_num_rows($res_t))
while ($row_t = mysql_fetch_assoc($res_t)) {
$taetigkeiten[count($taetigkeiten)] = $row_t;
}
$products = array();
$sql_p = "SELECT * FROM produkte;";
$res_p = mysql_query($sql_p) or die ("Get Produkte failed.<br>".mysql_error());
if (mysql_num_rows($res_p))
while ($row_p = mysql_fetch_assoc($res_p)) {
$products[count($products)] = $row_p;
}
if( isset($_GET['add'])) {
$add = $_GET['add'];
$add++;
} elseif (!isset($_GET['rem'])) {
$add = 1;
}
if ( isset($_GET['rem'])) {
$add = $_GET['rem'];
$add--;
}
for ($a = 1; $a <= $add; $a++) {
echo '<tr><td><select name="taetigkeit'.$a.'">';
foreach ($taetigkeiten as $taetigkeit) {
echo '<option value="'.$taetigkeit['taetigkeit'].'">'.$taetigkeit['taetigkeit'].'</option>';
}
echo '</select></td>';
echo '<td><select name="product'.$a.'">';
foreach ($products as $product) {
echo '<option value="'.$product['produkt'].'">'.$product['produkt'].'</option>';
}
echo '</select></td>';
echo '<td><input name="beschreibung'.$a.'" type="text" size="50" maxlength="250"></td>';
echo '<td><input name="montag'.$a.'" type="text" size="10" maxlength="5""></td>';
echo '<td><input name="dienstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="mittwoch'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="donnerstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="freitag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="samstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="sonntag'.$a.'" type="text" size="10" maxlength="5"></td></tr>';
}
echo '</table><br>';
echo '<div class="submit"><button name="add" type="button" value="Zeile hinzufügen" onclick="window.location.href=\'projektzeiterfassung.php?add='.$add.'\';">Neue Eingabezeile hinzufügen</button> <button name="rem" type="button" value="Zeile entfernen" onclick="window.location.href=\'projektzeiterfassung.php?rem='.$add.'\';">Eingabezeile entfernen</button></div><br>';
echo '<input type="hidden" name="add" value="'.$add.'">';
echo '<div class="submit"><input type="submit" name="confirm" value="Bestätigen"> Schreibt Einträge in Datenbank ...</div>';
echo '</form>';
echo '<div class="submit"><br><br><br><form action="auswerten.php"><input type="submit" value="Bisherige Einträge in Datenbank anzeigen"> Eigene Einträge anzeigen ...</form>';
if ($rechte == 0) {
echo '<br><form action="auswerten2.php"><input type="submit" value="Einträge für folgenden Mitarbeiter anzeigen"> <input name="mitarbeiterdb" type="text" size="30" maxlength="30"></form></div>';
} else {
echo '</div>';
}
echo '</body>';
echo '</html>';
?>
[EDIT]
Wenn ich das ganze Definitionszeugs in projektzeiterfassung.php am Anfang einfüge, dann sind alle warnings und Notices weg, und es wird auch bei einer KW in 2014 begonnen, von wo aus ich korrekt weiterschalten kann. Allerdings ist ja das nicht "Sinn der Sache"?! Ich meine, wozu habe ich dann jetzt config.php?
PHP:
<?php
session_start();
$verbindung = mysql_connect('localhost', 'root', 'root') or die ("Verbindung zur Datenbank konnte nicht hergestellt werden");
mysql_select_db('projektzeiterfassung') or die ("Datenbank konnte nicht ausgewählt werden.");
$kw = date('W');
$jahr = date('Y');
$monat = date('n');
$wt = date('N');
$tag = date('j') - ($wt - 1);
$wochenanfang = mktime(12, 0, 0, $monat, $tag, $jahr);
$wochenende = mktime(12, 0, 0, $monat, ($tag + 6), $jahr);
if (isset($_POST['wa'])) {
$wochenanfang = $_POST['wa'];
}
if (isset($_POST['we'])) {
$wochenende = $_POST['we'];
}
if (isset($_POST['prevWeek'])) {
$wochenanfang -= 60 * 60 * 24 * 7;
$wochenende -= 60 * 60 * 24 * 7;
}
if (isset($_POST['nextWeek'])) {
$wochenanfang += 60 * 60 * 24 * 7;
$wochenende += 60 * 60 * 24 * 7;
}
$user = $_SESSION['name'];
$rechte = $_SESSION['rechte'];
$kw = date('W', $wochenanfang);
$jahr = date('Y', $wochenanfang);
$monat = date('n', $wochenanfang);
$tag = date('j', $wochenanfang);
echo '<!doctype html>
<html>
<head>
<meta charset="ISO-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<title>Projektzeiterfassung</title>
</head>
<body>
<form action="index.php" method="post">';
echo ' <link rel="stylesheet" type="text/css" href="style.css">';
echo ' <br><h1>Projektzeiterfassung: '.$user.'</h1>';
echo ' <table>';
echo ' <tr>';
echo ' <td colspan="10" class="head_cap">';
echo ' <table style="width:100%; border:none; background-color:#A9F5BC;"><tr>';
echo ' <td style="border:none" align="left"><input type="submit" value="<<" name="prevWeek" class="switch"></td>';
echo ' <td style="width:90%; border:none; text-align:center">';
if (date('Y', $wochenanfang) <> date('Y', $wochenende)) {
echo ' Kalenderwoche '.$kw.': '.date('j.m.', $wochenanfang).' - '.date('j.m.Y', $wochenende);
} else {
echo ' Kalenderwoche '.$kw.': '.date('j.m.Y', $wochenanfang).' - '.date('j.m.Y', $wochenende);
}
echo ' <input type="hidden" value="'.$wochenanfang.'" name="wa">';
echo ' <input type="hidden" value="'.$wochenende.'" name="we">';
echo ' </td>';
echo ' <td style="border:none" align="right"><input type="submit" value=">>" name="nextWeek" class="switch"></td>';
echo ' </tr></table>';
echo ' </td>';
echo ' </tr>';
echo ' <tr>
<th>Tätigkeit</th>
<th>Produkt</th>
<th>Beschreibung</th>
<th width="150">MO <input name="mo" type="text" size="10" maxlength="10"></th>
<th width="150">DI <input name="di" type="text" size="10" maxlength="10"></th>
<th width="150">MI <input name="mi" type="text" size="10" maxlength="10"></th>
<th width="150">DO <input name="do" type="text" size="10" maxlength="10"></th>
<th width="150">FR <input name="fr" type="text" size="10" maxlength="10"></th>
<th width="150">SA <input name="sa" type="text" size="10" maxlength="10"></th>
<th width="150">SO <input name="so" type="text" size="10" maxlength="10"></th>
</tr>';
$taetigkeiten = array();
$sql_t = "SELECT * FROM taetigkeiten;";
$res_t = mysql_query($sql_t) or die ("Get Taetigkeiten failed.<br>".mysql_error());
if (mysql_num_rows($res_t))
while ($row_t = mysql_fetch_assoc($res_t)) {
$taetigkeiten[count($taetigkeiten)] = $row_t;
}
$products = array();
$sql_p = "SELECT * FROM produkte;";
$res_p = mysql_query($sql_p) or die ("Get Produkte failed.<br>".mysql_error());
if (mysql_num_rows($res_p))
while ($row_p = mysql_fetch_assoc($res_p)) {
$products[count($products)] = $row_p;
}
if( isset($_GET['add'])) {
$add = $_GET['add'];
$add++;
} elseif (!isset($_GET['rem'])) {
$add = 1;
}
if ( isset($_GET['rem'])) {
$add = $_GET['rem'];
$add--;
}
for ($a = 1; $a <= $add; $a++) {
echo '<tr><td><select name="taetigkeit'.$a.'">';
foreach ($taetigkeiten as $taetigkeit) {
echo '<option value="'.$taetigkeit['taetigkeit'].'">'.$taetigkeit['taetigkeit'].'</option>';
}
echo '</select></td>';
echo '<td><select name="product'.$a.'">';
foreach ($products as $product) {
echo '<option value="'.$product['produkt'].'">'.$product['produkt'].'</option>';
}
echo '</select></td>';
echo '<td><input name="beschreibung'.$a.'" type="text" size="50" maxlength="250"></td>';
echo '<td><input name="montag'.$a.'" type="text" size="10" maxlength="5""></td>';
echo '<td><input name="dienstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="mittwoch'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="donnerstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="freitag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="samstag'.$a.'" type="text" size="10" maxlength="5"></td>';
echo '<td><input name="sonntag'.$a.'" type="text" size="10" maxlength="5"></td></tr>';
}
echo '</table><br>';
echo '<div class="submit"><button name="add" type="button" value="Zeile hinzufügen" onclick="window.location.href=\'projektzeiterfassung.php?add='.$add.'\';">Neue Eingabezeile hinzufügen</button> <button name="rem" type="button" value="Zeile entfernen" onclick="window.location.href=\'projektzeiterfassung.php?rem='.$add.'\';">Eingabezeile entfernen</button></div><br>';
echo '<input type="hidden" name="add" value="'.$add.'">';
echo '<div class="submit"><input type="submit" name="confirm" value="Bestätigen"> Schreibt Einträge in Datenbank ...</div>';
echo '</form>';
echo '<div class="submit"><br><br><br><form action="auswerten.php"><input type="submit" value="Bisherige Einträge in Datenbank anzeigen"> Eigene Einträge anzeigen ...</form>';
if ($rechte == 0) {
echo '<br><form action="auswerten2.php"><input type="submit" value="Einträge für folgenden Mitarbeiter anzeigen"> <input name="mitarbeiterdb" type="text" size="30" maxlength="30"></form></div>';
} else {
echo '</div>';
}
echo '</body>';
echo '</html>';
?>
^^ Hm, ist schon klar: Die Buttons "Bestätigen", "<<" und ">>" sind alle in einer form enthalten, die index.php aufruft, in der wiederum formular.php inkludiert ist. Da wird bei jedem Button-Klick was in die DB geschrieben ohne zu prüfen, ob das jetzt vom "Bestätigen"-Button kommt. Da muss ich mir was schlaues überlegen ...
[EDIT2]
Wieder ein "workaround" ...
PHP:
if (isset($_POST['confirm'])) {
$_SESSION['confirm'] = ($_POST['confirm']);
}
PHP:
if (isset($_POST['confirm'])) {
include('formular.php');
}
Zuletzt bearbeitet:
.


war ein sehr angenehmer abschluss einer arbeitswoche
auch DORT hast du zugriff auf die POST variablen. vorallem: DORT ist VOR der entscheidung in der index.php, ob er login oder das andre anzeigen soll. loggst du ihn erst in login.php ein, ist er an dem punkt schon längst vorbei und der drops ist gelutscht. du bist zwar eingeloggt, siehst aber nur die login.php