Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //#########################
- //### GLOBALS CONSTANTS ###
- //#########################
- //Number of characters in a generated session key
- $KEY_LENGTH = 6;
- //All possible characters to exist within session keys
- $VALID_CHAR = "0123456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ";
- //Default session end time in seconds if no end time specified
- $END_TIME_OFFSET = "5400";
- //DBA Creds
- $SERVERNAME = "#########";
- $USERNAME = "###########";
- $PASSWORD = "###########";
- $DATABASE = "###########";
- //###############
- //### GLOBALS ###
- //###############
- $conn = 0;
- connect();
- // Creates a new session with random session key and start time
- // endTime is OPTIONAL, if provided will use that as end time OTHERWISE sets end time to (startTime + END_TIME_OFFSET)
- // RETURNS:
- // Success: Success message stating: sessionKey, startTime, and endTime;
- // Failure: Error message stating what went wrong;
- function createSession($endTime) {
- global $conn;
- global $END_TIME_OFFSET;
- $sessionKey = "";
- // start time is now
- $startTime = date('Y-m-d H:i:s');
- //If no end time given, use default end time offset
- if (!isset($endTime))
- $endTime = date('Y-m-d H:i:s', time()+$END_TIME_OFFSET);
- //Generate Session key, if key exists on active session, repeat till good key
- do {
- $sessionKey = keyGen();
- } while (checkSession($sessionKey));
- //Run query
- $sql = "INSERT INTO session (class_key, start_time, end_time) VALUES ('$sessionKey', '$startTime', '$endTime');";
- if ($conn->query($sql) === TRUE){
- $insertResponse = "Session created with session_key: $sessionKey, start_time: $startTime, and end_time: $endTime";
- }
- else {
- $insertResponse = $conn->error;
- }
- echo $insertResponse;
- return $insertResponse;
- }
- // returns randomly generated session key
- function keyGen() {
- global $VALID_CHAR;
- global $KEY_LENGTH;
- for ($i = 0; $i < $KEY_LENGTH; $i++)
- $sessionKey .= substr( $VALID_CHAR, rand( 0, strlen( $VALID_CHAR)-1), 1);
- return $sessionKey;
- }
- // INPUT sessionKey (CASE SENSITIVE)
- // RETURN VALUES
- // valid session: >=1
- // invalid/expired session: 0
- function checkSession($sessionKey) {
- global $conn;
- $now = date('Y-m-d H:i:s');
- $sql = "SELECT * FROM session WHERE class_key = BINARY '$sessionKey' AND end_time > '$now';";
- $result = $conn->query($sql);
- //echo $now;
- //echo $sql;
- //echo $result->num_rows;
- return $result->num_rows;
- }
- function connect() {
- global $conn;
- global $SERVERNAME;
- global $USERNAME;
- global $PASSWORD;
- global $DATABASE;
- $conn = new mysqli( $SERVERNAME, $USERNAME, $PASSWORD, $DATABASE );
- if ($conn->connect_err) {
- die( "Connection Failed: " . $conn->connect_error);
- }
- }
- function disconnect() {
- global $conn;
- $conn->close();
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement