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

If abfrage einfügen

Mitglied: jensgebken

jensgebken (Level 2) - Jetzt verbinden

15.05.2019 um 08:58 Uhr, 214 Aufrufe, 8 Kommentare

Hallo Gemeinschaft,

wie bekomme ich es hin, dass nur datensätze in das array geladen werden, dessen Anzahl grösser 0 ist



01.
if (isset($_POST['Bestellen'])){
02.
	$articles = $_POST['article'];
03.
	foreach($articles as $article){
04.
	        //	echo "Artikel:" . $article['Name'] . "<br>";
05.
		//echo "Anzahl:" . $article['Anzahl'] . "<br>" ;
06.
		//echo '<p>=========</p>';
07.
		
08.
		
09.
		
10.
		
11.

12.
    $orders_id = '222';
13.
	$art = $article['Name'];
14.
	$anz = $article['Anzahl'];
15.

16.

17.
    $sql = "INSERT INTO orders_products (orders_id, products_id, products_quantity) values ('$orders_id', '$art', '$anz')";
18.
    $mysqli->query($sql);
19.

20.
	}
Mitglied: Thomas2
15.05.2019 um 09:05 Uhr
Hallo,

Pseudocode:
01.
if (count($deinArray > 0) { mach dein Code }
Gruß,
Thomas
Bitte warten ..
Mitglied: areanod
15.05.2019 um 09:18 Uhr
Hallo jensgebken,

Ich hab' mich unlängst begonnen mit PHP auseinander zu setzen und habe mir (auch bei $POST) genau die selbe Frage gestellt.
Die magische Antwort für mich war die Funktion EMPTY:

empty — Prüft, ob eine Variable einen Wert enthält

https://www.php.net/manual/de/function.empty.php

In deinem speziellen Fall würde ich dann schreiben (kein Anspruch auf Funktionalität ):

01.
if (isset($_POST['Bestellen'])){
02.
	$articles = $_POST['article'];
03.
	foreach($articles as $article){
04.
	        //	echo "Artikel:" . $article['Name'] . "<br>";
05.
		//echo "Anzahl:" . $article['Anzahl'] . "<br>" ;
06.
 	       //echo '<p>=========</p>';
07.

08.
         if(!(empty($article['Anzahl'])){
09.
           $orders_id = '222';
10.
     	   $art = $article['Name'];
11.
 	   $anz = $article['Anzahl'];
12.
           }
13.
 
14.
 
15.
     $sql = "INSERT INTO orders_products (orders_id, products_id, products_quantity) values ('$orders_id', '$art', '$anz')";
16.
     $mysqli->query($sql);
17.
 
18.
 	}
Damit sollte $art und $anz nur geschrieben werden wenn "Anzahl" zwar existiert (isset) allerdings keinen Wert enthält.

lG
Areanod
Bitte warten ..
Mitglied: SlainteMhath
15.05.2019, aktualisiert um 09:34 Uhr
Moin,

01.
$articles = $_POST['article'];
02.
	foreach($articles as $article){
03.
...
04.
           $art = $article['Name'];
05.
 	   $anz = $article['Anzahl'];
06.
...
07.
 $sql = "INSERT INTO orders_products (orders_id, products_id, products_quantity) values ('$orders_id', '$art', '$anz')";
08.
 $mysqli->query($sql);
Bitte beschäftigt euch unbedingt mit sicherer PHP/SQL Programmierung. Ihr züchtet euch 1a Spam/Virenschleudern wenn ihr solchen Code verwendet, der für SQL Injektions und/oder XSS anfällig ist.

lg,
Slainte

/EDIT: Typos.
Bitte warten ..
Mitglied: maretz
15.05.2019 um 10:34 Uhr
Ok - dir ist sicher bewusst das du da ne wunderbare art für SQL-Injections grad geschaffen hast?

Unabhängig davon - was meinst du mit "dessen anzahl grösser 0 ist"? Meinst du bei Anzahl? dann wräe ja z.B.
if ($anz>=0) .... dein Freund. Wobei ich noch gleich einige andere Dinge mit prüfen lassen würde:
-> Artikel Name -> Länge > 0 (oder direkt mit ner ID / GUID arbeiten, je nachdem wo die Daten herkommen...
-> $order_id: ich vermute das soll dein Primary Key sein? Dann würde ich den auf auto-increment setzen (oder ne GUID verwenden)
-> Anzahl: Grösser 0 und mit nem Preg-Match prüfen das es nur Zahlen, komma und/oder nen punkt enthält, ggf. 1000er Trennzeichen entfernen.
Bitte warten ..
Mitglied: jensgebken
15.05.2019 um 11:02 Uhr
wie würdest du es denn coden, damit es sicherer ist
Bitte warten ..
Mitglied: maretz
15.05.2019 um 11:04 Uhr
schau mal nach z.B. real_escape_string in der php-doku
Bitte warten ..
Mitglied: em-pie
15.05.2019 um 11:44 Uhr
Zitat von jensgebken:

wie würdest du es denn coden, damit es sicherer ist


Ganz einfach:
Variablen nicht einfach blind ins SQL-Statement einfügen sondern im Vorfeld validieren.

baue dir Funktionen oder ähnliches, um deine gefüllten Variablen erstmal auf falsche Zeichen zu prüfen.

https://www.google.com/searchq=SQL+Injection+PHP

Hier findest nu ne ganze Menge zu dem Thema...

Und hier noch etwas zum Schmunzeln:
exploits_of_a_mom - Klicke auf das Bild, um es zu vergrößern
Quelle: https://xkcd.com/327/

Gruß
em-pie
Bitte warten ..
Neue Wissensbeiträge
Off Topic
Europawahl 2019
Information von Frank vor 23 StundenOff Topic23 Kommentare

Vom 23. bis 26. Mai 2019 findet die Europawahl in den Mitgliedstaaten der Europäischen Union statt (ja auch in ...

Humor (lol)

Minister wollen offenbar Ausweispflicht für .de-Domain

Information von Kraemer vor 1 TagHumor (lol)7 Kommentare

Zitat von Golem.de: Die zuständigen Verbraucherschutzminister fordern einem Medienbericht zufolge offenbar eine Ausweispflicht für .de-Domains. Das soll Betrugsfälle mit ...

Off Topic
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 3 TagenOff Topic5 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 3 TagenWindows 109 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

Heiß diskutierte Inhalte
Ausbildung
Wie sind eure Erfahrungen als oder mit Ü30 Azubis für Fachinformatik Systemintegration?
Frage von CaptainProcessorAusbildung26 Kommentare

Tagchen allerseits :) Mir steht in wenigen Monaten eine Veränderung bevor, da mein AG seine IT auslagert und ich ...

Off Topic
Europawahl 2019
Information von FrankOff Topic23 Kommentare

Vom 23. bis 26. Mai 2019 findet die Europawahl in den Mitgliedstaaten der Europäischen Union statt (ja auch in ...

Router & Routing
ZyXEL ZyWALL USG 20 Routing
Frage von Oggy01Router & Routing12 Kommentare

Hallo, und wieder habe ich ein Problem mit dem Routing. Bis vor ein paar Tagen habe ich das mit ...

Virtualisierung
VServer (Linux): Absichern, verschlüsseln usw
Frage von mrserious73Virtualisierung11 Kommentare

Hallo zusammen, ich möchte einen Linux-Vserver mieten und diesen absichern. Darunter verstehe ich in diesem Falle hauptsächlich: Dafür sorgen, ...