Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Datenbank insert vereinfachen

Frage Entwicklung PHP

Mitglied: PCChecker

PCChecker (Level 1) - Jetzt verbinden

20.03.2010 um 11:00 Uhr, 3801 Aufrufe, 15 Kommentare

Hallo zusammen!

Ich hab mal ne Frage zu nem code wo es mir darum geht ihn ein bisschen zu vereinfachen.
Ich habe zwei Button die dann jeweils 1 Zeile aus einer Datenbank auslesen, ein paar Werte hinzufügen und in eine andere Datenbank reinschreiben.
Also das Produkt auswählen-> Session ID hinzufügen-> in Warenkorb reinschreiben.

Mein Code sieht folgendermaßen aus:

01.
<?php 
02.
//Produkt 1 
03.
 
04.
//überprüfen ob Button gedrückt wurde 
05.
if (isset($_POST["produkt1"])&& 
06.
	$_POST["produkt1"] == "Senden") { 
07.
 
08.
	//Auswahl des Artikel mit PID 1 
09.
	$produkt1 = mysql_query("select * from produkt where pid ='1'"); 
10.
 
11.
	//Aufsplittung der einzelnen Spalten der Zeile mit PID 1 
12.
	while ($row = mysql_fetch_array ($produkt1)){ 
13.
 
14.
		$artikelbez	=	$row['artikelbez']; 
15.
		$artikelnr	=	$row['artikelnr']; 
16.
		$pid		=	$row['pid']; 
17.
		$preis		=	$row['preis']; 
18.
 
19.
		//Abfrage der Daten in der Spalte Menge im Warenkorb für SID und PID 1 
20.
		$mengentest = mysql_query("SELECT menge FROM warenkorb WHERE sid = '$sid' AND pid = '$pid'"); 
21.
 
22.
		$num	=	mysql_fetch_array($mengentest); 
23.
		$menge	=	$num['menge']; 
24.
 
25.
			//Abfrage Menge von SID und PID 1 im Warenkorb 
26.
			if ($menge == 0){ 
27.
			//Schreiben in Warenkorb wenn Menge = 0 für PID 1 (WKID, SID, PID, Artikelbez, Artikelnr, Menge=1, Preis) 
28.
			mysql_query("insert into warenkorb values ('','$sid','$pid','$artikelbez','$artikelnr','1','$preis')"); 
29.
			//Menge-IF--Klammer schliessen 
30.
31.
			 
32.
			//Else Befehl wenn Menge im Warenkorb nicht 0 ist 
33.
			else { 
34.
			//erhöhen der Menge im Warenkorb von SID und PID 1 um 1 
35.
			mysql_query("UPDATE warenkorb SET menge=menge+1 WHERE sid = '$sid' AND pid = '$pid'"); 
36.
			//Menge-Else--Klammer schliessen 
37.
38.
			 
39.
	//while-Schleife Ausführung beenden 
40.
41.
	 
42.
//Button-IF--Klammer schliessen 
43.
44.
 
45.
//Produkt 2 
46.
 
47.
//überprüfen ob Button gedrückt wurde 
48.
if (isset($_POST["produkt2"])&& 
49.
	$_POST["produkt2"] == "Senden") { 
50.
 
51.
	//Auswahl des Artikel mit PID 1 
52.
	$produkt2 = mysql_query("select * from produkt where pid ='2'"); 
53.
 
54.
	//Aufsplittung der einzelnen Spalten der Zeile mit PID 2 
55.
	while ($row = mysql_fetch_array ($produkt2)){ 
56.
 
57.
		$artikelbez	=	$row['artikelbez']; 
58.
		$artikelnr	=	$row['artikelnr']; 
59.
		$pid		=	$row['pid']; 
60.
		$preis		=	$row['preis']; 
61.
 
62.
		//Abfrage der Daten in der Spalte Menge im Warenkorb für SID und PID 2 
63.
		$mengentest = mysql_query("SELECT menge FROM warenkorb WHERE sid = '$sid' AND pid = '$pid'"); 
64.
 
65.
		$num	=	mysql_fetch_array($mengentest); 
66.
		$menge	=	$num['menge']; 
67.
 
68.
			//Abfrage Menge von SID und PID 1 im Warenkorb 
69.
			if ($menge == 0){ 
70.
			//Schreiben in Warenkorb wenn Menge = 0 für PID 2 (WKID, SID, PID, Artikelbez, Artikelnr, Menge=1, Preis) 
71.
			mysql_query("insert into warenkorb values ('','$sid','$pid','$artikelbez','$artikelnr','1','$preis')"); 
72.
			//Menge-IF--Klammer schliessen 
73.
74.
			 
75.
			//Else Befehl wenn Menge im Warenkorb nicht 0 ist 
76.
			else { 
77.
			//erhöhen der Menge im Warenkorb von SID und PID 2 um 1 
78.
			mysql_query("UPDATE warenkorb SET menge=menge+1 WHERE sid = '$sid' AND pid = '$pid'"); 
79.
			//Menge-Else--Klammer schliessen 
80.
81.
			 
82.
	//while-Schleife Ausführung beenden 
83.
84.
	 
85.
//Button-IF--Klammer schliessen 
86.
87.
?>
Wie kann ich das denn schreiben das ich im prinzip immer gleichen code habe und vom Button irgendwie bestimmen lasse was gelesen und geschrieben wird.
Möglichst ohne für jedes Produkt den codeblock komplett zu schreiben.

Könnt ihr mir da helfen?
Ich hab auch schon probiert den Link zu einem Bild, die Artikelbezeichnung, Artikelnummer, Preis, und den Code für einen Button in SQL zu speichern und dann auszugeben. Dann müsste ich nur ein Produkt in die Datenbank eintragen und es wär sofort verfügbar. Nur weis ich dann nicht wie ich die einzelnen Buttons auswerten soll. Weil sie haben dann ja eigentlich die gleichen Namen. Vielleicht hat dazu auch jemand ne Idee ob das so gehen würde.

Mit freundlichen Grüßen
PCChecker
Mitglied: EvilMoe
20.03.2010 um 11:31 Uhr
Einfach eine Variable benutzen bei
01.
$produkt2 = mysql_query("select * from produkt where pid ='2'"); 
Ich würde es so machen:
01.
$pid = (isset($_POST["produkt1"]) && $_POST["produkt1"] == "Senden") ? 1 : 2; 
02.
// Man könnte hier natürlich auch noch den anderen Button überprüfen mit einer 2. IF Frage 
03.
 
04.
 
05.
$produkt = mysql_query("select * from produkt where pid ='$pid'"); 
PS: Ich vermisse irgentwie das du deine Werte validierst. Befasse dich mal mit dem Thema SQL-Injection
Bitte warten ..
Mitglied: Edi.Pfisterer
20.03.2010 um 11:47 Uhr
Hallo!
pfeif auf POST, nimm GET
für jedes Produkt ein link, der in etwa so aussieht
01.
<a href="warenkorb.php?pid=1&sid=12345">in den Warenkorb</a>
danach ersetzt Du in Deinem Code die $_POST in $_GET bzw. in der Abfrage
$produkt1 = mysql_query("select * from produkt where pid ='1'");
die 1 gegen $_GET["pid"] sowie das $produkt1 gegen $produkt
usw.

alles andere scheint mir wenig sinnig zu sein.

gutes gelingen
hoffe, mich verständlich ausgedrückt zu haben.

lg
Edi
Bitte warten ..
Mitglied: Edi.Pfisterer
20.03.2010 um 11:58 Uhr
Anmerkung 1:
Bist Du sicher, dass deine Datenbank wirklich ökonomisch ist?
wozu hast Du in der Tabelle warenkorb die Bezeichnung, den Preis, usw.
diese Daten stehen doch bereits in der Tabelle Produkt!

Der wesentliche Unterschied zwischen einer Datenbank (access, mysql, etc.) zu einem Tabellenkalkulationsprogramm liegt in der Vermeidung redundanter Daten!

Mach Dir die Arbeit/Freude und googel mal nach relationalem Datenmodell oder Entity Relationship Model!

Vergiss daher meinen 1. Hinweis (bzw. gilt er nur bedingt als Antwort auf Deine
Frage):
Datenbank insert vereinfachen

Die richtige Antwort wäre:
1.) Datenbankdesign komplett ändern (sodass redundante Daten verhindert werden)
2.) Dein Insert kannst Du in einem einzigen SQL-Befehl abarbeiten (wenn das DB-Design stimmt, aber auch jetzt schon...)
3.) $_GET ist Dein Freund

Sorry, und ich hoffe, ich habe Dir den Mut nicht geraubt...
Falls obiger Code Teil einer Projektarbeit o.ä. ist, besteht der Sinn ohnehin darin, sich eine neue Welt zu erschliessen, und dann könnte Dir mein Hinweis behilfich sein.
Doppelt sorry, falls ich Dich irgendwie gekränkt habe, nichts liegt mir ferner.
Falls Du Hilfe beim Design der DB brauchst: Poste hier mal, wie dein aktueller Ansatz aussieht...

gutes gelingen
lg
Edi
Bitte warten ..
Mitglied: Biber
20.03.2010 um 12:25 Uhr
Moin urobe73,

finde deinen Kommentar sehr gut und auch sehr gut rübergebracht.
Nichtsdestotrotz - in diesem Businesscase - die zum Zeitpunkt des Bestellvorgangs gültigen Artikelbezeichnungen und zum Zeitpunkt des Bestellvorgangs gültigen Preise sollten durchaus plattgeklopft/de-normalisiert/redundant in einer neuen Tabelle "Warenkorb" gespeichert werden.
Denn die sind ja möglicherweise nicht nach 2 Jahren oder 2 Monaten reproduzierbar,

Und der Kunde würde evtl ein bisschen traurig sein, wenn er am 1.Feb. unter ProduktID 4711 einen Artikel "Restpostenramsch" für € 0,50 bestellt hat, der zum Zeitpunkt der Lieferung am 6.April dann "Unser Nostalgie-Retro-Renner" heißt und € 12,95 kostet.

Grüße
Biber
Bitte warten ..
Mitglied: Edi.Pfisterer
20.03.2010 um 12:29 Uhr
hallo Biber,
wo du recht hast, hast du recht!
lg
Bitte warten ..
Mitglied: mrtux
20.03.2010 um 15:28 Uhr
Hi!

Zitat von Edi.Pfisterer:
wo du recht hast, hast du recht!

Vor allem in einer Zeit, wo der Fiskus jeden Pups der mal irgendwo, irgendwann in der tiefen Provinz abgelassen wurde, auch nach Jahren noch nachvollziehen will, muss man mit dem Begriff "Redundanz vermeiden" vorsichtig umgehen. Nicht alles was im Lehrbuch für Datenbankdesign steht kann man wirklich in der alltäglichen Praxis umsetzen...

mrtux
Bitte warten ..
Mitglied: PCChecker
22.03.2010 um 18:32 Uhr
Hi urobe73

Ich bin mir nicht ganz sicher ob ich dich richtig verstanden habe. Vielleicht kannst du dirs ja nochmal anschauen. Ich hab das jetzt so gemacht (bzw verstanden):

01.
<?php  
02.
session_start (); 
03.
echo session_id (); 
04.
$sid = session_id (); 
05.
include("config.php"); 
06.
 
07.
//überprüfen ob Button gedrückt wurde              Ich hab das hier komplett auskommentiert. ich weis nicht ob ich das noch braucht. es geht aber weder mit noch ohne 
08.
/*if (isset($_GET["produkt"])&& 
09.
	$_GET["produkt"] == "in den Warenkorb") { 
10.
*/ 
11.
	//Auswahl des Artikel mit PID 1 
12.
	$produkt = mysql_query('select * from produkt where pid = $_GET["pid"]'); 
13.
 
14.
	//Aufsplittung der einzelnen Spalten der Zeile mit PID 1 
15.
	while ($row = mysql_fetch_array ($produkt)){ 
16.
 
17.
		$artikelbez	=	$row['artikelbez']; 
18.
		$artikelnr	=	$row['artikelnr']; 
19.
		$pid		=	$row['pid']; 
20.
		$preis		=	$row['preis']; 
21.
 
22.
		//Abfrage der Daten in der Spalte Menge im Warenkorb für SID und PID 1 
23.
		$mengentest = mysql_query("SELECT menge FROM warenkorb WHERE sid = '$sid' AND pid = '$pid'"); 
24.
 
25.
		$num	=	mysql_fetch_array($mengentest); 
26.
		$menge	=	$num['menge']; 
27.
 
28.
			//Abfrage Menge von SID und PID 1 im Warenkorb 
29.
			if ($menge == 0){ 
30.
			//Schreiben in Warenkorb wenn Menge = 0 für PID 1 (WKID, SID, PID, Artikelbez, Artikelnr, Menge=1, Preis) 
31.
			mysql_query("insert into warenkorb values ('','$sid','$pid','$artikelbez','$artikelnr','1','$preis')"); 
32.
			//Menge-IF--Klammer schliessen 
33.
34.
			 
35.
			//Else Befehl wenn Menge im Warenkorb nicht 0 ist 
36.
			else { 
37.
			//erhöhen der Menge im Warenkorb von SID und PID 1 um 1 
38.
			mysql_query("UPDATE warenkorb SET menge=menge+1 WHERE sid = '$sid' AND pid = '$pid'"); 
39.
			//Menge-Else--Klammer schliessen 
40.
41.
			 
42.
	//while-Schleife Ausführung beenden 
43.
44.
/*	 
45.
//Button-IF--Klammer schliessen    auch auskommentiert  
46.
}*/ 
47.
?>
In HTML hab ich dann geschrieben
01.
<a href="warenkorb.php?pid=1">in den Warenkorb</a> 
02.
<a href="warenkorb.php?pid=2&sid=<?php $sid ?>">in den Warenkorb</a>
Er zeigt mir dann zwar den Warenkorb an aber es wird nichts hinzugefügt. Egal ob bei dem Link mit oder ohne SID.
Ich weis noch nicht so genau was ich falsch machen. Befass mich erst seit 2 Wochen mit PHP. Sorry wegen der dummen Fragen.
Achso ja. Der PHP-Code muss ja in der "warenkorb.php" Datei stehen oder? weil ja der link darauf verweist.

Mit freundlichen Grüßen
PCChecker
Bitte warten ..
Mitglied: Edi.Pfisterer
23.03.2010 um 12:06 Uhr
hallo!

Achso ja. Der PHP-Code muss ja in der "warenkorb.php" Datei stehen oder? weil ja der link darauf verweist.
richtig!
Im Code kann ich soweit keinen Fehler entdecken, der müsste laufen!

die Zeilen
01.
/*if (isset($_GET["produkt"])&&  
02.
	$_GET["produkt"] == "in den Warenkorb") {  
03.
*/ 
kannst Du rauswerfen, die geben so keinen Sinn mehr...

stattdessen gäbe vielleicht im Anschluss an Deinen code in der warenkorb.php eine Meldung wie
Der Artikel $artikelbez wurde in Ihren Warenkorb gelegt...

kurze Rückmeldung, obs klappt würde mich freuen

lg
Edi
Bitte warten ..
Mitglied: PCChecker
23.03.2010 um 17:44 Uhr
Leider gehts nicht.

Folgende Fehlermeldung wird angezeigt:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /users/toxicspeed/www/warenkorb.php on line 31

01.
$produkt = mysql_query('select * from produkt where pid = $_GET["pid"]'); 
02.
 
03.
//Aufsplittung der einzelnen Spalten der Zeile mit PID 1 
04.
while ($row = mysql_fetch_array ($produkt)){ 
05.
 
06.
	$artikelbez	=	$row['artikelbez']; 
07.
	$artikelnr	=	$row['artikelnr']; 
08.
	$pid		=	$row['pid']; 
09.
	$preis		=	$row['preis'];
Die Zeile 31 ist die "while"-Zeile. Wobei ich durch rumprobieren und das $_GET["pid"] in ne Variable geschrieben habe und die Variable anstelle des $_GET["pid"] eingesetzt hab rückt der Fehler nach oben.
Irgendwie geht das $_GET["pid"] nicht glaub ich. ich weis nur nicht warum.
Bitte warten ..
Mitglied: Edi.Pfisterer
24.03.2010 um 11:24 Uhr
Hallo!
Speicher mal folgenden Code als warenkorb1.php und verändere den html-code entsprechend nach
01.
<a href="warenkorb1.php?pid=1">in den Warenkorb</a> 
01.
<?php 
02.
session_start (); 
03.
$sid = session_id (); 
04.
$pid = $_GET["pid"]; 
05.
 
06.
        //Auswahl des Artikel mit PID  
07.
        $produkt = "('select * from produkt where pid = ".$pid."')"; 
08.
 
09.
   echo $produkt; 
10.
?>
Gib anschliessend die Bildschirmausgabe der warenkorb1.php mal in phpmyadmin als Query ein und schau, ob Du da was rausbekommst...
wenn nicht, stimmt die SQL-Abfragen nicht;
wenn doch, dann können wir weitertun bei der Fehlersuche..

lg
Bitte warten ..
Mitglied: Edi.Pfisterer
24.03.2010 um 11:26 Uhr
Anmerkung:
Fehlt da nicht etwas in der Zeile 31?

Schau mal hier...
Bitte warten ..
Mitglied: Guenni
25.03.2010 um 20:18 Uhr
Hi PCChecker,

ich hab' das mal mit 2 Dateien(artikel.php, warenkorb.php) durchgespielt

und funktioniert so zumindest einwandfrei.

01.
 
02.
<?php 
03.
/* 
04.
* Datei artikel.php 
05.
*/ 
06.
 
07.
/* 
08.
* Warenkorb abfragen und anzeigen, wieviel Artikel sich darin befinden 
09.
*/ 
10.
$sql="select * from warenkorb"
11.
$result=mysql_query($sql); 
12.
echo "Im Warenkorb befinden sich ".mysql_num_rows($result)." Artikel<br><br>";  
13.
/* 
14.
* *************************************************************************
15.
* Hier würde ich noch einen Link zu einer Seite einfügen, um den Inhalt des 
16.
* Warenkorbs anzuzeigen 
17.
* *************************************************************************
18.
*/ 
19.
 
20.
/* 
21.
* Tabelle Artikel abfragen und zu jedem Artikel einen Link ausgeben, wobei es reicht, 
22.
* z.B. nur die Artikelnummer als Variable anzuhängen, denn damit ist ein Artikel ja 
23.
* eindeutig identifiziert 
24.
*/ 
25.
$sql="select * from artikel"
26.
$result=mysql_query($sql); 
27.
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){ 
28.
 echo "$row[art_bez] - Preis: $row[preis] EUR  <a href=\"warenkorb.php?art_nr=$row[art_nr]\">In den Warenkorb</a><br>"
29.
30.
?>
01.
 
02.
<?php 
03.
/* 
04.
* Datei warenkorb.php 
05.
*/ 
06.
include("net-comm/inc/session.inc.php"); 
07.
/* 
08.
* Warenkorb abfragen.  
09.
*/ 
10.
$sql="select * from warenkorb where art_nr=$_GET[art_nr]"
11.
$result=mysql_query($sql); 
12.
/* 
13.
* Wenn der Artikel sich noch nicht im Warenkorb befindet, . . .   
14.
*/ 
15.
if(mysql_num_rows($result)==0){ 
16.
 $sql="select * from artikel where art_nr=$_GET[art_nr]"
17.
 $result=mysql_query($sql); 
18.
 $row=mysql_fetch_array($result,MYSQL_ASSOC); 
19.
 $art_nr=$row['art_nr']; 
20.
 $art_bez=$row['art_bez']; 
21.
 $preis=$row['preis']; 
22.
 /* 
23.
 * . . . Artikel eintragen und zurück nach artikel.php . . .  
24.
 */  
25.
 $sql="insert into warenkorb(id,art_nr,art_bez,preis,menge)values('','$art_nr','$art_bez','$preis',1)"
26.
 mysql_query($sql); 
27.
 header("location:artikel.php"); 
28.
}else
29.
			/* 
30.
			* . . . ansonsten Menge um eins erhöhen und zurück nach artikel.php 
31.
			*/ 
32.
			$sql="update warenkorb set menge=menge+1 where art_nr=$_GET[art_nr]"
33.
			mysql_query($sql); 
34.
			header("location:artikel.php"); 
35.
36.
?>
Gruß
Günni
Bitte warten ..
Mitglied: PCChecker
27.03.2010 um 09:03 Uhr
Hi

Danke für eure Mühe. Wenn ich heute Nachmittag mal Zeit hab werd ichs probieren.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: PCChecker
28.03.2010 um 14:31 Uhr
So jetzt hab ich mal Zeit gehabt das ganze auszuprobieren. Und ich muss sagen das es geht. Hab dann nur noch eine kleine Frage.

01.
<?php 
02.
 
03.
include("config.php"); 
04.
 
05.
$getnr = $_GET[art_nr]; 
06.
 
07.
$result		= mysql_query ("select * from warenkorb where artikelnr = $getnr"); 
08.
 
09.
 
10.
if(mysql_num_rows($result)==0 && (!empty($getnr))){ 
11.
	 
12.
$result2	= mysql_query ("select * from artikel where art_nr = $getnr"); 
13.
$row		= mysql_fetch_array($result2,MYSQL_ASSOC); 
14.
$pid		= $row['id']; 
15.
$art_nr		= $row['art_nr']; 
16.
$art_bez	= $row['art_bez']; 
17.
$preis		= $row['preis']; 
18.
 
19.
 
20.
mysql_query("insert into warenkorb(sid,pid,artikelbez,artikelnr,menge,stkpreis) values ('$sid','$pid','$art_bez','$art_nr','1','$preis')"); 
21.
header("Location: artikel.php"); 
22.
23.
 
24.
else 
25.
 
26.
27.
mysql_query("update warenkorb set menge=menge+1 where artikelnr = $getnr"); 
28.
header("Location: artikel.php"); 
29.
30.
?>
1. Frage
Kann ich beim IF-Befehl in Zeile 10 das (!empty....) so schreiben um zu überprüfen ob die Seite über den Link aufgerufen wird oder direkt. Sollte doch so gehen. Weil wenn ich das weglass und dann die "zumwarenkorb.php" direkt aufruf wird trotzdem was in den Warenkorb gelegt. Allerdings nur mit Session ID und Menge 0. So sollte ich das doch umgehen können wenn ich einfach frag ob die Variable $getnr nicht leer ist.

Wär super wenn ihr mir da auch noch helfen könnt.

Mit freundlichen Grüßen
PCChecker
Bitte warten ..
Mitglied: Guenni
31.03.2010 um 20:08 Uhr
@PCChecker,

zu prüfen, ob $_GET['variable'] leer ist oder nicht, ist

m.M. nach sinnfrei. Denn wer den Link angeklickt hat, oder auch

nur mit dem Mauszeiger über den Link fährt, sieht ja, welche

Variablen am Link angehangen sind.


Von daher könnte man die Seite warenkorb.php ja auch direkt aufrufen

und z.B. warenkorb?art_nr=irgend_ein_blödsinn in die Adresszeile

eingeben.


Ich würde da jetzt mal drei Möglichkeiten sehen, um zu prüfen, ob die

Seite warenkorb.php korrekt aufgerufen wurde.


1. Man kann die Variable $_SERVER["HTTP_REFERER"] überprüfen.

Da wird die Seite gespeichert, von welcher Seite man via Link kommt.


2. Zugangsdaten anfordern(Login) und in einer Session-Variablen ablegen.

In der Seite warenkorb.php prüfen, ob Zugangsdaten vorliegen.


3. Prüfen, ob $_GET['variable'] überhaupt ein gültiger Wert ist, dann

die Tabelle abfragen, ob dieser Wert vorhanden ist.


Gruß
Günni
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Exchange Server
Exchange 2007 Datenbank restore ohne Exchange zu verändern - SBS2008

Frage von pitamerica zum Thema Exchange Server ...

Datenbanken
Datenbank API Automation

Link von Frank zum Thema Datenbanken ...

Festplatten, SSD, Raid
Vergleich zweier SSD-Typen im Raid-10 für den Anwendungsfall SQL-Datenbank (8)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...