WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Formular Daten in Session und in einer Datenbank speichern - Problem beim Speichern der Daten » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von flipflop
hört sich super an
Wo kann man sich das ganze mal ansehen?
bin doch neugierig
von Burner
Hallo flipflop,

vielen Dank für deine Antwort.
Ich habe mir deine Vorschläge genau angeschaut.

Ich habe die Sessions nun rausgeschmissen und übergebe alle relevanten Daten via "post" welche dann, nach überprüfung, in der Datenbank gespeichert werden.

Also, ich habe das Formular. Wenn die Daten eingeben wurde werden diese via Post an die Übersichtsseite übergeben. Stimmen die Daten kann ich diese in der Datenbank speichern. Wenn nicht kommt eine Fehlermeldung und man wird zurück zur Formularseite geleitet.

Gruß
Burner

von flipflop
Frage 1:
Warum gibst Du den HTML-Code fürs Formular über echo aus?
mache doch lieber
?>
quellcode formular
<?php
...?>

Frage 2:
Warum überhaupt in einer Session speichern?
Brauchst Du die Daten dauerhaft? oder nur auf in den beiden Schritten?

- Formular per post an die 2te Seite
- dann alle $_POST['var'] als hidden input in ein 2tes Form.
- dann alle $_POST['var'] in die Datenbank

geht auch ohne Session
alternativ um Dir Schreibarbeit zu sparen kannst Du auch alles in ein Array speichern

Frage 3:
"Übersicht" == $_POST['submit']
schreibt man das nicht andersrum?

Frage 4:
1: 
2: 
3: 
4: 
5: 
6:
if(isset($_POST['submit']) AND "Übersicht" == $_POST['submit'])	{
				}
				else
				{  .....


wenn es ein submit gibt und Übersicht = submit ist dann mache nichts
sonst zeige das fomular an?
macht wenig sinn
und wenn ich das richtig sehe so auf die Schnelle dann kommt danach noch ein elseif


Vorschlag:
Überlege Dir was soll angezeigt werden wenn die Seite aufgerufen wird?
Wenn ein Form angezeigt werden soll -> zustand 1
Wenn das erste Form abgesendet wird soll alles angezeigt werden -> zustand 2
danach soll alles in die Datenbank und eine Meldung angezeigt werden -> zustand 3
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13:
$zeige_form1 = 1;
if (isset($submit) {
  if ($submit == "value von form zustand 1") { 
  prüfe Daten -> 
  Daten richtig, zeige Daten an, $zeige_form1 = 0;
  Daten nicht richtig, zeige Fehlermeldung an, $zeige_form1 = 1; }
  elseif ($submit == "value von form zustand 2") { trage Daten in die DB ein }
  }
if ($zeige_form1 == 1) {
zeige Formular von Zustand 1 an 
}

so würde ich es aufbauen

Julian
von Burner
Hallo zusammen,

also ich habe ein Script, zum anlegen von Mitglieder erstellt. Die Daten werden dabei über ein Formlar in einer Session gespeichert und dann auf einer Kontrollseite ausgegeben. Nachdem man nun den hinzufügen Button gedrückt hat sollten die Daten nun in einer Datenbank gespeichert werden.

Soweit funktioniert auch alles. Die Daten aus dem Formular werden aus der Session direkt auf der Kontrollseite ausgegeben. Aber die Daten werden nicht in die Datenbank geschrieben. Nachdem klick auf Hinzufügen, landet man automatisch wieder auf der Hauptseite ohne irgendeine Fehlermeldung.

Ich blicke langsam nicht mehr durch. Ich habe mal den Quellcode kopiert.
Vielleich fällt euch ein Fehler im Code auf.
Danke schon einmal.



1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27: 
28: 
29: 
30: 
31: 
32: 
33: 
34: 
35: 
36: 
37: 
38: 
39: 
40: 
41: 
42: 
43: 
44: 
45: 
46: 
47: 
48: 
49: 
50: 
51: 
52: 
53: 
54: 
55: 
56: 
57: 
58: 
59: 
60: 
61: 
62: 
63: 
64: 
65: 
66: 
67: 
68: 
69: 
70: 
71: 
72: 
73: 
74: 
75: 
76: 
77: 
78: 
79: 
80: 
81: 
82: 
83: 
84: 
85: 
86: 
87: 
88: 
89: 
90: 
91: 
92: 
93: 
94: 
95: 
96: 
97: 
98: 
99: 
100: 
101: 
102: 
103: 
104: 
105: 
106: 
107: 
108: 
109: 
110: 
111: 
112: 
113: 
114: 
115: 
116: 
117: 
118: 
119: 
120: 
121: 
122: 
123: 
124: 
125: 
126: 
127: 
128: 
129: 
130: 
131: 
132: 
133: 
134: 
135: 
136: 
137: 
138: 
139: 
140: 
141: 
142: 
143: 
144: 
145: 
146: 
147: 
148: 
149: 
150: 
151: 
152: 
153: 
154: 
155: 
156: 
157: 
158: 
159: 
160: 
161: 
162: 
163: 
164: 
165: 
166: 
167: 
168: 
169: 
170: 
171: 
172: 
173: 
174: 
175: 
176: 
177: 
178: 
179: 
180: 
181: 
182: 
183: 
184: 
185: 
186: 
187: 
188: 
189: 
190: 
191: 
192: 
193: 
194: 
195: 
196: 
197: 
198: 
199: 
200: 
201: 
202: 
203: 
204: 
205: 
206: 
207: 
208: 
209: 
210: 
211:
<?php
    $rights = getRights();
    if(!in_array("Members", $rights))
    {
        no_rights();
    }
    else
    {
        switch(isset($_GET['action'])?$_GET['action']:'') {
            case "add":
				if(isset($_POST['submit']) AND "Übersicht" == $_POST['submit'])	{
				}
				else
				{   
					echo("<form action=\"index.php?section=admin&amp;site=member&amp;action=add\" ");
					echo("      method=\"post\"");
					echo("      class=\"formular\">\n");
					echo("    <p>\n");
					echo("        Neues Teammitglied hinzufügen\n");
					echo("    </p>\n");
					echo("    <ol>\n");
					echo("        <li>\n");
					echo("           <label for=\"name\">Name</label>\n");
					echo("           <input type=\"text\" name=\"name\" id=\"name\"/>\n");
					echo("        </li>\n");
					echo("        <li>\n");
					echo("           <label for=\"email\">Email</label>\n");
					echo("           <input type=\"text\" name=\"email\" id=\"email\"/>\n");
					echo("        </li>\n");
					echo("        <li>\n");
					echo("               <label for=\"ICQ\">ICQ</label>\n");
					echo("               <input type=\"text\" name=\"ICQ\" id=\"ICQ\"/>\n");
					echo("        </li>\n");
					echo("        <li>\n");
					echo("               Geburtstag\n");
// 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");
					echo("        </li>\n");
					echo("        <li>\n");
					echo("               Team beigetreten\n");
// Formularfeld für den Tag
					echo("                <select name=\"join[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=\"join[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=\"join[jahr]\" />\n");
					echo("        </li>\n");
					echo("        <li>\n");
					echo("<input type=\"submit\" name=\"submit\" value=\"Übersicht\" />\n");
					echo("<input type=\"reset\" name=\"submit\" value=\"Zurücksetzen\" />\n");
					echo("<input type=\"hidden\" name=\"".session_name()."\"");
					echo("                          value=\"".session_id()."\" />");
					echo("        </li>\n");
					echo("    </ol>\n");
					echo("</form>\n");
				}
						$error = 0; // Wächterstruktur
						if(isset($_POST['geb']['jahr'],
								 $_POST['join']['jahr']))
						{
// wenn die Daten von dem Formular kommen, prüfen
							if(!checkdate($_POST['geb']['monat'],
										  $_POST['geb']['tag'],
										  $_POST['geb']['jahr']))
							{
								echo("<p>\n");
								echo("    Bitte geben sie ein gültiges Geburtsdatum an.\n");
								echo("</p>\n");
								$error++;
							}
							if(!checkdate($_POST['join']['monat'],
										  $_POST['join']['tag'],
										  $_POST['join']['jahr']))
							{
								echo("<p>\n");
								echo("    Bitte geben sie ein gültiges Beitrittsdatum an.\n");
								echo("</p/gt;\n");
								$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['ICQ']))
								$_SESSION['ICQ'] = trim($_POST['ICQ']);
							if(!isset($_SESSION['geb']))
								$_SESSION['geb'] = sprintf('%04d-%02d-%02d',
														   $_POST['geb']['jahr'],
														   $_POST['geb']['monat'],
														   $_POST['geb']['tag']);
							if(!isset($_SESSION['join']))
								$_SESSION['join'] = sprintf('%04d-%02d-%02d',
														   $_POST['join']['jahr'],
														   $_POST['join']['monat'],
														   $_POST['join']['tag']);
							if(!isset($_SESSION['history']))
								$_SESSION['history'] = array();


				}
				elseif(isset($_POST['submit']) AND "Member hinzufügen" == $_POST['submit'])
				{
					$sql = "INSERT INTO
								member
							SET
								ID = '".$_SESSION['ID']."',
								Name = '".addslashes($_SESSION['Name'])."',
								Email = '".addslashes($_SESSION['Email'])."',
								Geburtstag = '".addslashes($_SESSION['geb'])."',
								ICQ = '".addslashes($_SESSION['ICQ'])."',
								Joined = '".addslashes($_SESSION['join'])."';";
					$result = new Query($sql);
					if($result->error())
					{
						die("<pre>".$result->getError()."</pre>\n");
					}
					unset($result);
			
					echo("<p>\n");
					echo("    Der Member wurde hinzugefügt.");
					echo("</p>\n");
					back2admin();
				}
// Übersicht anzeigen
            echo "<form action=\"index.php?section=admin&amp;site=admit&amp;action=add\" ";
            echo "    method=\"post\"";
            echo "    class=\"formular\">\n";
            echo "    <p>\n";
            echo "        Neuen Member hinzufügen\n";
            echo "    </p>\n";
            echo "    <ol>\n";
            echo "        <li>\n";
            echo "            Name:\n";
            echo htmlspecialchars($_SESSION['Name']);
            echo "        </li>\n";
            echo "        <li>\n";
            echo "            Email:\n";
            echo htmlspecialchars($_SESSION['Email']);
            echo "        </li>\n";
            echo "        <li>\n";
            echo "                Geburtstag:\n";
            echo $_SESSION['geb'];
            echo "        </li>\n";
            echo "        <li>\n";
            echo "                Team beigetreten:\n";
            echo $_SESSION['join'];
            echo "        </li>\n";
            echo "        <li>\n";
            echo "            <input type=\"submit\" name=\"submit\"";
            echo "                   value=\"Teammitglied hinzufügen\" />\n";
            echo "            <input type=\"hidden\"";
            echo "                   name=\"".session_name()."\"";
            echo "                   value=\"".session_id()."\" />\n";
            echo "        </li>\n";
            echo "    </ol>\n";
            echo "</form>\n";
            back2admin();
		}
break;

/*            case "edit":
                break;
            case "del":
                break;
            default:
                echo("<p>\n");
                echo("    Bitte benutzen sie nur einen Link aus dem Adminmenu.\n");
                echo("</p>\n");
                back2admin();
                break;
*/
	}
}    
?>



---
- Die deutsche Sprache sollte sanft und ehrfurchtsvoll zu den toten Sprachen abgelegt werden, denn nur die Toten haben die Zeit, die Sprache zu lernen

Mark Twain (30.11.1835 - 21.04.1910) US-Schriftsteller

Nach oben