本文整理汇总了PHP中check_csrf_token函数的典型用法代码示例。如果您正苦于以下问题:PHP check_csrf_token函数的具体用法?PHP check_csrf_token怎么用?PHP check_csrf_token使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了check_csrf_token函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: common_savjet_dana
function common_savjet_dana()
{
global $userid;
global $user_student, $user_nastavnik, $user_studentska, $user_siteadmin;
if ($_REQUEST['akcija'] == "ne_prikazuj" && $_REQUEST['ne_prikazuj'] && check_csrf_token()) {
?>
<h2>Da li ste znali...</h2>
<p>Prozor "Da li ste znali..." više neće biti prikazivan.</p>
<p>Ako ga kasnije budete željeli reaktivirati, možete to učiniti kroz vaš Profil.</p>
<?php
$q20 = myquery("delete from preference where korisnik={$userid} and preferenca='savjet_dana'");
$q30 = myquery("insert into preference set korisnik={$userid}, preferenca='savjet_dana', vrijednost=0");
zamgerlog("iskljucio savjet dana", 2);
zamgerlog2("iskljucio savjet dana");
return;
}
if ($user_nastavnik) {
$upit .= "vrsta_korisnika='nastavnik' or ";
}
if ($user_student) {
$upit .= "vrsta_korisnika='student' or ";
}
if ($user_siteadmin) {
$upit .= "vrsta_korisnika='siteadmin' or ";
}
if ($user_studentska) {
$upit .= "vrsta_korisnika='studentska' or ";
}
$q10 = myquery("select tekst from savjet_dana where {$upit} 0 order by rand() limit 1");
// 0 zbog zadnjeg or
?>
<h2>Da li ste znali...</h2>
<img src="images/savjet_dana.gif" align="left" width="92" height="150" style="margin: 0px 20px">
<?php
echo mysql_result($q10, 0, 0);
?>
<hr>
<?php
echo genform("POST");
?>
<input type="hidden" name="akcija" value="ne_prikazuj">
<input type="checkbox" name="ne_prikazuj">
Ne prikazuj više savjet dana
<input type="submit" value="Potvrda" class="default"> <input type="button" onclick="window.close()" value="Zatvori" class="default">
<input type="button" onclick="window.location.reload(true)" value="Novi savjet" class="default">
</form>
<?php
}
示例2: nastavnik_prijava_ispita
//.........这里部分代码省略.........
biguglyerror("Ispitni termin ne pripada datom ispitu");
return;
}
}
// AKCIJE
// Akcija koja briše ispitni termin
if ($_REQUEST['akcija'] == "obrisi") {
$q70 = myquery("select count(*) from student_ispit_termin where ispit_termin={$termin}");
$broj_studenata = mysql_result($q70, 0, 0);
$q80 = myquery("select UNIX_TIMESTAMP(datumvrijeme) from ispit_termin where id={$termin}");
$datumvrijeme = date("d. m. Y. h:i:s", mysql_result($q80, 0, 0));
?>
<h4>Brisanje ispitnog termina <?php
echo $datumvrijeme;
?>
</h4>
<p>Za ovaj termin se do sada prijavilo <b><?php
echo $broj_studenata;
?>
</b> studenata.<br />
Da li ste sigurni da ga želite obrisati?</p>
<?php
echo genform("POST");
?>
<input type="hidden" name="akcija" value="obrisi_potvrda">
<input type="submit" value=" Briši ">
<input type="submit" name="povratak" value=" Nazad ">
</form>
<?php
return;
}
// Potvrda brisanja
if ($_REQUEST["akcija"] == "obrisi_potvrda" && $_REQUEST['povratak'] != " Nazad " && check_csrf_token()) {
$q90 = myquery("DELETE FROM student_ispit_termin WHERE ispit_termin={$termin}");
$q95 = myquery("DELETE FROM ispit_termin WHERE id={$termin}");
zamgerlog("izbrisan ispitni termin {$termin} (pp{$predmet}, ag{$ag})", 2);
zamgerlog2("izbrisan ispitni termin", $termin, $predmet, $ag);
nicemessage("Termin uspješno obrisan ");
}
// Tabela studenata koji su se prijavili za ovaj ispitni termin
if ($_REQUEST["akcija"] == "studenti") {
if ($_REQUEST['subakcija'] == "dodaj_studenta" && check_csrf_token()) {
$student = intval($_REQUEST['student']);
$q215 = myquery("select count(*) from student_ispit_termin where student={$student} and ispit_termin={$termin}");
if (mysql_result($q215, 0, 0) > 0) {
nicemessage("Student je već prijavljen na ovaj termin!");
} else {
$q220 = myquery("insert into student_ispit_termin set student={$student}, ispit_termin={$termin}");
}
}
if ($_REQUEST['subakcija'] == "izbaci_studenta" && check_csrf_token()) {
$student = intval($_REQUEST['student']);
$q225 = myquery("delete from student_ispit_termin where student={$student} and ispit_termin={$termin}");
}
$q200 = myquery("select UNIX_TIMESTAMP(datumvrijeme) from ispit_termin where id={$termin}");
$datumvrijeme = date("d. m. Y. H:i:s", mysql_result($q200, 0, 0));
$q200 = myquery("SELECT o.ime, o.prezime, o.brindexa, o.id FROM osoba as o, student_ispit_termin as si WHERE o.id=si.student AND si.ispit_termin={$termin} order by o.prezime, o.ime");
?>
<p><b>Tabela prijavljenih za: <?php
echo $datumvrijeme;
?>
</b></p>
<table border="0" cellspacing="1" cellpadding="2">
<thead>
示例3: studentska_prodsjeka
function studentska_prodsjeka()
{
global $userid, $user_siteadmin, $user_studentska;
// Provjera privilegija
if (!$user_studentska && !$user_siteadmin) {
zamgerlog("nije studentska", 3);
// 3: error
zamgerlog2("nije studentska");
// 3: error
biguglyerror("Pristup nije dozvoljen.");
return;
}
// Odredjujemo akademsku godinu
$ak_god = intval($_REQUEST['ak_god']);
if ($ak_god == 0) {
// Aktuelna
$q1 = myquery("select id, naziv from akademska_godina where aktuelna=1");
$ak_god = mysql_result($q1, 0, 0);
$ak_god_naziv = mysql_result($q1, 0, 1);
// Da li postoji godina iza aktuelne?
$q2 = myquery("select id, naziv from akademska_godina where id>{$ak_god} order by id limit 1");
if (mysql_num_rows($q2) > 0) {
$ak_god = mysql_result($q2, 0, 0);
$ak_god_naziv = mysql_result($q2, 0, 1);
}
} else {
$q3 = myquery("select naziv from akademska_godina where id={$ak_god}");
$ak_god_naziv = mysql_result($q3, 0, 0);
}
?>
<h3>Studentska služba - Zahtjevi za promjenu odsjeka</h3>
<?php
// Akcija: brisanje zahtjeva
if ($_REQUEST['akcija'] == "obrisi") {
$id = intval($_REQUEST['id']);
$q5 = myquery("delete from promjena_odsjeka where id={$id}");
zamgerlog("obrisan zahtjev za promjenu odsjeka sa IDom {$id}", 2);
// 2 = edit
zamgerlog2("obrisan zahtjev za promjenu odsjeka", $id);
}
// Akcija: dodavanje zahtjeva
if ($_POST['akcija'] == "dodaj" && check_csrf_token()) {
$prezime = trim(malaslova(my_escape($_REQUEST['prezime'])));
$ime = trim(malaslova(my_escape($_REQUEST['ime'])));
$iz_odsjeka = intval($_REQUEST['iz_odsjeka']);
$u_odsjek = intval($_REQUEST['u_odsjek']);
$q100 = myquery("select id from osoba where ime='{$ime}' and prezime='{$prezime}'");
if (mysql_num_rows($q100) < 1) {
niceerror("Nepoznat student pod imenom: \"{$ime} {$prezime}\"");
} else {
if ($iz_odsjeka == 0 || $u_odsjek == 0) {
niceerror("Niste odabrali odsjek");
} else {
$osoba = mysql_result($q100, 0, 0);
$q105 = myquery("select count(*) from promjena_odsjeka where osoba={$osoba} and akademska_godina={$ak_god}");
if (mysql_result($q105, 0, 0) > 0) {
niceerror("Već postoji zahtjev za promjenu odsjeka za studenta \"{$ime} {$prezime}\"");
} else {
$q110 = myquery("insert into promjena_odsjeka set osoba={$osoba}, iz_odsjeka={$iz_odsjeka}, u_odsjek={$u_odsjek}, akademska_godina={$ak_god}");
$q115 = myquery("select id from promjena_odsjeka where osoba={$osoba} and iz_odsjeka={$iz_odsjeka} and u_odsjek={$u_odsjek} and akademska_godina={$ak_god}");
zamgerlog("dodan zahtjev za promjenu odsjeka za osobu u{$osoba} (iz {$iz_odsjeka} u {$u_odsjek})", 2);
zamgerlog2("dodan zahtjev za promjenu odsjeka", intval($osoba), $iz_odsjeka, $u_odsjek);
}
}
}
}
// Akcija: prihvatanje zahtjeva
// Ustvari ćemo samo dati linkove na modul studentska/osobe
if ($_REQUEST['akcija'] == "prihvati") {
$id = intval($_REQUEST['id']);
$potvrda = intval($_REQUEST['potvrda']);
$q500 = myquery("select osoba, iz_odsjeka, u_odsjek from promjena_odsjeka where id={$id} and akademska_godina={$ak_god}");
if (mysql_num_rows($q500) < 1) {
niceerror("Nepoznat zahtjev ID");
return;
}
$osoba = mysql_result($q500, 0, 0);
$iz_odsjeka = mysql_result($q500, 0, 1);
$u_odsjek = mysql_result($q500, 0, 2);
// Da li trenutno studira
$q510 = myquery("select s.id, s.naziv, ss.semestar from studij as s, student_studij as ss where ss.student={$osoba} and ss.studij=s.id and ss.akademska_godina={$ak_god} order by ss.semestar desc");
if (mysql_num_rows($q510) > 0) {
$studij = mysql_result($q510, 0, 0);
$naziv_studija = mysql_result($q510, 0, 1);
$semestar = mysql_result($q510, 0, 2);
if ($studij == $u_odsjek) {
nicemessage("Student je već upisan na studij {$naziv_studija}");
return;
}
if ($studij != $iz_odsjeka) {
niceerror("Student je trenutno upisan na studij {$naziv_studija} a ne na izabrani studij!");
print "Vaš zahtjev nije ispravan. Obrišite ga i napravite novi.";
return;
}
// Ispis sa studija
?>
<p>Najprije morate ispisati studenta sa studija <?php
echo $naziv_studija;
?>
. <a href="?sta=studentska/osobe&osoba=<?php
//.........这里部分代码省略.........
示例4: update_user_password
update_user_password($selected_id, $_POST['user_id'], md5($_POST['password']));
}
display_notification_centered(_("The selected user has been updated."));
} else {
add_user($_POST['user_id'], $_POST['real_name'], md5($_POST['password']), $_POST['phone'], $_POST['email'], $_POST['role_id'], $_POST['language'], $_POST['print_profile'], check_value('rep_popup'), $_POST['pos']);
$id = db_insert_id();
// use current user display preferences as start point for new user
$prefs = $_SESSION['wa_current_user']->prefs->get_all();
update_user_prefs($id, array_merge($prefs, get_post(array('print_profile', 'rep_popup' => 0, 'language'))));
display_notification_centered(_("A new user has been added."));
}
$Mode = 'RESET';
}
}
//-------------------------------------------------------------------------------------------------
if ($Mode == 'Delete' && check_csrf_token()) {
$cancel_delete = 0;
if (key_in_foreign_table($selected_id, 'audit_trail', 'user')) {
$cancel_delete = 1;
display_error(_("Cannot delete this user because entries are associated with this user."));
}
if ($cancel_delete == 0) {
delete_user($selected_id);
display_notification_centered(_("User has been deleted."));
}
//end if Delete group
$Mode = 'RESET';
}
//-------------------------------------------------------------------------------------------------
if ($Mode == 'RESET') {
$selected_id = -1;
示例5: set_focus
set_focus('password');
return false;
}
if (strstr($_POST['password'], $_SESSION["wa_current_user"]->username) != false) {
display_error(_("The password cannot contain the user login."));
set_focus('password');
return false;
}
if ($_POST['password'] != $_POST['passwordConfirm']) {
display_error(_("The passwords entered are not the same."));
set_focus('password');
return false;
}
return true;
}
if (isset($_POST['UPDATE_ITEM']) && check_csrf_token()) {
if (can_process()) {
if ($allow_demo_mode) {
display_warning(_("Password cannot be changed in demo mode."));
} else {
update_user_password($_SESSION["wa_current_user"]->user, $_SESSION["wa_current_user"]->username, md5($_POST['password']));
display_notification(_("Your password has been updated."));
}
$Ajax->activate('_page_body');
}
}
start_form();
start_table(TABLESTYLE);
$myrow = get_user($_SESSION["wa_current_user"]->user);
label_row(_("User login:"), $myrow['user_id']);
$_POST['password'] = "";
示例6: nastavnik_obavjestenja
function nastavnik_obavjestenja()
{
global $userid, $user_siteadmin, $conf_ldap_domain;
// Parametri
$predmet = intval($_REQUEST['predmet']);
$ag = intval($_REQUEST['ag']);
// Naziv predmeta
$q10 = myquery("select naziv from predmet where id={$predmet}");
if (mysql_num_rows($q10) < 1) {
biguglyerror("Nepoznat predmet");
zamgerlog("ilegalan predmet {$predmet}", 3);
//nivo 3: greska
zamgerlog2("nepoznat predmet", $predmet);
return;
}
$predmet_naziv = mysql_result($q10, 0, 0);
// Da li korisnik ima pravo ući u modul?
if (!$user_siteadmin) {
$q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
if (mysql_num_rows($q10) < 1 || mysql_result($q10, 0, 0) == "asistent") {
zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3);
zamgerlog2("nije nastavnik na predmetu", $predmet, $ag);
biguglyerror("Nemate pravo pristupa ovoj opciji");
return;
}
}
?>
<p> </p>
<p><h3><?php
echo $predmet_naziv;
?>
- Obavještenja za studente</h3></p>
<script language="JavaScript">
function upozorenje(obavjest) {
var a = confirm("Želite li obrisati ovo obavještenje? Ako ste odabrali opciju Slanje maila, ne možete poništiti njen efekat!");
if (a) {
document.brisanjeobavjestenja.obavjestenje.value=obavjest;
document.brisanjeobavjestenja.submit();
}
}
</script>
<?php
echo genform("POST", "brisanjeobavjestenja");
?>
<input type="hidden" name="akcija" value="obrisi_obavjestenje">
<input type="hidden" name="obavjestenje" value=""></form>
<?php
// LEGENDA tabele poruke
// Tip:
// 1 - obavjestenja
// 2 - lične poruke
// Opseg:
// 0 - svi korisnici Zamgera
// 1 - svi studenti
// 2 - svi nastavnici
// 3 - svi studenti na studiju (primalac - id studija)
// 4 - svi studenti na godini (primalac - id akademske godine)
// 5 - svi studenti na predmetu (primalac - id predmeta)
// 6 - korisnik (primalac - user id)
// Parametri
$naslov = $tekst = "";
$citava = intval($_REQUEST['citava']);
$izmijeni = intval($_REQUEST['izmijeni']);
// Brisanje obavjestenja
if ($_POST['akcija'] == "obrisi_obavjestenje" && check_csrf_token()) {
$obavjestenje = intval($_POST['obavjestenje']);
// Provjera predmeta
$q15 = myquery("select primalac, opseg from poruka where id={$obavjestenje}");
if (mysql_num_rows($q15) < 1) {
zamgerlog("poruka {$obavjestenje} ne postoji", 3);
zamgerlog2("nepostojeca poruka", $obavjestenje);
nicemessage("Pogrešan ID poruke! Poruka nije obrisana");
} else {
// Provjeravamo prava za brisanje
$primalac = mysql_result($q15, 0, 0);
$opseg = mysql_result($q15, 0, 1);
if ($opseg == 5 && $primalac != $predmet) {
zamgerlog("poruka {$obavjestenje} nije za predmet pp{$predmet} nego pp{$primalac}", 3);
zamgerlog2("primalac poruke ne odgovara predmetu", $obavjestenje, $predmet, $ag);
nicemessage("Pogrešan ID poruke! Poruka nije obrisana");
return;
} else {
if ($opseg == 6) {
$q17 = myquery("select predmet, akademska_godina from labgrupa where id={$primalac}");
if (mysql_result($q17, 0, 0) != $predmet || mysql_result($q17, 0, 1) != $ag) {
zamgerlog("poruka {$obavjestenje} je za labgrupu {$primalac} koja nije sa pp{$predmet}", 3);
zamgerlog2("primalac poruke ne odgovara labgrupi", $obavjestenje, $predmet, $ag);
nicemessage("Pogrešan ID poruke! Poruka nije obrisana");
return;
}
}
}
$q20 = myquery("delete from poruka where id={$obavjestenje}");
zamgerlog("obrisano obavjestenje (id {$obavjestenje} )", 2);
zamgerlog2("obrisana poruka", $obavjestenje);
}
//.........这里部分代码省略.........
示例7: studentska_prijemni
//.........这里部分代码省略.........
</tr>
<tr> </tr>
<tr>
<td><a href="?sta=izvjestaj/prijemni_top10posto&termin=<?php
echo $termin;
?>
">Najboljih 10% po školama</a></td>
</tr>
<tr> </tr>
<tr>
<td><a href="?sta=studentska/prijemni&akcija=rang_liste&termin=<?php
echo $termin;
?>
">Rang liste kandidata</a></td>
</tr>
</table>
</td><td width="10"> </td>
<?php
}
// if ($_REQUEST['akcija'] != "pregled" )
// NASLOV
?>
<td valign="top">
<h1>Prijemni ispit</h1>
<?php
// NOVI PRIJEMNI ISPIT
if ($_POST['akcija'] == "novi_ispit_potvrda" && check_csrf_token()) {
$ciklus = intval($_REQUEST['ciklus']);
if ($ciklus != 1 && $ciklus != 2 && $ciklus != 3) {
biguglyerror("Neispravan ciklus studija");
return;
}
$ag = intval($_REQUEST['_lv_column_akademska_godina']);
if (preg_match("/(\\d+).*?(\\d+).*?(\\d+)/", $_REQUEST['datum'], $matches)) {
$dan = $matches[1];
$mjesec = $matches[2];
$godina = $matches[3];
if ($godina < 100) {
if ($godina < 50) {
$godina += 2000;
} else {
$godina += 1900;
}
}
if ($godina < 1000) {
if ($godina < 900) {
$godina += 2000;
} else {
$godina += 1000;
}
}
} else {
biguglyerror("Neispravan datum");
return;
}
$q20 = myquery("insert into prijemni_termin set akademska_godina={$ag}, datum='{$godina}-{$mjesec}-{$dan}', ciklus_studija={$ciklus}");
zamgerlog("kreiran novi termin za prijemni ispit", 4);
// 4 = audit
zamgerlog2("kreiran novi termin za prijemni ispit", mysql_insert_id());
示例8: saradnik_izmjena_studenta
function saradnik_izmjena_studenta()
{
print "Ne radi";
return;
global $userid, $user_siteadmin, $user_studentska;
require "lib/manip.php";
// radi ispisa studenta sa predmeta
?>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" bgcolor="#FFFFFF">
<?php
$student = intval($_REQUEST['student']);
$predmet = intval($_REQUEST['predmet']);
$ag = intval($_REQUEST['ag']);
// Necemo provjeravati prava pristupa jer je osnovna provjera vec napravljena kroz registry, a prikaz readonly podataka nastavniku koji nije angazovan na predmetu je IMHO ok
// Podaci o studentu...
$q140 = myquery("select ime,prezime,brindexa from osoba where id={$student}");
if (mysql_num_rows($q140) < 1) {
zamgerlog("nepostojeci student (student {$student})", 3);
biguglyerror("Nepoznat student");
return;
}
// Podaci o predmetu
$q160 = myquery("select naziv from predmet where id={$predmet}");
if (mysql_num_rows($q160) < 1) {
zamgerlog("nepostojeci predmet (predmet {$predmet})", 3);
biguglyerror("Nepoznat predmet");
return;
}
$naziv_predmeta = mysql_result($q160, 0, 0);
// Aktuelna akademska godina
$q170 = myquery("select naziv from akademska_godina where id={$ag}");
if (mysql_num_rows($q170) < 1) {
zamgerlog("nepostojeca ag {$ag}", 3);
biguglyerror("Nepoznat predmet");
return;
}
$agnaziv = mysql_result($q170, 0, 0);
// Studij koji student trenutno sluša
$q180 = myquery("select s.naziv from student_studij as ss, studij as s where s.id=ss.studij and ss.akademska_godina={$ag} and ss.student={$student}");
if (mysql_num_rows($q180) < 1) {
$studij = "Nije upisan niti na jedan studij! ({$agnaziv})";
} else {
$studij = mysql_result($q180, 0, 0) . " ({$agnaziv})";
}
// Provjera ogranicenja
/*$q10 = myquery("select sl.labgrupa from student_labgrupa as sl,labgrupa where sl.student=$student and sl.labgrupa=labgrupa.id and labgrupa.predmet=$predmet");
if (mysql_num_rows($q10)>0) {
$labgrupa = mysql_result($q10,0,0);
} else {
$labgrupa=0;
}
// Limit...
$q20 = myquery("select ogranicenje.labgrupa from ogranicenje, labgrupa where ogranicenje.nastavnik=$userid and ogranicenje.labgrupa=labgrupa.id and labgrupa.predmet=$predmet_id");
if (mysql_num_rows($q20)>0) {
$nasao=0;
while ($r20 = mysql_fetch_row($q20)) {
if ($r20[0] == $labgrupa) { $nasao=1; break; }
}
if ($nasao == 0) {
zamgerlog("ogranicenje (student u$stud_id predmet pp$predmet_id)",3);
niceerror("Nemate pravo pristupa labgrupi u kojoj se nalazi ovaj student");
return;
}
}*/
// Onemogući izmjenu ako prijavljeni korisnik nije nastavnik na predmetu ili siteadmin
$izmjena_moguca = 0;
if ($user_siteadmin || $user_studentska) {
$izmjena_moguca = 1;
} else {
$q30 = myquery("select count(*) from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
if (mysql_result($q30, 0, 0) > 0) {
$izmjena_moguca = 1;
}
}
// TODO: prikaži read-only podatke o studentu
if ($izmjena_moguca == 0) {
zamgerlog("saradnik/izmjena_studenta: nije moguca izmjena (student u{$student} predmet pp{$predmet})", 3);
niceerror("Nemate pravo pristupa ovom studentu!");
return;
}
// Poziv funkcije za izmjenu
if ($_POST['akcija'] == "izmjena" && $izmjena_moguca == 1 && check_csrf_token()) {
$labgrupa = _izmijeni_profil($student, $predmet);
}
// Ispis studenta sa predmeta
if ($_GET['akcija'] == "ispis" && $user_siteadmin) {
ispis_studenta_sa_predmeta($student, $predmet, $ag);
zamgerlog("student ispisan sa predmeta (student u{$student} predmet pp{$predmet})", 4);
// nivo 4: audit
nicemessage("Studen ispisan sa predmeta.");
return;
}
?>
<center><h2>Izmjena ličnih podataka</h2></center>
<?php
echo genform("POST");
?>
//.........这里部分代码省略.........
示例9: common_inbox
function common_inbox()
{
global $userid, $user_student, $user_nastavnik;
// LEGENDA tabele poruke
// Tip:
// 1 - obavjestenja
// 2 - lične poruke
// Opseg:
// 0 - svi korisnici Zamgera
// 1 - svi studenti
// 2 - svi nastavnici
// 3 - svi studenti na studiju (primalac - id studija)
// 4 - svi studenti na godini (primalac - id akademske godine)
// 5 - svi studenti na predmetu (primalac - id predmeta)
// 6 - svi studenti na labgrupi (primalac - id labgrupe)
// 7 - korisnik (primalac - user id)
// 8 - svi studenti na godini studija (primalac - idstudija*10+godina_studija)
// Podaci potrebni kasnije
// Zadnja akademska godina
$q20 = myquery("select id,naziv from akademska_godina where aktuelna=1");
$ag = mysql_result($q20, 0, 0);
// Studij koji student trenutno sluša
$studij = 0;
if ($user_student) {
$q30 = myquery("select ss.studij,ss.semestar,ts.ciklus from student_studij as ss, studij as s, tipstudija as ts where ss.student={$userid} and ss.akademska_godina={$ag} and ss.studij=s.id and s.tipstudija=ts.id order by ss.semestar desc limit 1");
if (mysql_num_rows($q30) > 0) {
$studij = mysql_result($q30, 0, 0);
$semestar = mysql_result($q30, 0, 1);
$ciklus = mysql_result($q30, 0, 2);
$godina_studija = ($semestar + 1) / 2;
}
}
// Pravimo neki okvir za sajt
?>
<center>
<table width="80%" border="0"><tr><td>
<h1>Lične poruke</h1>
<?php
//////////////////////
// Slanje poruke
//////////////////////
if ($_POST['akcija'] == 'send' && check_csrf_token()) {
// Ko je primalac
$primalac = my_escape($_REQUEST['primalac']);
$primalac = preg_replace("/\\(.*?\\)/", "", $primalac);
$q300 = myquery("select id from auth where login='{$primalac}'");
if (mysql_num_rows($q300) < 1) {
niceerror("Nepoznat primalac");
return;
// FIXME
}
$prim_id = mysql_result($q300, 0, 0);
// Samo slanje licnih poruka je dozvoljeno...
$q310 = myquery("insert into poruka set tip=2, opseg=7, primalac={$prim_id}, posiljalac={$userid}, vrijeme=NOW(), ref=" . intval($_REQUEST['ref']) . ", naslov='" . my_escape($_REQUEST['naslov']) . "', tekst='" . my_escape($_REQUEST['tekst']) . "'");
nicemessage("Poruka uspješno poslana");
zamgerlog("poslana poruka za u{$prim_id}", 2);
zamgerlog2("poslana poruka", intval($prim_id));
}
if ($_REQUEST['akcija'] == 'compose' || $_REQUEST['akcija'] == 'odgovor') {
if ($_REQUEST['akcija'] == 'odgovor') {
$poruka = intval($_REQUEST['poruka']);
$q200 = myquery("select posiljalac, naslov, tekst, primalac from poruka where id={$poruka}");
if (mysql_num_rows($q200) < 1) {
niceerror("Poruka ne postoji");
zamgerlog("pokusaj odgovora na nepostojecu poruku {$poruka}", 3);
zamgerlog2("pokusaj odgovora na nepostojecu poruku", $poruka);
return;
}
// Ko je poslao originalnu poruku (tj. kome odgovaramo)
$prim_id = mysql_result($q200, 0, 0);
if ($prim_id == $userid) {
// U slučaju odgovora na poslanu poruku, ponovo šaljemo poruku istoj osobi
$prim_id = mysql_result($q200, 0, 3);
}
$q210 = myquery("select a.login,o.ime,o.prezime from auth as a, osoba as o where a.id=o.id and o.id={$prim_id}");
if (mysql_num_rows($q210) < 1) {
niceerror("Nepoznat pošiljalac");
zamgerlog("poruka {$poruka} ima nepoznatog posiljaoca {$prim_id} (prilikom odgovora na poruku)", 3);
zamgerlog2("poruka ima nepoznatog posiljaoca (prilikom odgovora na poruku)", $poruka, $prim_id);
return;
} else {
$primalac = mysql_result($q210, 0, 0) . " (" . mysql_result($q210, 0, 1) . " " . mysql_result($q210, 0, 2) . ")";
}
// Prepravka naslova i teksta
$naslov = mysql_result($q200, 0, 1);
if (substr($naslov, 0, 3) != "Re:") {
$naslov = "Re: " . $naslov;
}
$tekst = mysql_result($q200, 0, 2);
for ($i = 80; $i < strlen($tekst); $i += 81) {
$k = $i - 80;
while ($k < $i && $k !== false) {
$oldk = $k;
$k = strpos($tekst, " ", $k + 1);
}
if ($oldk == $i - 80) {
$tekst = substr($tekst, 0, $i) . "\n" . substr($tekst, $i);
} else {
//.........这里部分代码省略.........
示例10: saradnik_zadaca
function saradnik_zadaca()
{
global $conf_files_path, $userid, $user_siteadmin;
require "lib/autotest.php";
require "lib/manip.php";
// radi update_komponente
// --------------------
// Standardni ulazni podaci i potrebne varijable
$stud_id = intval($_REQUEST['student']);
$zadaca = intval($_REQUEST['zadaca']);
$zadatak = intval($_REQUEST['zadatak']);
// Prava pristupa
if (!$user_siteadmin) {
// Da li je nastavnik na predmetu?
$q10 = myquery("select count(*) from nastavnik_predmet as np, zadaca as z where z.id={$zadaca} and z.predmet=np.predmet and z.akademska_godina=np.akademska_godina and np.nastavnik={$userid}");
if (mysql_result($q10, 0, 0) < 1) {
zamgerlog("privilegije (student u{$stud_id} zadaca z{$zadaca})", 3);
// nivo 3: greska
niceerror("Nemate pravo izmjene ove zadaće");
return;
}
// Ogranicenja (tabela: ogranicenje) ne provjeravamo jer bi to bilo prekomplikovano,
// a pitanje je da li ima smisla
}
// Podaci o zadaci
$q20 = myquery("select p.geshi, p.ekstenzija, z.attachment, z.naziv, z.zadataka, z.komponenta, z.predmet, z.akademska_godina, z.programskijezik from zadaca as z, programskijezik as p where z.id={$zadaca} and z.programskijezik=p.id");
if (mysql_num_rows($q20) < 1) {
zamgerlog("nepostojeca zadaca {$zadaca}", 3);
niceerror("Neispravna zadaća.");
exit;
}
$jezik = mysql_result($q20, 0, 0);
$ekst = mysql_result($q20, 0, 1);
$attach = mysql_result($q20, 0, 2);
$naziv_zadace = mysql_result($q20, 0, 3);
$komponenta = mysql_result($q20, 0, 5);
$predmet = mysql_result($q20, 0, 6);
$ag = mysql_result($q20, 0, 7);
$id_jezika = mysql_result($q20, 0, 8);
if (mysql_result($q20, 0, 4) < $zadatak || $zadatak < 1) {
zamgerlog("pokusao pristupiti nepostojecem zadatku {$zadatak} u zadaci z{$zadaca}", 3);
niceerror("Neispravan broj zadatka.");
exit;
}
// Podaci o studentu
$q50 = myquery("select ime, prezime from osoba where id={$stud_id}");
if (mysql_num_rows($q50) < 1) {
zamgerlog("nepostojeci student {$stud_id}", 3);
niceerror("Neispravan student.");
exit;
}
$ime_studenta = mysql_result($q50, 0, 0);
$prezime_studenta = mysql_result($q50, 0, 1);
$lokacijazadaca = "{$conf_files_path}/zadace/{$predmet}-{$ag}/{$stud_id}/";
// --------------------
// AKCIJE
// Akcija: Ispis diffa
if ($_GET['akcija'] == "diff") {
$diff_id = intval($_GET['diff_id']);
$q60 = myquery("select diff from zadatakdiff where zadatak={$diff_id}");
$diff = mysql_result($q60, 0, 0);
// Ovo ispod nema potrebe jer je diff već escapovan prilikom
// inserta u bazu (stud_zadaca.php)
// $diff = str_replace("\n\n","\n",$diff);
// $diff = htmlspecialchars($diff);
print "<pre>{$diff}</pre>\n\n";
return;
}
// Akcija: Izvršenje programa
if ($_POST['akcija'] == "izvrsi" && check_csrf_token()) {
// čuvamo poslane podatke u bazi (ako ih nema)
function izvrsi($stdin, $jezik, $lokacijazadaca, $zadaca, $zadatak, $ekst)
{
global $conf_files_path;
// priprema fajlova
$tstdin = str_replace('\\n', "\n", $stdin);
// više nije dvostruki escape
$tstdin = str_replace('\\N', "\n", $tstdin);
$tstdin .= "\n";
$result = file_put_contents("{$conf_files_path}/tmp/zamger-gdb.txt", "run\nbt\n");
if ($result) {
$result = file_put_contents("{$conf_files_path}/tmp/zamger-input.txt", $tstdin);
}
if (!$result) {
zamgerlog("nije uspjelo kreiranje datoteka", 3);
niceerror("Ne mogu kreirati potrebne datoteke u direktoriju /tmp");
return;
}
// kompajliranje - FIXME: nema podrške za jezike?
if ($jezik == "C++") {
$kompajler = "g++";
} else {
$kompajler = "gcc";
}
$the_file = "{$lokacijazadaca}{$zadaca}/{$zadatak}{$ekst}";
$stdout = array();
exec("{$kompajler} -lm -ggdb {$the_file} -o {$conf_files_path}/tmp/zamger.out 2>&1", $stdout, $retvar);
if ($retvar != 0) {
niceerror("Kompajliranje nije uspjelo! Slijedi ispis");
print "<pre>" . join("\n", $stdout) . "</pre>\n\n";
//.........这里部分代码省略.........
示例11: formProcess_bb
function formProcess_bb($option, $thread, $threadID)
{
$errorText = '';
if (!check_csrf_token()) {
zamgerlog("csrf token nije dobar", 3);
zamgerlog2("csrf token nije dobar");
return "Poslani podaci nisu ispravni. Vratite se nazad, ponovo popunite formu i kliknite na dugme Pošalji";
}
if (!in_array($option, array('add', 'edit'))) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
return $errorText;
}
$id = intval($_REQUEST['id']);
if ($option == 'edit' && $id <= 0) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
zamgerlog("pokusao urediti nepostojeci post {$id}, projekat {$projekat} (pp{$predmet})", 3);
zamgerlog2("pokusao urediti nepostojeci post", $id, $projekat);
return $errorText;
}
if ($thread == true && $threadID <= 0) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
zamgerlog("pokusao urediti nepostojeci post {$id}, projekat {$projekat} (pp{$predmet})", 3);
zamgerlog2("pokusao urediti nepostojeci post", $id, $projekat);
return $errorText;
}
//get variables
$naslov = $_REQUEST['naslov'];
$tekst = $_REQUEST['tekst'];
$projekat = intval($_REQUEST['projekat']);
$predmet = intval($_REQUEST['predmet']);
global $userid;
if (empty($naslov) || empty($tekst)) {
$errorText = 'Unesite sva obavezna polja.';
return $errorText;
}
$naslov = trim($naslov);
$tekst = trim($tekst);
if ($option == 'edit') {
$entry = getPost($id);
}
$data = array('naslov' => $naslov, 'tekst' => $tekst, 'osoba' => $userid, 'projekat' => $projekat, 'threadID' => $threadID);
if ($option == 'add') {
if ($thread == false) {
//new thread inserting
if (!insertThread($data)) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
return $errorText;
}
} else {
//inserting post in thread
if (!insertReplyForThread($threadID, $data)) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
return $errorText;
}
}
} else {
if (!updatePost($data, $id)) {
$errorText = 'Doslo je do greske prilikom spasavanja podataka. Molimo kontaktirajte administratora.';
return $errorText;
}
}
//option == edit
return $errorText;
}
示例12: saradnik_student
//.........这里部分代码省略.........
zamgerlog("nastavnik nije na predmetu (pp{$predmet} ag{$ag})", 3);
zamgerlog2("nije saradnik na predmetu", $predmet, $ag);
return;
}
$privilegija = mysql_result($q10, 0, 0);
// Provjera ogranicenja
$q30 = myquery("select o.labgrupa from ogranicenje as o, labgrupa as l, student_labgrupa as sl where o.nastavnik={$userid} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}");
if (mysql_num_rows($q30) > 0) {
$nasao = 0;
while ($r30 = mysql_fetch_row($q30)) {
if ($r30[0] == $labgrupa) {
$nasao = 1;
break;
}
}
if ($nasao == 0) {
biguglyerror("Student je u grupi za koju vam je ograničen pristup");
zamgerlog("ogranicenje na labgrupu g{$labgrupa}", 3);
zamgerlog2("ima ogranicenje na labgrupu", intval($labgrupa));
return;
}
}
}
// ---- AKCIJE
// Akcija: ispis studenta sa predmeta
if ($_GET['akcija'] == "ispis" && $user_siteadmin) {
ispis_studenta_sa_predmeta($student, $predmet, $ag);
zamgerlog("student ispisan sa predmeta (student u{$student} predmet pp{$predmet})", 4);
// nivo 4: audit
zamgerlog2("student ispisan sa predmeta", $student, $predmet, $ag);
nicemessage("Student ispisan sa predmeta.");
return;
}
if ($_POST['akcija'] == "promjena_grupe" && check_csrf_token()) {
$novagrupa = intval($_POST['grupa']);
$staragrupa = 0;
// Da li je student u nekoj grupi i u kojoj?
// (Ne smijemo se osloniti na vrijednost varijable $labgrupa jer
// to može biti virtualna grupa iz koje ga ne smijemo ispisati)
$q53 = myquery("select l.id, l.naziv from student_labgrupa as sl, labgrupa as l where sl.student={$student} and sl.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag} and l.virtualna=0");
if (mysql_num_rows($q53) > 0) {
$staragrupa = mysql_result($q53, 0, 0);
$naziv_stare_grupe = mysql_result($q53, 0, 1);
if ($novagrupa == $staragrupa) {
nicemessage("Student se već nalazi u grupi {$naziv_stare_grupe}!");
print '<a href="?sta=saradnik/student&student=' . $student . '&predmet=' . $predmet . '&ag=' . $ag . '">Nazad</a>' . "\n";
return;
}
ispis_studenta_sa_labgrupe($student, $staragrupa);
nicemessage("Student ispisan iz grupe {$naziv_stare_grupe}. Podaci o prisustvu su izgubljeni.");
}
if ($novagrupa > 0) {
$q55 = myquery("insert into student_labgrupa set student={$student}, labgrupa={$novagrupa}");
$q57 = myquery("select naziv from labgrupa where id={$novagrupa}");
nicemessage("Student upisan u grupu " . mysql_result($q57, 0, 0) . ". Kreirani su default podaci o prisustvu.");
}
// Potrebno je updatovati komponentu za prisustvo jer su podaci sada promijenjeni
$q4 = myquery("select k.id from tippredmeta_komponenta as tpk,komponenta as k, akademska_godina_predmet as agp where agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and agp.akademska_godina={$ag} and tpk.komponenta=k.id and k.tipkomponente=3");
while ($r4 = mysql_fetch_row($q4)) {
update_komponente($student, $ponudakursa, $r4[0]);
}
// Pametni logging
if ($staragrupa > 0 && $novagrupa > 0) {
zamgerlog("student u{$student} prebacen iz grupe g{$staragrupa} u g{$novagrupa}", 2);
// 2 = edit
zamgerlog2("promijenjena grupa studenta", $student, $novagrupa, 0, $staragrupa);
示例13: common_zavrsniStrane
//.........这里部分代码省略.........
<?php
}
//foreach thread
?>
</div><!--threadList-->
<?php
$brstranica = ceil($broj_tema / $tema_po_stranici);
if ($brstranica > 0) {
echo "<span class=\"newsPages\">";
if ($stranica > 1) {
$str = $stranica - 1;
$prev = " <a href=\"{$linkPrefix}&stranica={$str}\">[Prethodna]</a> ";
$prva = " <a href=\"{$linkPrefix}&stranica=1\">[Prva]</a> ";
}
if ($stranica < $brstranica) {
$str = $stranica + 1;
$next = " <a href=\"{$linkPrefix}&stranica={$str}\">[Sljedeća]</a> ";
$zadnja = " <a href=\"{$linkPrefix}&stranica={$str}\">[Zadnja]</a> ";
}
echo $prva . $prev . " Strana <strong>{$stranica}</strong> od ukupno <strong>{$brstranica}</strong> " . $next . $zadnja;
echo "</span>";
//newsPages span
}
// Kraj foruma
?>
</td></tr></table></center>
<?php
}
// if (!isset($subakcija))
// SUBAKCIJE
// Akcija dodavanje fajla
if ($subakcija == 'dodaj_fajl') {
if (isset($_REQUEST['submit'])) {
if (!check_csrf_token()) {
zamgerlog("csrf token nije dobar", 3);
zamgerlog2("csrf token nije dobar");
niceerror("Poslani podaci nisu ispravni. Vratite se nazad, ponovo popunite formu i kliknite na dugme Pošalji");
return;
}
// ulazni parametri
$filename = $_FILES['filename'];
$revizija = 1;
$file = '';
$errorText = "";
$zavrsni = intval($_REQUEST['zavrsni']);
$predmet = intval($_REQUEST['predmet']);
if ($filename['error'] == 4) {
$errorText = 'Unesite sva obavezna polja.';
} else {
if ($filename['error'] == 1 || $filename['error'] == 2) {
$errorText .= 'Pokušavate poslati fajl koji je veci od dozvoljene velicine. Probajte sa manjim fajlom.<br />';
} else {
if ($filename['error'] > 0) {
$errorText .= 'Vaš fajl nije poslan korektno. Molimo pokušajte ponovo.<br />';
} else {
$uploadFile = trim($filename['name']);
$uploadDir = $lokacijafajlova . $uploadFile . "/v{$revizija}/";
if (!file_exists($uploadDir)) {
mkdir($uploadDir, 0777, true);
}
if (move_uploaded_file($filename['tmp_name'], $uploadDir . $uploadFile)) {
chmod($uploadDir . $uploadFile, 0777);
} else {
$errorText .= 'Desila se greška prilikom uploada fajla. Molimo kontaktirajte administratora.<br />AA';
}
}
示例14: nastavnik_zadace
function nastavnik_zadace()
{
global $userid, $user_siteadmin, $conf_files_path;
require "lib/manip.php";
require "lib/autotest.php";
global $mass_rezultat;
// za masovni unos studenata u grupe
global $_lv_;
// radi autogenerisanih formi
// Parametri potrebni za Moodle integraciju
global $conf_moodle, $conf_moodle_url, $conf_moodle_db, $conf_moodle_prefix, $conf_moodle_reuse_connection, $conf_moodle_dbhost, $conf_moodle_dbuser, $conf_moodle_dbpass;
global $__lv_connection, $conf_use_mysql_utf8;
// Parametri
$predmet = intval($_REQUEST['predmet']);
$ag = intval($_REQUEST['ag']);
// Naziv predmeta
$q5 = myquery("select naziv from predmet where id={$predmet}");
if (mysql_num_rows($q5) < 1) {
biguglyerror("Nepoznat predmet");
zamgerlog("ilegalan predmet {$predmet}", 3);
//nivo 3: greska
zamgerlog2("nepoznat predmet", $predmet);
return;
}
$predmet_naziv = mysql_result($q5, 0, 0);
// Da li korisnik ima pravo ući u modul?
if (!$user_siteadmin) {
$q10 = myquery("select nivo_pristupa from nastavnik_predmet where nastavnik={$userid} and predmet={$predmet} and akademska_godina={$ag}");
if (mysql_num_rows($q10) < 1 || mysql_result($q10, 0, 0) == "asistent") {
zamgerlog("nastavnik/ispiti privilegije (predmet pp{$predmet})", 3);
zamgerlog2("nije nastavnik na predmetu", $predmet, $ag);
biguglyerror("Nemate pravo pristupa ovoj opciji");
return;
}
}
// Dozvoljene ekstenzije
$q13 = myquery("select naziv from ekstenzije");
$dozvoljene_ekstenzije = array();
while ($r13 = mysql_fetch_row($q13)) {
array_push($dozvoljene_ekstenzije, $r13[0]);
}
// Da li predmet posjeduje komponente za zadaće?
$q15 = myquery("select k.id, k.naziv from komponenta as k, tippredmeta_komponenta as tpk, akademska_godina_predmet as agp where agp.akademska_godina={$ag} and agp.predmet={$predmet} and agp.tippredmeta=tpk.tippredmeta and tpk.komponenta=k.id and k.tipkomponente=4");
if (mysql_num_rows($q15) < 1) {
zamgerlog("ne postoji komponenta za zadace na predmetu pp{$predmet} ag{$ag}", 3);
zamgerlog2("ne postoji komponenta za zadace", $predmet, $ag);
niceerror("U sistemu bodovanja za ovaj predmet nije definisana nijedna komponenta zadaće.");
print "<p>Da biste nastavili, promijenite <a href=\"?sta=nastavnik/tip?predmet={$predmet}&ag={$ag}\">sistem bodovanja</a> za ovaj predmet.</p>\n";
return;
}
if (mysql_num_rows($q15) > 1) {
niceerror("U sistemu bodovanja za ovaj predmet je definisano više od jedne komponente za zadaće.");
print "<p>Ovaj modul trenutno podržava samo jednu komponentu zadaća. Ako imate potrebu za rad sa više od jedne komponente zadaća istovremeno, kontaktirajte administratora Zamgera. U suprotnom, provjerite <a href=\"?sta=nastavnik/tip?predmet={$predmet}&ag={$ag}\">sistem bodovanja</a> za ovaj predmet za slučaj da je ova situacija posljedica greške.</p>\n";
print "<p>Koristićemo komponentu označenu nazivom: <b>" . mysql_result($q15, 0, 1) . "</b></p>";
}
$komponenta_za_zadace = mysql_result($q15, 0, 0);
?>
<p> </p>
<p><h3><?php
echo $predmet_naziv;
?>
- Zadaće</h3></p>
<?php
# Masovni unos zadaća
if ($_POST['akcija'] == "massinput" && strlen($_POST['nazad']) < 1 && check_csrf_token()) {
if ($_POST['fakatradi'] != 1) {
$ispis = 1;
} else {
$ispis = 0;
}
// Provjera ostalih parametara
$zadaca = intval($_REQUEST['_lv_column_zadaca']);
$zadatak = intval($_REQUEST['zadatak']);
$q20 = myquery("select naziv,zadataka,bodova,komponenta,predmet,akademska_godina from zadaca where id={$zadaca}");
if (mysql_num_rows($q20) < 1) {
zamgerlog("nepostojeca zadaca {$zadaca}", 3);
// 3 = greška
zamgerlog2("nepostojeca zadaca", $zadaca);
niceerror("Morate najprije kreirati zadaću");
print "\n<p>Koristite formular "Kreiranje zadaće" koji se nalazi na prethodnoj stranici. Ukoliko ne vidite nijednu zadaću na spisku "Postojeće zadaće", koristite dugme Refresh vašeg web preglednika.</p>\n";
return;
}
if (mysql_result($q20, 0, 1) < $zadatak) {
zamgerlog("zadaca {$zadaca} nema {$zadatak} zadataka", 3);
zamgerlog2("zadaca nema toliko zadataka", $zadaca, $zadatak);
niceerror("Zadaća \"" . mysql_result($q20, 0, 0) . "\" nema {$zadatak} zadataka.");
return;
}
$maxbodova = mysql_result($q20, 0, 2);
$komponenta = mysql_result($q20, 0, 3);
// Provjera spoofanja zadaće
if ($predmet != mysql_result($q20, 0, 4) || $ag != mysql_result($q20, 0, 5)) {
zamgerlog("zadaca z{$zadaca} nije u predmetu pp{$predmet}", 3);
zamgerlog2("id zadace i predmeta se ne poklapaju", $zadaca, $predmet, $ag);
niceerror("Pogresan ID zadace!");
return;
}
//.........这里部分代码省略.........
示例15: saradnik_komentar
function saradnik_komentar()
{
global $userid, $user_siteadmin;
?>
<body topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" bgcolor="#FFFFFF">
<?php
$stud_id = intval($_REQUEST['student']);
$labgrupa = intval($_REQUEST['labgrupa']);
// Da li neko spoofa predmet/studenta?
$q10 = myquery("select sl.labgrupa from student_labgrupa as sl where sl.student={$stud_id} and sl.labgrupa={$labgrupa}");
if (mysql_num_rows($q10) < 1) {
zamgerlog("student u{$stud_id} nije u labgrupi g{$labgrupa}", 3);
zamgerlog2("id studenta i labgrupe ne odgovaraju", $stud_id, $labgrupa);
niceerror("Nemate pravo pristupa ovom studentu!");
return;
}
// Prava pristupa i odredjivanje predmeta
if ($user_siteadmin) {
$q20 = myquery("select predmet, akademska_godina from labgrupa where id={$labgrupa}");
if (mysql_num_rows($q20) < 1) {
zamgerlog("nepoznata labgrupa (labgrupa {$labgrupa} predmet pp{$predmet})", 3);
zamgerlog2("nepoznata labgrupa", $labgrupa);
niceerror("Nepoznata grupa {$labgrupa}");
return;
}
} else {
$q20 = myquery("select np.predmet, np.akademska_godina from labgrupa as l, nastavnik_predmet as np where l.id={$labgrupa} and l.predmet=np.predmet and l.akademska_godina=np.akademska_godina and np.nastavnik={$userid}");
if (mysql_num_rows($q20) < 1) {
zamgerlog("nastavnik nije na predmetu (labgrupa g{$labgrupa})", 3);
zamgerlog2("nije saradnik na predmetu", $predmet, $ag);
niceerror("Nemate pravo pristupa ovom studentu!");
return;
}
}
$predmet = mysql_result($q20, 0, 0);
$ag = mysql_result($q20, 0, 1);
// Limit...
$q30 = myquery("select o.labgrupa from ogranicenje as o, labgrupa as l where o.nastavnik={$userid} and o.labgrupa=l.id and l.predmet={$predmet} and l.akademska_godina={$ag}");
if (mysql_num_rows($q30) > 0) {
$nasao = 0;
while ($r30 = mysql_fetch_row($q30)) {
if ($r30[0] == $labgrupa) {
$nasao = 1;
break;
}
}
if ($nasao == 0) {
zamgerlog("ogranicenje (labgrupa g{$labgrupa} predmet pp{$predmet})", 3);
zamgerlog2("ima ogranicenje na labgrupu", $labgrupa);
niceerror("Nemate pravo pristupa ovom studentu!");
return;
}
}
$q40 = myquery("select ime, prezime, brindexa from osoba where id={$stud_id}");
if ($r40 = mysql_fetch_row($q40)) {
print "<h3>{$r40['0']} {$r40['1']} ({$r40['2']})</h3>\n";
} else {
zamgerlog("nepostojeci student {$stud_id}", 3);
zamgerlog2("nepostojeci student", $stud_id);
niceerror("Nemate pravo pristupa ovom studentu!");
return;
}
// Odredjujem ponudukursa koju tabela komentar za sada jos uvijek koristi
$q45 = myquery("select pk.id from ponudakursa as pk, student_predmet as sp where sp.student={$stud_id} and sp.predmet=pk.id and pk.predmet={$predmet} and pk.akademska_godina={$ag}");
$ponudakursa = mysql_result($q45, 0, 0);
// ------------------------
// Akcije
// ------------------------
if ($_POST['akcija'] == "dodaj" && check_csrf_token()) {
list($h, $m, $s) = explode(":", $_POST['vrijeme']);
$datum = date("Y-m-d H:i:s", mktime($h, $m, $s, $_POST['month'], $_POST['day'], $_POST['year']));
$komentar = my_escape($_POST['komentar']);
$q50 = myquery("insert into komentar set student={$stud_id}, nastavnik={$userid}, labgrupa={$labgrupa}, predmet={$ponudakursa}, datum='{$datum}', komentar='{$komentar}'");
zamgerlog("dodan komentar na studenta u{$stud_id} labgrupa g{$labgrupa}", 2);
zamgerlog2("dodan komentar na studenta", $stud_id, $labgrupa);
}
if ($_GET['akcija'] == "obrisi") {
$id = intval($_GET['id']);
$q60 = myquery("delete from komentar where id={$id}");
zamgerlog("obrisan komentar {$id}", 2);
zamgerlog2("obrisan komentar", $id);
}
// Spisak komentara
$q70 = myquery("select k.id, a.ime, a.prezime, UNIX_TIMESTAMP(k.datum), k.komentar from komentar as k, osoba as a where k.student={$stud_id} and k.labgrupa={$labgrupa} and k.nastavnik=a.id");
if (mysql_num_rows($q70) < 1) {
print "<ul><li>Nijedan komentar nije unesen.</li></ul>\n";
}
while ($r70 = mysql_fetch_row($q70)) {
$datum = date("d. m. Y. H:i:s", $r70[3]);
print "<p><b>{$datum} ({$r70['1']} {$r70['2']}):</b> (<a href=\"" . genuri() . "&akcija=obrisi&id={$r70['0']}\">Obriši</a>)<br/>{$r70['4']}<br/></p>\n";
}
// Dodaj komentar
?>
<p><hr></p>
<p><b>Dodajte komentar:</b><br/>
<?php
echo genform("POST");
?>
<input type="hidden" name="akcija" value="dodaj">
Trenutni datum i vrijeme:<br/>
//.........这里部分代码省略.........