Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //about
- /*
- by -kw
- v1.0
- Grabbt alle Noten und errechnet den Durchschnitt.
- */
- if (isset($_POST['username']) && trim($_POST['username']) != '' && isset($_POST['passwd']) && trim($_POST['passwd']) != '' && isset($_POST['matrikelnr']) && trim($_POST['matrikelnr']) != '') {
- $username = trim($_POST['username']); //Rechenzentrum Nutzername
- $passwd = trim($_POST['passwd']); //Rechenzentrum Passwort
- $matrikelnr = trim($_POST['matrikelnr']); //Matrikelnummer
- //do not change from here
- date_default_timezone_set("Europe/Berlin");
- $cookies = "cookies.txt";
- if (!file_exists($cookies)) {
- file_put_contents($cookies, "");
- }
- $noten = array();
- $credits = array();
- function execute($ho, $state, $array, $newsess) {
- global $cookies;
- $log_hoster = $array;
- $ch = curl_init();
- $url = $log_hoster[$ho][0];
- $postdata = $log_hoster[$ho][1];
- $ref = $log_hoster[$ho][2];
- curl_setopt($ch, CURLINFO_HEADER_OUT, true);
- curl_setopt($ch, CURLOPT_AUTOREFERER, true);
- curl_setopt($ch, CURLOPT_COOKIE, $cookies);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
- curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
- curl_setopt($ch, CURLOPT_COOKIESESSION, $newsess);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
- curl_setopt($ch, CURLOPT_HEADER, false);
- curl_setopt($ch, CURLOPT_POST, true);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
- curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_NTLM);
- curl_setopt($ch, CURLOPT_REFERER, $ref);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
- $retu = curl_exec($ch);
- sleep(1);
- return $retu;
- }
- function getsite($zielurl, $postdata = "", $ref = "", $newsess = true) {
- $log_hoster = array(
- array($zielurl, $postdata, $ref),
- );
- $temp = execute(0, true, $log_hoster, $newsess);
- return $temp;
- }
- //einlogen
- $URL = "https://hisqis.hs-merseburg.de/qisserver/rds?state=user&type=1&category=auth.login&startpage=portal.vm";
- $seite = getsite($URL, "username=" . urlencode($username) . "&password=" . urlencode($passwd) . "&mtknr=" . urlencode($matrikelnr) . "&submit=%C2%A0Anmelden%C2%A0");
- if (str_replace("anmelden", "", strtolower($seite)) != strtolower($seite)) {
- echo "Login nicht erfolgreich...";
- die();
- }
- //asi (SessionID) finden
- $URL = "https://hisqis.hs-merseburg.de/qisserver/rds?state=change&type=1&moduleParameter=studyPOSMenu&nextdir=change&next=menu.vm&subdir=applications&xml=menu&purge=y&navigationPosition=functions%2CstudyPOSMenu&breadcrumb=studyPOSMenu&topitem=functions&subitem=studyPOSMenu";
- $seite = explode("\n", getsite($URL, "", "https://hisqis.hs-merseburg.de/qisserver/", false));
- foreach ($seite as $key => $value) {
- if (str_replace("<a href=\"https://hisqis.hs-merseburg.de/qisserver/rds?state=notenspiegel", "", $value) != $value) {
- $start = strpos($value, "asi=");
- $cut = substr($value, $start + 4);
- $ende = strpos($cut, '"');
- $asi = substr($cut, 0, $ende);
- }
- }
- if (!isset($asi)) {
- exit();
- }
- //Noten abrufen
- $URL = "https://hisqis.hs-merseburg.de/qisserver/rds?state=notenspiegelStudent&next=list.vm&nextdir=qispos/notenspiegel/student&createInfos=Y&struct=auswahlBaum&nodeID=auswahlBaum%7Cabschluss%3Aabschl%3D84%2Cstgnr%3D1&expand=0&asi=" . $asi;
- $seite = explode("\n", getsite($URL, "", "https://hisqis.hs-merseburg.de/qisserver/", false));
- //Noten zählen
- $counter = 0;
- for ($i = 0; $i < count($seite); $i++) {
- if (str_replace("bestanden", "", $seite[$i]) != $seite[$i] && str_replace("/QIS/images//his_info3.gif", "", $seite[$i - 3]) != $seite[$i - 3]) {
- $counter++;
- $index = trim($seite[$i - 11]);
- while (isset($noten[$index])) {
- $index .= "_";
- }
- $noten[$index] = trim($seite[$i - 5]);
- $credits[$index] = floatval(trim($seite[$i + 3]));
- }
- }
- $creditssumme = 0;
- $gesamtsumme = 0;
- $tabelle = "<table border='1'><tr><th>Fach</th><th>Note</th><th>Credits</th></tr>\n";
- foreach ($noten as $key => $value) {
- if ($credits[$key] != 0) {
- $creditssumme += $credits[$key];
- $gesamtsumme += $value * $credits[$key];
- $tabelle .= "<tr><td>{$key}</td><td>{$value}</td><td>{$credits[$key]}</td></tr>\n";
- }
- }
- $tabelle .= "</table><br><br>\n\n";
- $tabelle .= "<table border='1'><tr><th>Credits gesamt</th><th>Gesamtdurchschnitt</th></tr>\n";
- $tabelle .= "<tr><td>{$creditssumme}</td><td>" . $gesamtsumme / $creditssumme . "</td></tr>\n";
- echo $tabelle;
- } else {
- // login formular ?>
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <title>Dirchnschnittsrechner (auto)</title>
- <link rel="stylesheet" href="">
- </head>
- <body>
- <form action="./durchschnitt_all.php" method="post" accept-charset="utf-8">
- Nutzername: <input type="text" name="username" value="" placeholder="3kwagner" required><br />
- Password: <input type="password" name="passwd" value="" placeholder="asdfghjk" required><br />
- Matrikelnummer: <input type="text" name="matrikelnr" value="" placeholder="12345" required><br />
- <input type="submit" name="submit" value="Durschnitt berechnen!"><br><br>
- Hinweis: Mit den hier eingegebenen Daten wird sich das Script im HIS einloggen, deine Noten auslesen und dir anschließend deinen Durchschnitt anzeigen.<br>Die LogIn-Daten werden ausdrücklich <b>nicht</b> gespeichert!<br>
- Benutzung auf eigene Gefahr!
- </form>
- </body>
- </html>
- <?php
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement