ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
206
206
EMPFEHLEN
-
19.08.08 21:28 #1
- Registriert seit
- Sep 2007
- Beiträge
- 527
Hallo.
Ich hab mit meinem ACP ein kleines Problem.
Und zwar werden die Daten aus dem Formular zum Mitarbeiter hinzufügen nicht in die Datenbank geschrieben obwohl der Query alle Daten enthält.
Das ist das erste mal das ich OOP richtig anzuwenden versuche.PHP-Code:case 'add':
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit'])
{
$error = 0; // Wächterstruktur
if(isset($_POST['geb']['jahr']))
{
// wenn die Daten von dem Formular kommen, prüfen
if(!checkdate($_POST['geb']['monat'],
$_POST['geb']['tag'],
$_POST['geb']['jahr']))
{
?>
<p>
Bitte geben sie ein gültiges Geburtsdatum an
</p>
<?php
$error++;
}
}
if(!$error)
{
// Session Variablen checken und initialisieren
if(!isset($_SESSION['Name']))
$_SESSION['Name'] = trim($_POST['Name']);
if(!isset($_SESSION['Email']))
$_SESSION['Email'] = trim($_POST['Email']);
if(!isset($_SESSION['KW']))
$_SESSION['KW'] = trim($_POST['KW']);
if(!isset($_SESSION['Tel']))
$_SESSION['Tel'] = trim($_POST['Tel']);
if(!isset($_SESSION['Bild']))
$_SESSION['Bild'] = trim($_POST['Bild']);
if(!isset($_SESSION['Abteilung']))
$_SESSION['Abteilung'] = trim($_POST['Abteilung']);
if(!isset($_SESSION['geb']))
$_SESSION['geb'] = sprintf('%04d-%02d-%02d',
$_POST['geb']['jahr'],
$_POST['geb']['monat'],
$_POST['geb']['tag']);
?>
<!-- Übersicht anzeigen -->
<form action="index.php?p=admin&site=mitarbeiter&action=add" method="post" class="formular">
<p>
Neuen Mitarbeiter hinzufügen;
</p>
<ol>
<li>
Name:<?php echo(htmlspecialchars($_SESSION['Name']));?>
</li>
<li>
Email:<?php echo(htmlspecialchars($_SESSION['Email']));?>
</li>
<li>
Geburtstag:<?php echo($_SESSION['geb']);?>
</li>
<li>
Kurzwahl: <? echo(htmlspecialchars($_SESSION['KW']));?>
</li>
<li>
TelefonNr.:<?php echo(htmlspecialchars($_SESSION['Tel']));?>
</li>
<li>
Bild.: <?php echo(htmlspecialchars($_SESSION['Bild']));?>
</li>
<li>
Abteilung.:<?php echo(htmlspecialchars($_SESSION['Abteilung']));?>
</li>
</ol>
</form>
<?php
back2admin();
}
}
elseif(isset($_POST['submit']) AND "Speichern" == $_POST['sumbit'])
{
$sql = "INSERT INTO
mitarbeiter
SET
name = '".addslashes($_SESSION['Name'])."',
email = '".addslashes($_SESSION['Email'])."',
kurzwahl = '".addslashes($_SESSION['KW'])."',
telefonnr = '".addslashes($_SESSION['Tel'])."',
abteilung = '".addslashes($_SESSION['Abteilung'])."',
geburtstag = '".addslashes($_SESSION['geb'])."',
bild = '".addslashes($_SESSION['Bild'])."'";
$result = new Query($sql);
if($result->error())
{
die("<pre>".$result->getError()."</pre>\n");
}
unset($result);
$id = mysql_insert_id();
echo("<p>\n");
echo(" Der Mitarbeiter wurde hinzugefügt.");
echo("</p>\n");
back2admin();
}
else
{?>
<form action="index.php?p=admin&site=mitarbeiter&action=add" method="post" class="formular">
<p>
Neuen Mitarbeiter hinzufügen
</p>
<ol>
<li>
<label for="Name">Name</label><input type="text" name="Name" id="Name"/>
</li>
<li>
<label for="email">Email</label><input type="text" name="email" id="Email"/>
</li>
<li>
<label for="KW">Kurzwahl</label><input type="text" name="KW" id="KW"/>
</li>
<li>
Geburtstag
<?php
// Formularfeld für den Tag
echo(" <select name=\"geb[tag]\">\n");
for($i=1; $i<=31; $i++)
{
echo("<option value=\"".$i."\">\n");
echo($i.".\n");
echo("</option>\n");
}
echo(" </select>\n");
// Formularfeld für den Monat
echo(" <select name=\"geb[monat]\">\n");
for($i=1; $i<=12; $i++)
{
echo("<option value=\"".$i."\">\n");
echo($monate[$i].".\n");
echo("</option>\n");
}
echo(" </select>\n");
// Formularfeld für das Jahr
echo(" <input type=\"text\" name=\"geb[jahr]\" />\n");
?>
</li>
<li>
<label for="Tel">Telefonnr</label><input type="text" name="Tel" id="Tel"/>
</li>
<li>
<label for="Bild">Bild</label><input type="text" name="Bild" id="Bild"/>
</li>
<li>
<label for="Abteilung">Abteilung</label><input type="text" name="Abteilung" id="Abteilung"/>
</li>
<li>
<input type="submit" name="submit" value="Speichern" /><input type="reset" name="submit" value="Zurücksetzen" />
<?php
echo("<input type=\"hidden\" name=\"".session_name()."\"");
echo(" value=\"".session_id()."\" />");?>
</li>
</ol>
</form>
<?php
}
break;
Hab ich bei den Formularen irgendwo einen Fehler gemacht?
Ich sitze da schon ne ganze weile bei und hab bis auf diesen Fehler eigentlich schon alle ausgebügelt, an dem beise ich mir die Zähne aus.
mfg
-
Was mir als erstes Auffällt du hast in den ersten Zwei Zeilen das stehen:
Willst du hier überprüfen, ob $_POST['submit'] = Speichern ist?PHP-Code:case 'add':
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit'])
Wenn ja probiere es mal so:
Außerdem schau die mal das an.PHP-Code:case 'add':
if(isset($_POST['submit']) AND $_POST['submit']=="Speichern")
Geändert von merzi86 (19.08.08 um 21:45 Uhr)
Würde mich über eine Positive beurteilung freuen.
Zitat von Albert Einstein
-
Moin Christoph,
hier mal die beiden Problemzeilen:
Den Tippfehler (sumbit) erkennst du jetzt sicher selbst, aber soweit kommt dein Skript garnicht, weil die 2. Zeile selbst nach Korrektur nie zutrifft, weil sie identisch mit der 1. Zeile ist.PHP-Code:if(isset($_POST['submit']) AND "Speichern" == $_POST['submit'])
//.....
elseif(isset($_POST['submit']) AND "Speichern" == $_POST['sumbit'])
-
19.08.08 22:17 #4
- Registriert seit
- Sep 2007
- Beiträge
- 527
Ok ich geb mir jetzt die Kugel. Danke Sven das wars.
Allerdings hab ich denselben Fehler jetzt bei der Edit funktion:
Der Query enthält auch hier die richtigen Daten allerdings kommen die nicht in der DB anPHP-Code:case "edit":
if(isset($_POST['submit']) AND "Aendern" == $_POST['submit'])
{?>
<form action="index.php?p=admin&site=mitarbeiter&action=edit" method="post" class="formular">
<p>
Mitarbeiterdaten bearbeiten.
</p>
<ol>
<?php
$felder = array('Name', 'Email', 'KW', 'Bild', 'Tel', 'Abteilung');
foreach($felder as $value)
{
echo(" <li>\n");
echo("<label for=\"".strtolower($value)."\">".$value."</label>\n");
echo(" <input type=\"text\" id=\"".strtolower($value)."\"");
echo(" name=\"".strtolower($value)."\"");
echo(" value=\"".htmlspecialchars($_SESSION[$value])."\" />\n");
echo(" </li>\n");
}
?>
<li>;
Geburtstag
<?php
/*$tmpdate = explode('-', $_SESSION['geb'];
$Tag = (int)$tmpdate[2];
$Monat = (int)$tmpdate[1];
$Jahr = (int)$tmpdate[0];*/
// Formularfeld für den Tag
echo(" <select name=\"geb[tag]\">\n");
for($i=1; $i<=31; $i++)
{
echo("<option value=\"".$i."\"");
if($i == $Tag)
echo(" selected=\"selected\"");
echo(">".$i.".\n");
echo("</option>\n");
}
echo(" </select>\n");
// Formularfeld für den Monat
echo(" <select name=\"geb[monat]\">\n");
for($i=1; $i<=12; $i++)
{
echo("<option value=\"".$i."\"");
if($i == $Monat)
echo(" selected=\"selected\"");
echo(">".$monate[$i].".\n");
echo("</option>\n");
}
echo(" </select>\n");
// Formularfeld für das Jahr
echo(" <input type=\"text\" name=\"geb[jahr]\"");
echo(" value=\"".$Jahr."\" />\n");
echo(" </li>\n");
echo(" <li>\n");
echo(" <input type=\"submit\" name=\"submit\" value=\"Speichern\" />\n");
echo(" <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n");
echo(" <input type=\"hidden\" name=\"".session_name()."\"");
echo(" value=\"".session_id()."\" />\n");
echo(" </li>\n");
echo(" </ol>\n");
echo("</form>\n");
back2admin();
}
elseif(isset($_POST['submit']) AND "Speichern" == $_POST['submit'])
{
$sql = "UPDATE
mitarbeiter
SET
name = '".addslashes($_SESSION['Name'])."',
email = '".addslashes($_SESSION['Email'])."',
kurzwahl = '".addslashes($_SESSION['KW'])."',
telefonnr = '".addslashes($_SESSION['Tel'])."',
abteilung = '".addslashes($_SESSION['Abteilung'])."',
geburtstag = '".addslashes($_SESSION['geb'])."',
bild = '".addslashes($_SESSION['Bild'])."'
WHERE
id = '".$_SESSION['MemberID']."';";
$memupd = new Query($sql);
if($memupd->error())
{
die("<pre>".$memupd->getError()."</pre>\n");
}
unset($memupd);
?>
<p>
Member wurde bearbeitet
</p>
<?php
}
else
{
if(isset($_POST['submit']) AND "Aendern" == $_POST['submit'])
{
if($_POST['MemberID'])
{
// MemberID in der Session speichern
$_SESSION['MemberID'] = $_POST['MemberID'];
// Memberdaten holen
$sql = "SELECT
name,
email,
kurzwahl,
telefonnr,
abteilung,
geburtstag,
bild
FROM
mitarbeiter
WHERE
id = '".$_POST['MemberID']."';";
$Member = new Query($sql);
if($Member->error())
{
die("<pre>".$Member->getError()."</pre>\n");
}
$row = $Member->fetch();
$Member->free();
unset($Member);
// Memberdaten in Session speichern
$_SESSION['Name'] = $row['name'];
$_SESSION['Email'] = $row['email'];
$_SESSION['KW'] = $row['kurzwahl'];
$_SESSION['Tel']= $row['telefonnr '];
$_SESSION['Abteilung'] = $row['abteilung'];
$_SESSION['geb'] = $row['geburtstag'];
$_SESSION['Bild'] = $row['bild'];
// Newslinks holen
}
else
{?>
<p>
Bitte wählen sie einen gültigen Mitarbeiter aus
</p>
<?php
}
}
if(isset($_POST['submit']) AND "Speichern" == $_POST['submit'])
{
$_SESSION['Name'] = trim($_POST['Name']);
$_SESSION['Email'] = trim($_POST['Email']);
$_SESSION['KW'] = trim($_POST['KW']);
$_SESSION['Tel'] = trim($_POST['Tel']);
$_SESSION['Bild'] = trim($_POST['Bild']);
$_SESSION['Abteilung'] = trim($_POST['Abteilung']);
if(!checkdate($_POST['geb']['monat'],
$_POST['geb']['tag'],
$_POST['geb']['jahr']))
{?>
<p>
Bitte geben sie ein gültiges Geburtsdatum an.
</p>
<?php
}
else
{
$_SESSION['geb'] = sprintf('%04d-%02d-%02d',
$_POST['geb']['jahr'],
$_POST['geb']['monat'],
$_POST['geb']['tag']);
}
}
if(isset($_POST['submit']) AND "Loeschen" == $_POST['submit'])
{
}
if(!isset($_SESSION['MemberID']))
{?>
<form action="index.php?p=admin&site=mitarbeiter&action=edit" method="post" class="formular">
<p>;
Mitarbeiter auswählen.
</p>
<ol>
<li>
<?php
echo(" <label for=\"memberid\">Mitarbeiter</label>\n");
$sql = "SELECT
id,
name
FROM
mitarbeiter
ORDER BY
name ASC;";
$Member = new Query($sql);
if($Member->error())
{
die("<pre>".$Member->getError()."</pre>\n");
}
echo("<select id=\"memberid\" name=\"MemberID\">\n");
echo(" <option value=\"0\">Bitte einen Mitarbeiter wählen</option>\n");
while($row = $Member->fetch())
{
echo(" <option value=\"".$row['ID']."\">\n");
echo($row['name']."\n");
echo(" </option\n");
}
echo("</select>\n");
echo(" </li>\n");
echo(" <li>\n");
echo(" <input type=\"submit\" name=\"submit\" value=\"Mitarbeiter auswählen\" />\n");
echo(" <input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n");
echo(" <input type=\"hidden\" name=\"".session_name()."\" ");
echo(" value=\"".session_id()."\" />\n");
?>
</li>
</ol>
</form><?php
}
else
{?>
<form action="index.php?p=admin&site=admit&action=edit" method="post" class="formular">
<p>
Mitarbeiter bearbeiten.
</p>
<ol>
<li>
Name:<?php echo(htmlspecialchars($_SESSION['Name']));?>
</li>
<li>
Email:<?php echo(htmlspecialchars($_SESSION['Email']));?>
</li>
<li>
Geburtstag:<?php echo($_SESSION['geb']);?>
</li>
<li>
Kurzwahl:<? echo(htmlspecialchars($_SESSION['KW']));?>
</li>
<li>
TelefonNr.:<?php echo(htmlspecialchars($_SESSION['Tel']));?>
</li>
<li>
Bild.:<?php echo(htmlspecialchars($_SESSION['Bild']));?>
</li>
<li>
Abteilung.:<?php echo(htmlspecialchars($_SESSION['Abteilung']));?>
</li>
<li>
Mitarbeiterdaten
<input type="submit" name="submit" value="Aendern" />
</li>
</li>
<li>
<input type="submit" name="submit" value="Speichern" />
<?php
echo(" <input type=\"hidden\"");
echo(" name=\"".session_name()."\"");
echo(" value=\"".session_id()."\" />\n");
?>
</li>
</ol>
</form>
<?php
}
back2admin();
}
break;
-
Na das wollen wir doch nicht hoffen.

Wenn ich das richtig sehe machst du folgendes:
Bei diesem Aufbau wird die if-Abfrage innerhalb des else-Zweiges nie ausgeführt werden, da du gar nicht erst in den else-Zweig kommst. Es trifft ja schon die Bedingung in der ersten Zeile zu.PHP-Code:if(isset($_POST['submit']) AND "Aendern" == $_POST['submit']) {
[...]
}
elseif(isset($_POST['submit']) AND "Speichern" == $_POST['submit']) {
[...]
}
else {
if(isset($_POST['submit']) AND "Aendern" == $_POST['submit']) {
// in db schreiben...
}
}
-
20.08.08 06:18 #6
- Registriert seit
- Sep 2007
- Beiträge
- 527
Ok jetzt komm ich nicht mal mehr soweit, das ich den Mitarbeiter auswählen kann.
Ich wähle den Mitarbeiter aus, klicke auf Auswählen und zack schon bin ich wieder auf dem auswähl Bildschirm.
Am Code selber hab ich soweit mal nichts verändert.
-
21.08.08 13:44 #7
- Registriert seit
- Sep 2007
- Beiträge
- 527
Hat sich erledigt
Ähnliche Themen
-
Daten werden nicht in DB geschrieben
Von MajotPayne im Forum PHPAntworten: 15Letzter Beitrag: 20.09.09, 12:17 -
Daten werden nicht in DB geschrieben
Von counteract im Forum PHPAntworten: 26Letzter Beitrag: 28.10.06, 13:10 -
Formulardaten werden nicht in Datenbank geschrieben
Von counteract im Forum PHPAntworten: 4Letzter Beitrag: 22.10.06, 15:49 -
[c++] Daten werden nicht korrekt in eine Datei geschrieben
Von Messiahs_128 im Forum C/C++Antworten: 5Letzter Beitrag: 04.04.06, 11:02 -
& und # werden nicht in die Datenbank geschrieben?
Von 2Pac im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 19.03.04, 14:41





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren