fembooru/ext/chatbox/php/functions.php

175 lines
3.4 KiB
PHP

<?php
function cookie($name, $data)
{
return setcookie($name, $data, time() + 60 * 60 * 24 * 30, '/');
}
function cookieGet($name, $default = null)
{
if (isset($_COOKIE[$name])) {
return $_COOKIE[$name];
} else {
return $default;
}
}
function cookieClear($name)
{
setcookie($name, false, time() - 42);
}
function getVar($name)
{
if (isset($_POST[$name])) {
return $_POST[$name];
}
if (isset($_GET[$name])) {
return $_GET[$name];
}
return null;
}
function clean($s)
{
$s = magic($s);
$s = htmlspecialchars($s);
return $s;
}
function magic($s)
{
if (get_magic_quotes_gpc()) {
$s = stripslashes($s);
}
return $s;
}
function ip()
{
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
return $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
return $_SERVER['REMOTE_ADDR'];
}
}
function ipValid($ip)
{
if ($ip == long2ip(ip2long($ip))) {
return true;
}
return false;
}
function validIP($ip)
{
if ($ip == long2ip(ip2long($ip))) {
return true;
}
return false;
}
function ts()
{
// return microtime(true);
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function len($string)
{
$i = 0;
$count = 0;
$len = strlen($string);
while ($i < $len) {
$chr = ord($string[$i]);
$count++;
$i++;
if ($i >= $len) {
break;
}
if ($chr & 0x80) {
$chr <<= 1;
while ($chr & 0x80) {
$i++;
$chr <<= 1;
}
}
}
return $count;
}
function error($err)
{
echo 'Error: ' . $err;
exit;
}
function ys($log = 1)
{
global $yShout, $prefs;
if ($yShout) {
return $yShout;
}
if (filter_var($log, FILTER_VALIDATE_INT, ["options" => ["min_range" => 0, "max_range" => $prefs['logs']]]) === false) {
$log = 1;
}
$log = 'log.' . $log;
return new YShout($log, loggedIn());
}
function dstart()
{
global $ts;
$ts = ts();
}
function dstop()
{
global $ts;
echo 'Time elapsed: ' . ((ts() - $ts) * 100000);
exit;
}
function login($hash)
{
// echo 'login: ' . $hash . "\n";
$_SESSION['yLoginHash'] = $hash;
cookie('yLoginHash', $hash);
// return loggedIn();
}
function logout()
{
$_SESSION['yLoginHash'] = '';
cookie('yLoginHash', '');
// cookieClear('yLoginHash');
}
function loggedIn()
{
global $prefs;
$loginHash = cookieGet('yLoginHash', false);
// echo 'loggedin: ' . $loginHash . "\n";
// echo 'pw: ' . $prefs['password'] . "\n";
if (isset($loginHash)) {
return $loginHash == md5($prefs['password']);
}
if (isset($_SESSION['yLoginHash'])) {
return $_SESSION['yLoginHash'] == md5($prefs['password']);
}
return false;
}