yep
[handydandy.git] / index.php
blob178165610813da89e5c7b59db8a02a306b640647
1 <?php
2 if(isset($_POST['pastecontent'])){ //User has submitted a new paste.
3 //Let's check the latest inserted paste ID.
4 $fp = fopen('private/currid.txt','rwb+') or die('fopen');
5 for($i=0;!flock($fp,LOCK_EX)&&$i<100;$i++){ //Do not allow multiple checks at same time.
6 usleep(50);
9 $currId = fread($fp,2048) or die('fread');
10 $pasteId = $currId + 1;
11 ftruncate($fp,0) or die('ftruncate');
12 fseek($fp,0) and die('fseek');
13 fwrite($fp, $pasteId) or die('fwrite');
14 fclose($fp) or die('fclose');
16 //Well.. now we just have to save the paste :o)
17 $pasteFiletype = $_POST['pastefiletype'];
18 $allowedFiletypes = array('php','html','asp','txt');
19 if (!in_array($pasteFiletype,$allowedFiletypes)){
20 $pasteFiletype = 'txt';
22 switch ($_POST['expire']){
23 case 'day':
24 $pasteExpire = strtotime("now +1 day");
25 break;
26 case 'month':
27 $pasteExpire = strtotime("now +1 month");
28 break;
29 default:
30 $pasteExpire = 0;
32 $prev = '0';
33 if (isset($_POST['prev']) && is_numeric($_POST['prev'])){
34 $prev = $_POST['prev'];
37 $pasteName = $pasteId.'_'.$pasteFiletype.'_'.$pasteExpire.'_'.$prev; //FINISH THIS
38 if (file_exists('pastes/'.$pasteName)){
39 die('error');
41 $fp = fopen('pastes/'.$pasteName,'wb') or die('error fopen');
42 fwrite($fp,$_POST['pastecontent']) or die('error fwrite');
43 fclose($fp) or die('fclose');
45 <div><?php echo $_POST['pastecontent']; ?></div>
46 <textarea rows=6 cols=30><?php echo $_POST['pastecontent']; ?></textarea>
47 <?php
48 die();
51 <form action="" method="post">
52 <select name="pastefiletype">
53 <option value="plain">Plain Text</option>
54 <option value="php" selected="selected">PHP</option>
55 </select><br />
56 <textarea name="pastecontent" style="width:400px;height:200px;"></textarea><br />
57 I want my paste to expire after
58 <input type="radio" name="expire" value="day" id="day"> <label for="day">a day</label>
59 <input type="radio" name="expire" value="month" id="month"> <label for="month">a month</label>
60 <input type="radio" name="expire" value="never" id="never" checked="checked"> <label for="never">never</label>
61 <br />
62 <input type="submit" value="Paste me!" />
63 </form>