OJD commit: Record author's IP address
[eidogo-ojd.git] / php / ojd_commit.php
blob1d6ae8cb79b48490bc26d040806a306d20d3171e
1 <?php
3 require("db.php");
4 require("json.php");
5 require("sgf.php");
7 mysql_connect(DB_HOST, DB_USER, DB_PASS);
8 mysql_select_db(DB_NAME);
10 $id = (int)$_REQUEST['id'];
11 $parent = (int)$_REQUEST['parent'];
12 if (!$id && !$parent) {
13 die("Missing id.");
15 if ($id == 1) {
16 die("Editing root node is not allowed.");
20 # SGF-ish string, but with no variations and meant for single tree node. Get array of SGF nodes.
21 function parse_simple_sgf($str)
23 $sgf = new SGF("(;".$str.")");
24 return $sgf->tree['trees'][0]['nodes'][1];
27 $sgf_nodes = parse_simple_sgf($_REQUEST['sgf']);
30 # 1. tree_node_archive
31 # 2. sgf_node
32 # 3. tree_node
35 if (!mysql_query("INSERT INTO tree_node_archive SET author = '".$_SERVER['REMOTE_ADDR']."'")) {
36 die("Problem! " . mysql_error());
38 $version = mysql_insert_id();
41 function sgf_node_add($version, $code, $value)
43 if (!mysql_query("INSERT INTO sgf_node SET tnode = $version, code = '" . mysql_real_escape_string($code) . "', value = '" . mysql_real_escape_string($value) . "'")) {
44 die("Problem! " . mysql_error());
48 foreach ($sgf_nodes as $code => $value) {
49 if (is_array($value)) {
50 foreach ($value as $val1) {
51 sgf_node_add($version, $code, $val1);
53 } else {
54 sgf_node_add($version, $code, $value);
59 if ($id) {
60 if (!mysql_query("UPDATE tree_node SET version = $version WHERE id = $id")) {
61 die("Problem! " . mysql_error());
63 } else {
64 if (!mysql_query("INSERT INTO tree_node SET version = $version, parent = $parent")) {
65 die("Problem! " . mysql_error());
67 $id = mysql_insert_id();
71 $json = new Services_JSON();
72 echo $json->encode(array(
73 "id" => $id,
74 ));