Files
ibsite/user/updateFunc.php
2019-03-30 22:43:34 -04:00

64 lines
2.0 KiB
PHP

<?php
require $_SERVER['DOCUMENT_ROOT']."/globalFuncs.php";
//Getting class settings
$i=0;//for the comma
if(isset($_POST['classes'])){
foreach($_POST['classes'] as $class){
if($i==1){//for the comma
$classes .= ",";
}else{
$i=1;
}
$classes .= $class;
}
}else{
$classes = "";
}
$id = $current_user;
//Making sure username is legal
if(strlen($_POST["name"])>20){
msg("You cannot have a name with more than 20 characters");
header("Location: /user/updateInfo.php");
exit();
}else if(strContains($_POST["name"], " ")){
msg("You cannot have a space in your username");
header("Location: /user/updateInfo.php");
exit();
}else if(preg_match('#[^a-zA-Z0-9\-_]+#', $_POST["name"])){
preg_match_all('#[^a-zA-Z0-9\-_]#', $_POST["name"], $match);
for($i=0; $i<sizeof($match[0]);$i++){
$char .= $match[0][$i].", ";
}
$char = substr($char, 0, -2);
msg("Please only use -, _, and alphanumeric characters (don't use $char)");
header("Location: /user/settings.php");
exit();
}
//Making sure the username isn't taken
if(getUserInfoByName($_POST["name"])->name != "" && getUserInfoByName($_POST["name"])->id != $id){
msg("That name is already taken");
header("Location: /user/updateInfo.php");
exit();
}
//Actually putting the info in the database
conn();
$stmt = $GLOBALS['conn']->prepare("UPDATE users SET name = :nm, grade = :gd, classes = :cs, dark_theme = :dt, snow = :sw WHERE id = :id");
$stmt->bindParam(":nm", $_POST["name"]);
$stmt->bindParam(":gd", $_POST["grade"]);
$stmt->bindParam(":cs", $classes);
$stmt->bindParam(":dt", $_POST["dark_theme"]);
$stmt->bindParam(":sw", $_POST["snow"]);
$stmt->bindParam(":id", $id);
$stmt->execute();
if($stmt){
msg("Information updated");
}else{
reportError("Error given at end of /user/updateFunc.php");
msg("Error updating. It has been reported.");
}
header("Location: https://ib.lukeogburn.com/user/?user=".$id);
?>