Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Problem bei Formular mit 2 verschiedenen Submit Buttons

Mitglied: Indrador

Indrador (Level 1) - Jetzt verbinden

02.09.2010 um 17:09 Uhr, 2612 Aufrufe, 1 Kommentar

Hallo ihr Lieben,

ich habe folgendes "Problem":
Ich bin eigentlich im Bereich php/html nicht zu Hause, wollte mich allerdings doch mal an sowas versuchen,
dank google, Forum und Co. bin ich bisher ganz gut zurecht gekommen, mein Script ist sicherlich was die
Performance und Codereinheit angeht ein Desaster allerdings möchte ich erstmal was funktionierendes haben und danach
grobe Schnitzer ausmerzen und Feinheiten ausbügeln.
Nun stehe ich allerdings vor einem Problem, das mir zu Hoch ist, da die Erfahrung zu wünsche übrig lässt.
self-php, Foren usw. habe ich zu genüge gelesen und fast immer alles Lösen können, nun hänge ich:

Also ich habe ein Formular,

auf diesem Formular gibt es 3 Inputfelder und
2 versteckte zur Syntaxprüfung, ebenfalls gibt es 2 Submit Buttons (den Kalendar kann man außer acht lassen, der funktioniert).
Ich möchte nun in der ersten Box eine Zahl eingeben und über den submit direkt darunter eine Query starten.
Auf Basis des Resultsets (immer nur 1 Datensatz da unique auf Nr) dieser Abfrage sollen dann die 2 unteren Felder readonly befüllt werden zur visuellen Kontrolle.
nach betätigen des zweiten Buttons soll dann eine weitere Query, die auch auf der Nummer des ersten Feldes beruht, gestartet werden.
Am Ende wird noch eine Mail generiert und eine Ausgabe für den User.

01.
<html> 
02.
<head> 
03.
<title>Test</title> 
04.
<link rel="stylesheet" type="text/css" href="http://localhost/test/style.css"
05.
<link rel="STYLESHEET" type="text/css" href="http://localhost/test/scripts/dhtmlxcalendar.css"
06.
<script type="text/javascript" src="http://localhost/test/scripts/calendarDateInput.js"></script> 
07.
</head> 
08.
 
09.
<body><div id="center"
10.
 <?php 
11.
 if(isset($_POST['suchen'])) 	{	 
12.
													$allesok = 1; 
13.
													if(empty($_POST['nr'])){ 
14.
													$allesok = 0;  
15.
													$error['nr'] = "<font color=\"red\">Bitte eine Nr eingeben!</font>";}  
16.
													if(strlen($_POST['nr'])<3){ 
17.
													$allesok = 0; 
18.
													$error['nr'] = "<font color=\"red\">Bitte die Länge der Nr prüfen zu wenig Stellen!</font>";} 
19.
													if(strlen($_POST['nr'])>4){ 
20.
													$allesok = 0; 
21.
													$error['nr'] = "<font color=\"red\">Bitte die Länge der Nr prüfen zu viele Stellen!</font>";} 
22.
								}  
23.
											 
24.
if($allesok) {  ?> 
25.
<?php 
26.
													echo $con = mysql_connect("localhost","user","abcd1234"); 
27.
													if (!$con
28.
29.
													die('Could not connect: ' . mysql_error()); 
30.
31.
													$db = mysql_select_db("test", $con); 
32.
													$sql="Select x from test where Nr = '$_POST[nr]'"
33.
													if (!mysql_query($sql,$con)) 
34.
35.
													die('Error: ' . mysql_error());					 
36.
37.
													mysql_close($con)  
38.
?> 
39.
											 
40.
 
41.
  
42.
<?php } 
43.
if(isset($_POST['ueberpruefung'])) 	{ 	 
44.
													$check = 1; 
45.
													if(empty($result['test1'])){ 
46.
													$check = 0;  
47.
													$error['nr'] = "<font color=\"red\">Fehler1!</font>";} 
48.
									}										 
49.
if($check) { ?>  
50.
<?php 
51.
													echo $con = mysql_connect("localhost","user","abcd1234"); 
52.
													if (!$con
53.
54.
													die('Could not connect: ' . mysql_error()); 
55.
56.
													$db = mysql_select_db("test", $con); 
57.
													$sql="Update test  
58.
															set x = 0 
59.
															where Nr = '$_POST[nr]'"; 
60.
													if (!mysql_query($sql,$con)) 
61.
62.
													die('Error: ' . mysql_error());					 
63.
64.
													mysql_close($con)  
65.
?> 
66.
  
67.
				<?php 
68.
  $dbh = mysql_connect("localhost","user","abcd1234"); 
69.
  $db = mysql_select_db('test'); 
70.
  $query = mysql_query("SELECT 	test1,  
71.
		test2 where Nr = '$_POST[nr]'"); 
72.
  while($result = mysql_fetch_array($query)) { 
73.
	echo "<table>\n";  
74.
	echo "\t<tr>\n"
75.
	echo "\t<td>Ihre Anfrage wurde versandt</td>\n"
76.
	echo "\t</tr>\n";   
77.
	echo "</table>\n"
78.
	echo <table><tr><td> test1:</td>"; 
79.
	echo "<td>"
80.
	echo $result['test1']; 
81.
	echo "</td></tr>"
82.
	echo "<tr><td>test2:</td>"
83.
	echo "<td>"
84.
	echo $result['test2']; 
85.
	echo "</td></tr>"
86.
87.
  mysql_close($dbh); 
88.
?>  
89.
				<?php 
90.
				$dbh = mysql_connect("localhost","user","abcd1234"); 
91.
  $db = mysql_select_db('test'); 
92.
  $query = mysql_query("SELECT 	test1, test2, from test where Nr = '$_POST[nr]'"); 
93.
  while($result = mysql_fetch_array($query)) { 
94.
				$to      = 'test@test.de'; 
95.
				$subject = 'Test'; 
96.
				$message = 'Test:			 
97.
	test1:		'.$result['test1'].' 
98.
	test2:		'.$result['test2'].''; 
99.
				$headers = 'From: test2@test.de' . "\r\n"
100.
				'Reply-To: test2@test.de' . "\r\n"
101.
				'Bcc: test2@test.de'  . "\r\n"
102.
				'X-Mailer: PHP/' . phpversion(); 
103.
				mail($to, $subject, $message, $headers); 
104.
105.
  mysql_close($dbh); 
106.
				?> 
107.
					<?php 
108.
109.
  else 
110.
111.
  ?>    
112.
  <table width=100%> 
113.
  <tr><td align="left" valign="top"><font color="black" ><b>test<br> 
114.
  uns per Mail zugestellt.</b></i></font></td><td align="right" valign="top"><img src="images/Logo.jpg"></td></tr> 
115.
  <tr><td align ="Center"><br> 
116.
  <table width = "550" bgcolor ="white"
117.
  <form name="Test 1" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"
118.
	<tr><td> 
119.
					 <?php echo $error['nr'];?><br> 
120.
					  <font color="black">Nr:</font><br> 
121.
					  <input name="nr" type="text" size="25" value=""> <br>					   
122.
		</td> 
123.
	</tr> 
124.
	<tr> 
125.
		<td> 
126.
		<input type="hidden" name="suchen" value="1"
127.
		<input type="submit" name="Test suchen" value="Suchen"
128.
		</td> 
129.
	</tr> 
130.
	</form> 
131.
  <form name="Test 2" method="post" action="<?php echo $_SERVER['PHP_SELF']?>"
132.
	<tr> 
133.
		<td>		 
134.
					<br><font color="black">test1:</font><br> 
135.
					<input name="1test" type="text" size="25" value="<?php echo $result['test1']?>" readonly> <br> 
136.
		</td> 
137.
		<td>			   
138.
					<br><font color="black">test2:</font><br> 
139.
					<input name="2test" type="text" size="25" value="<?php echo $result['test2']?>" readonly> <br>					   
140.
		</td> 
141.
	</tr> 
142.
	<tr> 
143.
		<td><?php echo $error['edate'];?><br> 
144.
			<font color="black">testdatum:</font><br> 
145.
			<script>DateInput('edate', true, 'YYYY-MM-DD')</script> 
146.
			<input type="button" onClick="alert(this.form.edate.value)" value="Datum prüfen (Jahr-Monat-Tag)"><br><br> 
147.
		</td> 
148.
	</tr> 
149.
	 
150.
		 
151.
  <tr><td> 
152.
 <input type="hidden" name="ueberpruefung" value="1">  
153.
  <input type="submit" name="3 test" value="Absenden"
154.
   
155.
  </form> 
156.
  </td></tr></table><br></td></tr></table> 
157.
  <?php 
158.
159.
  ?> 
160.
   
161.
   
162.
</body> </div> </html>
Ich danke euch allen, falls ihr denkanstöße oder Codeschnipsel/Beispiele habt.
Ich glaube ich brauche es nicht so extrem vorgekaut also eine Lösung möchte ich natürlich nicht,
aber der ein oder andere Ansatz wäre nett.

Gruß an Alle
Mitglied: EvilMoe
02.09.2010 um 18:34 Uhr
Dazu gibt es mehrere Möglichkeiten.

Das Einfachste wäre wenn du nachdem ersten "submit" die Daten die bis dahin verarbeitet wurden (also die eine Zahl) in ein hidden Feld schreibst.
Wenn du dann auf den 2. submit drückst kannst du die Variable wieder auslesen (nicht vergessen nochmal zu validieren!).

Das andere wäre per sessions.

Deine Variablen in einer session speichern, dann kannst du dort später wieder ran.




TIPP: Achte auf SQL Injection. NIEMALS in einem Query $_POST oder ähnliches schreiben.
Auch keine Benutzereingaben direkt ausgeben! Vorher sollte htmlspecialchars benutzt werden.
Bitte warten ..
Ähnliche Inhalte
Grafikkarten & Monitore

2.Monitor über button an- und ausschalten

Frage von master3477Grafikkarten & Monitore5 Kommentare

Hallo, ich habe 2 Monitore m PC angeschlossen, die die Anzeige spiegeln. Auf einem arbeite ich, der andere ist ...

HTML

JavaScript Button Problem

gelöst Frage von DomiZone1HTML2 Kommentare

hallo ich wollte für ein Script testen ob ein Button immer noch Gedrückt ist nur auf google finde ich ...

PHP

PHP Problem mit Formular

gelöst Frage von vServerPHP6 Kommentare

Hallo, ich habe ein Formular jedoch ein Problem das später nicht alle Felder weitergegeben werden? und hier hab ich ...

Windows Server

FailoverCluster mit 2 verschiedenen Festplatten

Frage von mksadmWindows Server13 Kommentare

Servus zusammen, folgende Netzwerkkonfiguration liegt vor: Ziel soll es sein, das egal was ausfällt (ob ESX oder SAN oder ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 2 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 5 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 5 StundenMicrosoft3 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 2 TagenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1026 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Server-Hardware
Server für Exchange 2016, Kaufberatung
Frage von MazenauerServer-Hardware10 Kommentare

Guten Tag werte Gemeinde, Vorab: Ich dachte es gab mal einen separaten Bereich für solche Anfragen, habe ich leider ...