- Output for git.master, git.master_jit, rfc.property-hooks
- <? //connect to your database //query comments for this page of this article $inf = "SELECT * FROM `comments` WHERE page = '".stripslashes($_SERVER['REQUEST_URI'])."' ORDER BY time ASC"; $info = mysql_query($inf); if(!$info) die(mysql_error()); $info_rows = mysql_num_rows($info); if($info_rows > 0) { echo '<h5>Comments:</h5>'; echo '<table width="95%">'; while($info2 = mysql_fetch_object($info)) { echo '<tr>'; echo '<td>"'.stripslashes($info2->subject).'" by: <a href="'.$info2->contact.'">'.stripslashes($info2->username).'</a> </td> <td><div align="right"> @ '.date('h:i:s a', $info2->time).' on '.$info2->date.'</div></td>'; echo '</tr><tr>'; echo '<td colspan="2"> '.stripslashes($info2->comment).' </td>'; echo '</tr>'; }//end while echo '</table>'; echo '<hr width="95%" noshade>'; } else echo 'No comments for this page. Feel free to be the first <br>'; if(isset($_POST['submit'])) { if(!addslashes($_POST['username'])) die('<u>ERROR:</u> you must enter a username to add a comment.'); if(!addslashes($_POST['contact'])) die('<u>ERROR:</u> enter contact method in contact field.'); if(!addslashes($_POST['subject'])) die('<u>ERROR:</u> enter a subject to your comment.'); if(!addslashes($_POST['comment'])) die('<u>ERROR:</u> cannot add comment if you do not enter one!?'); //this is for a valid contact if(substr($_POST['contact'],0,7) != 'mailto:' && !strstr($_POST['contact'],'//')) { if(strstr($_POST['contact'],'@')) $_POST['contact'] = "mailto:".$_POST['contact'].""; else $_POST['contact'] = "http://".$_POST['contact'].""; } //end valid contact //try to prevent multiple posts and flooding... $c = "SELECT * from `comments` WHERE ip = '".$_SERVER['REMOTE_ADDR']."'"; $c2 = mysql_query($c); while($c3 = mysql_fetch_object($c2)) { $difference = time() - $c3->time; if($difference < 300) die('<u>ALERT:</u> '.$c3->username.', You have already commented earlier; if you have a question, try the forums!<BR>'); } //end while //add comment $q ="INSERT INTO `comments` (article_id, page, date, time, username, ip, contact, subject, comment) VALUES ('".$_GET['id']."', '".$_POST['page']."', '".$_POST['date']."','".$_POST['time']."', '".addslashes(htmlspecialchars($_POST['username']))."', '".$_SERVER['REMOTE_ADDR']."', '".addslashes(htmlspecialchars($_POST['contact']))."', '".addslashes(htmlspecialchars($_POST['subject']))."', '".addslashes(htmlspecialchars(nl2br($_POST['comment'])))."')"; $q2 = mysql_query($q); if(!$q2) die(mysql_error()); //refresh page so they can see new comment header('Location: http://' . $_SERVER['HTTP_HOST'] . $_POST['page'] . "#comments"); } else { //display form ?> <form name="comments" action="<? $_SERVER['PHP_SELF']; ?>" method="post"> <input type="hidden" name="page" value="<? echo($_SERVER['REQUEST_URI']); ?>"> <input type="hidden" name="date" value="<? echo(date("F j, Y.")); ?>"> <input type="hidden" name="time" value="<? echo(time()); ?>"> <table width="90%" border="0" cellspacing="0" cellpadding="0"> <tr> <td><div align="right">Username: </div></td> <td><input name="username" type="text" size="30" value=""></td> </tr> <tr> <td><div align="right">Contact: </div></td> <td><input type="text" name="contact" size="30" value=""> <i>(email or url)</i></td> </tr> <td><div align="right">Subject: </div></td> <td><input type="text" name="subject" size="30" value=""></td> </tr> <tr> <td><div align="right">Comment: </div></td> <td><textarea name="comment" cols="45" rows="5" wrap="VIRTUAL"></textarea></td> </tr> <tr> <td></td> <td colspan="2"><input type="reset" value="Reset Fields"> <input type="submit" name="submit" value="Add Comment"></td> </tr> </table> </form> <? } // end else ?>
This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.
Active branches
Archived branches
Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page
- 2020-03-21 RFC: Is_Literal - declined
- 2020-12-04 Enumerations - included in PHP 8.1
- 2018-06-15 Typed Properties v2 - implemented in PHP 7.4
- 2016-08-12 Object typehint - included in PHP 7.2
- 2016-08-14 Arrow functions - withdrawn
- 2016-05-29 array_change_keys() - withdrawn
- 2016-04-19 Lexical scope support for anonymous classes - suspended
- 2016-04-17 Functional Interfaces - declined
- 2016-03-16 Typed Properties - superseded in favor of Typed Properties 2.0
- 2015-08-27 Callable Prototypes - declined
- 2015-05-01 Short Closures - declined / withdrawn in favor of Arrow Functions
- 2015-02-18 Scalar type hints v5 - included in PHP 7
- 2015-02-14 Union Types - declined
- 2013-09-22 Anonymous classes - included in PHP 7