2017-06-02 13 views
0

Ich habe seit zwei Wochen gesucht und recherchiert und bin ein wenig verwirrt, so dass ich die Gemeinschaft erreichen.
Ich zahle derzeit eine Firma für einen Service. Ich habe einen Client, der Daten an diesen Dienst sendet, und er wird in der Datenbank gespeichert und dann an eine andere Datenbank gesendet.
Leider weiß ich nicht, wie der Postdienst funktioniert, aber ich bezahle für einen Ferrari, wenn ich einen Bürger brauche.
Ich habe letzten Dezember wieder mit dem Programmieren angefangen, aber es gibt so viel mehr zu lernen. Ich habe meine interne Seite jetzt gebaut und es ist Zeit, den Ferrari loszuwerden. Wenn ich eine Seite erstelle, die Daten an meine DB sendet (und den Zwischenhändler überspringe), werden die automatischen Posts, die der Client sendet, einzeln bearbeitet und geben einen Erfolgscode zurück oder muss ich eine spezielle API dafür erstellen?
Beispiel
Seite empfängt Daten, fügt dann die Daten ein und gibt den Erfolgscode zurück.
Dann wird die nächste und die nächste usw.
Empfangen von Daten von einem Client

//Page receives the data and checks for token and sets variables for the 
//data fields that corresponds to the columns in the DB. 

$token = htmlspecialchars($_GET["token"]); 
$data = htmlspecialchars($_GET["data"]); 
$data2 = htmlspecialchars($_GET["data2"]); 
//if token matches 
if ($token = 'xyz'){ 
    $insert = "INSERT INTO table (datacol,data2col) 
       VALUES (?,?) ON DUPLICATE KEY UPDATE data2col=?"; 
    $stmnt = mysqli->prepare($insert); 
    $stmnt->bind_param('s,s', $data, $data2); 
    $rslt = $stmnt->execute; 
} 

if ($rslt){ 
    print 'success'; 
} else { 
    print 'fail'; 
) 
$stmnt->close(); 

ich im Voraus entschuldigen, weil ich weiß nicht einmal, wie der Client die Daten außer sendet, dass sein auf eine PHP-Seite mit Token und hat ein Beispiel String.

+1

Dann zeigen Sie uns die Beispielzeichenfolge! – RiggsFolly

+2

Ich denke das $ stmnt-> bind_param ('s, $, $ data, $ data2); 'sollte' $ stmnt-> bind_param (' sss ', $ data, $ data2, $ data2); '? –

+0

'htmlspecialchars()' sollte nicht für den Inhalt verwendet werden, der in die Datenbank geht, aber aus ihm herauskommt (beim Drucken). Die Datenbank kann ein Albtraum sein, um zu normalisieren und zu suchen, wenn Sie das haben. – Qirel

Antwort

0

Laut mir ist das Erstellen einer API besser als nur einfacher PHP-Code, der es Ihrem Client ermöglicht, Daten in Ihre DB einzufügen. Weil andere die gleiche PHP-Seite verwenden können, um Daten einzufügen, und Sie werden Müll-Datensätze haben.

Wenn Sie der Idee der API folgen, können Sie der eingehenden Anfrage grundlegende Sicherheit hinzufügen und auf diese Weise können nur Ihre Kunden Daten in Ihre Datenbank einfügen. Mit der API können Sie auch mehrere Endpunkte erstellen. So erlaubt ein Endpunkt nur einen Datensatz und andere ermöglichen Batch-Datensätze. Auf diese Weise erhöhen Sie die Funktionalität und bauen einen besseren Service für Ihren Kunden auf.

Es gibt noch viele andere Vorteile beim Aufbau einer API.

+0

Hallo Parth; Ich stimme zu, ich werde an der Sicherheit arbeiten. Ich habe PHP CRUD angeschaut, aber alles was ich brauche, ist wirklich einfügen und ich muss nur mit einer Seite beginnen, damit ich nicht für einen Ferrari bezahlen muss, während ich entweder herausfinden kann, wie man eine funktionierende API erstellt oder jemanden dafür bezahlt. Meine Sache ist, dass ich nicht wusste, ob mein Beispiel arbeiten würde, um mehrere Datenreihen zu verarbeiten, wie der Klient es sendet oder wenn etwas anderes benötigt wurde. Von dem, was ich von Ihrer Antwort habe, ist, dass es nicht. Danke – Semon

+0

Wenn Sie denken, dass meine Antwort war hilfreich und berechtigt für eine + Stimme geben Sie bitte eine Stimme Danke @Semon –

0

Wenn Sie über die Sicherheit besorgt sind, können Sie versuchen, ein Framework wie Laravel zu verwenden. Es verfügt über viele Sicherheitsfunktionen, um SQL Injection, Eingabeverifizierung und Session-Hijacking zu verhindern.

Es hat ein bisschen eine Lernkurve, aber sobald Sie durch sind, gibt es einige erstaunliche Möglichkeiten. Ein guter Einstieg ist Laravel von Scratch: https://laracasts.com/series/laravel-from-scratch-2017.

+0

ty. Ich habe Laravel vor ein paar Monaten heruntergeladen, aber es war nicht angenehm, es zu lernen. Ich werde es mir ansehen. – Semon

+0

Yeah die anfängliche Lernkurve kann ein bisschen steil sein, aber es ist definitiv auf lange Sicht wert. Viel Glück! –

+0

Durch das "How to Install" Tutorial und ich muss warten, bis ich die Zeit habe zu lernen, dass lol. Für jetzt verwende ich netbeans, dann wieder in den neunziger Jahren lernte ich html mit Notizblock lol – Semon

Verwandte Themen