Guten Abend zusammen.
Ich habe bereits eine ähnliche Frage schon einmal gestellt, muss allerdings noch ein bisschen in die tiefe gehen um weiter zu kommen. Ich habe eine Datenbank in Form einer XML Datei. das soll und muss auch so bleiben!!
Diese liegt mit meiner PHP Datei auf einem FTP Server. Der Code für die PHP Datei lautet:
Denke mal was der Code bewirkt ist klar. Es wird in der XML Datenbank ein neuer Eintrag mit verschiedenen Infos angegeben welche mit der POST Methode definiert werden. Jetzt habe ich folgendes Problem. Ich entwickle eigentlich Software für Windows. PHP ist nicht mein Spezialgebiet. Aus meinem Programm wird der PHP POST gestartet und eine erfolgreiche Antwort erfordert. Der POST MUSS also durchgeführt werden und MUSS erfolgreich sein.
Leider wird dieselbe XML Datei auch noch von allen Usern gelesen. Da meine Userrate wächst ist es immer wahrscheinlicher das mal zwei User gleichzeitig einen PHP POST auslösen. Jetzt würde das ja schlecht funktionieren. Entweder es kommt zum Fehler oder der Eintrag des einen wird durch den des anderen überschrieben.
Wie kann ich also mittels PHP realisieren das so eine Überladung nicht möglich ist. Als Beispiel. Jedes Internet Forum muss ja in der Lage sein mehrere POST GLEICHZEITIG zu bedienen und in die Datenbank zu übertragen? Wie schaffe ich das bei meiner XML Datenbank?
Ich habe bereits eine ähnliche Frage schon einmal gestellt, muss allerdings noch ein bisschen in die tiefe gehen um weiter zu kommen. Ich habe eine Datenbank in Form einer XML Datei. das soll und muss auch so bleiben!!
Diese liegt mit meiner PHP Datei auf einem FTP Server. Der Code für die PHP Datei lautet:
PHP:
<?php
$xml = simplexml_load_file("datenbank.xml"); //This line will load the XML file.
$sxe = new SimpleXMLElement($xml->asXML()); //In this line it create a SimpleXMLElement object with the source of the XML file.
$person = $sxe->addChild($_POST["id"]); $person->addAttribute('Benutzername', $_POST["name"]);$person->addAttribute('Registrierung', date("d.m.Y"));$person->addAttribute('Source', 'user');
$person->addChild("Name", $_POST["name"]); $person->addChild("SpecialPicture", "False"); $person->addChild("OS", $_POST["os"]); $person->addChild("Aufrufe", $_POST["aufrufe"]); $person->addChild("Autostart", $_POST["autostart"]); $person->addChild("Programmversion", $_POST["programmversion"]);$person->addChild("Downloads", $_POST["downloads"]); $person->addChild("LetzteNutzung", $_POST["letzteraufruf"]); $person->addChild("Berechtigung", "True"); $person->addChild("Meldung", "Dir wurde das Nutzungsrecht für das Programm entzogen.");
$sxe->asXML("datenbank.xml"); //Überschreibt die alte Datenbank mit den Aktualisierungen
echo "Erfolgreich eingetragen"?>
Denke mal was der Code bewirkt ist klar. Es wird in der XML Datenbank ein neuer Eintrag mit verschiedenen Infos angegeben welche mit der POST Methode definiert werden. Jetzt habe ich folgendes Problem. Ich entwickle eigentlich Software für Windows. PHP ist nicht mein Spezialgebiet. Aus meinem Programm wird der PHP POST gestartet und eine erfolgreiche Antwort erfordert. Der POST MUSS also durchgeführt werden und MUSS erfolgreich sein.
Leider wird dieselbe XML Datei auch noch von allen Usern gelesen. Da meine Userrate wächst ist es immer wahrscheinlicher das mal zwei User gleichzeitig einen PHP POST auslösen. Jetzt würde das ja schlecht funktionieren. Entweder es kommt zum Fehler oder der Eintrag des einen wird durch den des anderen überschrieben.
Wie kann ich also mittels PHP realisieren das so eine Überladung nicht möglich ist. Als Beispiel. Jedes Internet Forum muss ja in der Lage sein mehrere POST GLEICHZEITIG zu bedienen und in die Datenbank zu übertragen? Wie schaffe ich das bei meiner XML Datenbank?