Created
November 13, 2018 17:06
-
-
Save debugsito/2c3a788440e84e6b471c003168aa018a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$servername = 'localhost'; | |
$username = 'username'; | |
$password = 'password'; | |
$dbname = 'moodle'; | |
$u_moodle = 'theusernameyouwant'; | |
$hp_moodle = password_hash('thepasswordyouwant', PASSWORD_DEFAULT); ///IMPORTANT! | |
$name = 'first name'; | |
$lname = 'last name'; | |
$email = 'e@m.ail'; ///This have to be verified by you as we're inserting it directly | |
$course = '123'; //Id that you put in moodle admin, not the real id | |
$conn = new mysqli($servername, $username, $password, $dbname); | |
$sql = "INSERT INTO 'mdl_user' (auth, confirmed, mnethostid, username, password, firstname, lastname, email) | |
VALUES ('manual', 1, 1, '$u_moodle', '$hp_moodle', '$name', '$lname', '$email')"; | |
// auth = 'manual', confirmed = 1, mnethostid = 1 Always. the others are your variables | |
if ($conn->query($sql) === TRUE) { | |
echo "OKTC"; | |
} else { | |
////Manage your errors | |
} | |
$sql = "SELECT * FROM $m_user WHERE email='$email'"; | |
$result = $conn2->query($sql); | |
if($row = $result->fetch_assoc()) { | |
$id = $row['id']; //Id of newly created user. we're using that for to register him on the course | |
} | |
////You have to use this if your idnumber for the course is the one you put into moodle (thats not the real id) | |
$sql = "SELECT id FROM 'mdl_course' WHERE idnumber=$course"; | |
$result = $conn->query($sql); | |
if(!$result){ | |
///Not existing course, manage your error | |
} | |
if($row = $result->fetch_assoc()) { | |
$idcourse = $row["id"]; | |
} | |
///I need now the "enrol" id, so I do this: | |
$sql = "SELECT id FROM 'mdl_enrol' WHERE courseid=$idcourse AND enrol='manual'"; | |
$result = $conn->query($sql); | |
if(!$result){ | |
///Not enrol associated (this shouldn't happen and means you have an error in your moodle database) | |
} | |
if($row = $result->fetch_assoc()) { | |
$idenrol = $row["id"]; | |
} | |
///Lastly I need the context | |
$sql = "SELECT id FROM 'mdl_context' WHERE contextlevel=50 AND instanceid=$idcourse"; ///contextlevel = 50 means course in moodle | |
$result = $conn->query($sql); | |
if(!$result){ | |
///Again, weird error, shouldnt happen to you | |
} | |
if($row = $result->fetch_assoc()) { | |
$idcontext = $row["id"]; | |
} | |
///We were just getting variables from moodle. Here is were the enrolment begins: | |
$time = time(); | |
$ntime = $time + 60*60*24*$duration; //How long will it last enroled $duration = days, this can be 0 for unlimited. | |
$sql = "INSERT INTO 'mdl_user_enrolments' (status, enrolid, userid, timestart, timeend, timecreated, timemodified) | |
VALUES (0, $idenrol, $id, '$time', '$ntime', '$time', '$time')"; | |
if ($conn->query($sql) === TRUE) { | |
} else { | |
///Manage your sql error | |
} | |
$sql = "INSERT INTO 'mdl_role_assignments' (roleid, contextid, userid, timemodified) | |
VALUES (5, $idcontext, '$id', '$time')"; //Roleid = 5, means student. | |
if ($conn->query($sql) === TRUE) { | |
} else { | |
//manage your errors | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment