submit - kurze Hilfe für Eintrag in DB gesucht
|
|
Catzenjaeger |
Geschrieben am 12. Juni 2016 15:35:41
|
|
Formular funzt und wird korrekt dargestellt aber die Daten laufen nicht ein - findet jemand den Fehler? die Datem sollen die Tabelle DB_FIGURE_ITEM einlaufen übrigens ich bekomme keinerlei Fehleranzeige und die Seite bleibt nach drücken des Buttons SUBMIT weis und kehrt nicht zurück KOMMENTAR VON LAYZEE: Lange Codes bitte als ANHANG, danke. Zusammengefügt am 12. Juni 2016 um 197:59: ok Chef
Catzenjaeger hat folgende Datei angehängt:
Bearbeitet von Catzenjaeger am 12. Juni 2016 17:37:59 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Wemi |
Geschrieben am 13. Juni 2016 06:45:51
|
|
Hast du deine submit.php denn im Fusion Root? Denn dein Formular geht wegen BASEDIR in die Fusion eigene submit.php und nicht in deine. aus Code Download Code BASEDIR."submit.php?stype=f muss dann folglich: Code Download Code INFUSIONS."figurelib/submit.php?stype=f werden. figurelib mit dem tatsächichen Ordner austauschen. Auch bei deinen Links im Code, solltest du die Pfadangaben nochmals überprüfen. Denn index.php geht auf eine leere Seite in deinem Infusionsordner deiner Infusion. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Catzenjaeger |
Geschrieben am 13. Juni 2016 09:16:21
|
|
keinerlei Fehler angezeigt im errorlog! ###################################### Hier meine neuste submit .php 1.) Fehlerbehandlung ... also popup bei fehlenden Daten funzt bis auf AGB . Dort kommt kein Popup 2.) daten werden nur einige eingetragen .. warum kann ich nicht finden. ZB wird bei Cat immer 0 eingetragen. Bei Den Number Fields wird überall 0,00 eingetragen 3.) figure_submitter übergabe scheint ok .. es wird 1 (das ist meine ID) eingetragen
Catzenjaeger hat folgende Datei angehängt:
Bearbeitet von Catzenjaeger am 13. Juni 2016 12:45:03 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Wemi |
Geschrieben am 14. Juni 2016 07:29:50
|
|
Mehr kann ja auch nicht gespeichert werden. Du hast deine Daten ja in 3 verschiedene Arrays gespeichert und versuchst dann noch ein komplettes Array in ein datenbankfeld zuschreiben, dass nicht vorhanden ist. Diese Funktion Code Download Code dbquery_insert(DB_FIGURE_ITEMS, $inputArray, "save"); Sollte aus Sicherheitsgründen niemand in der V9 nutzen. Die einzige Funktion, die man nutzen kann wäre Code Download Code dbquery($query,$parameter); Dann würde dein Datenbankeintrag wie folgt aussehen (nicht vollständig, nur um zu zeigen, wie der Aufbau aussehen muss) Code Download Code dbquery("INSERT INTO ".DB_FIGURE_ITEMS." (figure_submitter, figure_title) VALUES (:figure_submitter, :figure_title)", array(':figure_submitter'=>$userdata['user_id'], Das ist nun ein Datenbankeintrag mit Prepared Statements, so überlässt du dann MySQL das Absichern gegen SQL Injection, gerade wenn man mal addslashes() vergessen hat, bei der Validierung der Daten. Und du kannst dann auch wirklich sehen, ob du alle Felder in deiner Tabelle abdeckst und die richtigen Daten an der richtigen Stelle speicherst. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Catzenjaeger |
Geschrieben am 14. Juni 2016 11:59:01
|
|
super danke für die Erklärung ... ich muss da noch einmal nachfragen. Oben steht das niemand dbquery_insert in Version 9 nutzen soll. was mich wundert ... alle werksseitigen Infusion der 9 tragen ihre Daten so ein. Hast du dich geirrt? Bearbeitet von Catzenjaeger am 23. Juni 2016 07:49:15 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Wemi |
Geschrieben am 23. Juni 2016 08:33:44
|
|
Nein ich habe mich nicht geirrt. dbquery_insert nutzt keine prepared Statements, heisst alles was in die DB kommt wird nicht maskiert. Eine falsche Zeichenfolge und deine Datenbank könnte sogar gelöscht werden. In der Regel nutzen die UK's dafür die function addslashes zum Eintragen in die Datenbank und stripslashes um den Inhalt wieder anzuzeigen. Ist nur ein Tipp von mir ersteres sich anzugewöhnen. So ist es immer sicher, falls man letzteres mal vergessen hat. "Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Catzenjaeger |
Geschrieben am 23. Juni 2016 08:37:18
|
|
aber ich habs doch nach dem beispiel der weblinks, blog,news usw aus version 9 nachgebaut .. ist es falsch? Zitat //Save if (defender::safe()) { $inputArray = array( "submit_type" => "f", "submit_user" => $userdata['user_id'], "submit_datestamp" => time(), "submit_criteria" => addslashes(serialize($criteriaArray)) Bearbeitet von Catzenjaeger am 23. Juni 2016 08:43:09 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
|
Wemi |
Geschrieben am 23. Juni 2016 09:12:35
|
|
Falsch nicht, es führen eben mehrere Wege nach Rom.
"Es geht hier um die Frage, ob die Menschheit ohne Religion besser dastünde. Und ich sagte: ja" Ben Moore
|
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • PHP-Fusion: Nicht ausgewählt |
|
Springe ins Forum: |