$html, 'javascript' => $javascript)) . ';'; } else if ($action == 'edit') { $code_id = array_pop($request); } else if ($action == 'save') { } else if ($action) { // this should be an id } if (!$edit_mode || $ajax) { exit; } function connect() { // sniff, and if on my mac... $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); mysql_select_db(DB_NAME, $link); } // returns the app loaded with json html + js content function edit() { } // saves current state - should I store regardless of content, to start their own // milestones? function save() { } function getCode($code_id) { $sql = sprintf('select * from sandbox where url="%s"', mysql_real_escape_string($code_id)); $result = mysql_query($sql); if (!mysql_num_rows($result)) { header("HTTP/1.0 404 Not Found"); return defaultCode(true); } else { $row = mysql_fetch_object($result); // TODO required anymore? used for auto deletion $sql = 'update sandbox set last_viewed=now() where id=' . $row->id; mysql_query($sql); if (!get_magic_quotes_gpc()) { // escape in - frankly: fucking stupid. $javascript = str_replace('\\', '\\\\', $row->javascript); $html = str_replace('\\', '\\\\', $row->html); } else { $javascript = $row->javascript; $html = $row->html; } return array(preg_replace('/\r/', '', $html), preg_replace('/\r/', '', $javascript), $row->streaming, $row->active_tab, $row->active_cursor); } } function defaultCode() { $library = ''; if (@$_GET['html']) { $html = $_GET['html']; } else { $html = << JS Bin

Hello World

HERE_DOC; } $javascript = ''; if (!@$_GET['js']) { if ($not_found) { $javascript = 'document.getElementById("hello").innerHTML = "This URL does not have any code saved to it.";'; } else { $javascript = "if (document.getElementById('hello')) {\n document.getElementById('hello').innerHTML = 'Hello World - this was inserted using JavaScript';\n}\n"; } } else { $javascript = $_GET['js']; } return array(get_magic_quotes_gpc() ? stripslashes($html) : $html, get_magic_quotes_gpc() ? stripslashes($javascript) : $javascript); } // I'd consider using a tinyurl type generator, but I've yet to find one. // this method also produces *pronousable* urls function generateCodeId($tries = 0) { $code_id = generateURL(); if ($tries > 2) { $code_id .= $tries; } // check if it's free $sql = sprintf('select id from sandbox where url="%s"', mysql_real_escape_string($code_id)); $result = mysql_query($sql); if (mysql_num_rows($result)) { $code_id = generateCodeId(++$tries); } else if ($tries > 10) { echo('Too many tries to find a new code_id - please contact using about'); exit; } return $code_id; } function generateURL() { // generates 5 char word $vowels = str_split('aeiou'); $const = str_split('bcdfghjklmnpqrstvwxyz'); $word = ''; for ($i = 0; $i < 5; $i++) { if ($i % 2 == 0) { // even = vowels $word .= $vowels[rand(0, 4)]; } else { $word .= $const[rand(0, 20)]; } } return $word; } ?>