2023-01-09 21:30:45 +00:00
< ? php
if ( $_SERVER [ " REQUEST_METHOD " ] == " POST " ) {
$returnCode = " success " ;
if ( $_POST [ " botcheck " ] != " isopod " ) {
$returnCode = " botcheckfailed " ;
} else if ( ! $_POST [ " name " ]) {
$returnCode = " noname " ;
} else if ( ! $_POST [ " message " ]) {
$returnCode = " nomessage " ;
} else if ( $_POST [ " website " ] and ! preg_match ( " / \ b(?:(?:https?|ftp): \ / \ /|www \ .)[-a-z0-9+&@# \ /%?=~_|!:,.;]*[-a-z0-9+&@# \ /%=~_|]/i " , $_POST [ " website " ])) {
$returnCode = " invalidwebsite " ;
} else if ( $_POST [ " cool " ] and ! preg_match ( " / \ b(?:(?:https?|ftp): \ / \ /|www \ .)[-a-z0-9+&@# \ /%?=~_|!:,.;]*[-a-z0-9+&@# \ /%=~_|]/i " , $_POST [ " cool " ])) {
$returnCode = " invalidlink " ;
} else {
date_default_timezone_set ( " America/Edmonton " );
2023-02-24 07:18:56 +00:00
$currentPost = array (
" date " => time (),
" name " => htmlentities ( $_POST [ " name " ]),
" message " => htmlentities ( $_POST [ " message " ]),
" found " => htmlentities ( $_POST [ " found " ]),
" website " => $_POST [ " website " ],
" cool " => $_POST [ " cool " ],
" reply " => " "
);
2023-01-09 21:30:45 +00:00
$filename = " posts.json " ;
$handle = @ fopen ( $filename , 'r+' );
// create the file if needed
if ( $handle === null )
{
$handle = fopen ( $filename , 'w+' );
}
if ( $handle )
{
// seek to the end
fseek ( $handle , 0 , SEEK_END );
// are we at the end of is the file empty
if ( ftell ( $handle ) > 0 )
{
// move back a byte
fseek ( $handle , - 2 , SEEK_END );
// add the trailing comma
fwrite ( $handle , " , \n " , 2 );
// add the new json string
fwrite ( $handle , json_encode ( $currentPost ) . " ] \n " );
}
else
{
// write the first event inside an array
fwrite ( $handle , json_encode ( array ( $currentPost )));
}
// close the handle on the file
fclose ( $handle );
}
}
}
header ( " Location: ./?return= $returnCode " );
?>
<! DOCTYPE html >
< html lang = " en " >
< head >
< meta charset = " utf-8 " >
< title > Guestbook </ title >
< link href = " ../style.css " rel = " stylesheet " type = " text/css " media = " all " >
< style type = " text/css " >
body {
display : flex ;
flex - direction : column ;
justify - content : center ;
align - items : center ;
}
</ style >
< ? php include ( $_SERVER [ 'DOCUMENT_ROOT' ] . '/seasonal.php' ); ?>
</ head >
< body >
< p > Your post has been submitted ! It 's weird that you' re seeing this page though . Maybe your browser can 't process location headers? At any rate, click <?php echo "<a href=' ./ ? return = $returnCode '>here</a>"; ?> to get where you' re supposed to be right now .</ p >
</ body >
</ html >