• Nenhum resultado encontrado

Δημιουργία ιστοχώρου υποστήριξης του μαθήματος "Πολυμέσα στη Διαχείριση Πληροφοριών" με χρήση PHP, MySQL και HTML.

N/A
N/A
Protected

Academic year: 2023

Share "Δημιουργία ιστοχώρου υποστήριξης του μαθήματος "Πολυμέσα στη Διαχείριση Πληροφοριών" με χρήση PHP, MySQL και HTML."

Copied!
21
0
0

Texto

(1)

ΤΜΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΠΛΗΡΟΦΟΡΙΩΝ

Θέμα : «Δημιουργία ιστοχώρου υποστήριξης του μαθήματος

¨Πολυμέσα στη Διαχείριση Πληροφοριών¨ με χρήση PHP, MySQL και HTML.»

Σπουδαστής:

ΙΩΑΝΝΙΔΗΣ Η. ΓΕΩΡΓΙΟΣ Α.Μ. 1068 Εισηγητής:

ΣΤΟΥΠΑ ΚΩΝΣΤΑΝΤΙΝΑ

ΟΚΤΩΒΡΙΟΣ 2007

(2)

Θέμα : «Δημιουργία ιστοχώρου υποστήριξης του μαθήματος

¨Πολυμέσα στη Διαχείριση Πληροφοριών¨ με χρήση PHP, MySQL και HTML.»

1. Εισαγωγή

Ο ιστοχώρος αυτός αναπτύχθηκε στα πλαίσια Πτυχιακής Εργασίας και σκοπό έχει την διευκόλυνση των χρηστών, που μπορεί να είναι καθηγητές ή σπουδαστές του μαθήματος «Πολυμέσα στη Διαχείριση Πληροφοριών».

Ειδικότερα, παρέχει στους καθηγητές πέντε επιλογές. Τη δυνατότητα ανεβάσματος εκπαιδευτικού υλικού, διαγωνισμάτων, την καταχώριση απουσιών, βαθμολογιών και την προβολή των ομάδων εργαστηρίων. Στους δε φοιτητές την δυνατότητα κατεβάσματος του εκπαιδευτικού υλικού, διεξαγωγή on-line διαγωνισμάτων, προβολή των απουσιών και των βαθμολογιών τους καθώς και δήλωση συμμετοχής στην επιθυμητή ομάδα εργαστηρίου.

Για τη δημιουργία του χρησιμοποιήθηκαν η HTML, η php και η mySQL.

Όλα αυτά με το easyPHP1-8, που περιλαμβάνει την php, την mySQL και τον Apache server.

Η εφαρμογή χωρίζεται σε δύο τμήματα. Το ένα είναι το περιβάλλον διεπαφής, σχεδιασμένο με HTML, που επιτρέπει στο χρήστη να επικοινωνεί με τον υπολογιστή. Ο κώδικας php, κάνει την εφαρμογή να λειτουργεί και την συνδέει με τη βάση δεδομένων. Το δεύτερο τμήμα, είναι η βάση δεδομένων στην οποία καταχωρούνται όλα τα στοιχεία που είναι απαραίτητα για τη λειτουργία της εφαρμογής, καθώς και τα δεδομένα που εισάγονται από τον εκάστοτε χρήστη.

2.1 Βάση δεδομένων ptyxiaki

Η βάση δεδομένων που συνδέεται με την εφαρμογή, είναι σχεδιασμένη με την mySQL και ονομάζεται ptyxiaki. Περιλαμβάνει έξι πίνακες με τα παρακάτω ονόματα: diagonismata, login, omades, parousies, users, vathmoi.

2.1.1 Ο πίνακας diagonismata

(3)

Ο πίνακας diagonismata περιέχει δεκατέσσερα πεδία. Πρώτο πεδίο το id, που δέχεται δεδομένα ακέραιας μορφής και έως τρεις χαρακτήρες.

Χαρακτηρίζεται ως πρωτεύον κλειδί, πρέπει να έχει οπωσδήποτε μία τιμή και η τιμή αυτή ξεκινάει από το 0 και αυξάνεται κατά ένα σε κάθε καινούρια εγγραφή. Το u_id και το id_mathimatos είναι επίσης ακέραιας μορφής και μήκους 3 χαρακτήρων. Αντιστοιχούν σε έναν μοναδικό αριθμό που χαρακτηρίζει κάποιον χρήστη ή κάποιο μάθημα. To id_mathimatos δύναται να μην έχει καμία τιμή όπως και τα apantisi1 έως apantisi10, τα οποία είναι ένας χαρακτήρας από τους a, b, c. Είναι οι σωστές απαντήσεις του διαγωνίσματος που αντιπαραβάλλονται με τις απαντήσεις που δίνει ο σπουδαστής στα on- line διαγωνίσματά του. Το τελευταίο πεδίο με όνομα type χαρακτηρίζει το διαγώνισμα ως πρόοδο αν έχει την τιμή 0 και ως τελική εξέταση αν έχει την τιμή 1. Μπορεί να πάρει μικρούς μονοψήφιους ακέραιους ως τιμή.

2.1.2 Ο πίνακας login

Τρία πεδία αποτελούν τον πίνακα αυτόν. Το u_id μπορεί να είναι τριψήφιος αριθμός. Το username ένα αλφαριθμητικό μήκους έως 10 χαρακτήρων και το password ένας επταψήφιος αριθμός. Με τα στοιχεία αυτού του πίνακα πρέπει να συμφωνούν τα στοιχεία που δίνει ο χρήστης ώστε να του επιτραπεί η είσοδος στην εφαρμογή.

2.1.3 Ο πίνακας omades

(4)

Στον πίνακα ομάδες, το πρώτο πεδίο είναι ακέραιου τύπου και το μήκος του μπορεί να φτάσει τους πέντε χαρακτήρες. Πρέπει οπωσδήποτε να έχει μία τιμή γιατί έχει οριστεί ως το πρωτεύον κλειδί του πίνακα. Στο δεύτερο πεδίο, ακέραιου τύπου και μήκους δύο χαρακτήρων, καταχωρείται η ομάδα στην οποία θέλει να συμμετέχει ο σπουδαστής με το ΑΕΜ του πρώτου πεδίου.

Εκτελώντας τον κώδικα:

$result=@mysql_query("select omades.aem, users.surname, users.name, omades.omada from omades, users where omada=$omada and omades.aem=users.aem");

while ( $omades = mysql_fetch_array($result) ){

echo ("<tr><td>".$omades["aem"] ."<td> ". $omades["surname"]

." <td>". $omades["name"]. "<td>" . $omades["omada"]."<tr>");

}

εμφανίζονται στην οθόνη όλες οι ομάδες με τα μέλη που δήλωσαν συμμετοχή.

2.1.4 Ο πίνακας parousies

Στον τέταρτο πίνακα με τρία πεδία ,καταχωρούνται οι παρουσίες και απουσίες των σπουδαστών. Στο πρώτο πεδίο έχουμε το ΑΕΜ του σπουδαστή, στο δεύτερο την παρουσία ή απουσία που αντιστοιχεί στο 1 ή 0 και στο τρίτο την ημερομηνία του μαθήματος που είναι της μορφής YYYY-MM- DD.

2.1.5 Ο πίνακας users

(5)

Από έξι πεδία αποτελείται ο πίνακας users. Το id που είναι το πρωτεύων κλειδί και παίρνει αυτόματα τιμή, την τιμή της προηγούμενης εγγραφής αυξημένης κατά ένα. Το aem και το id_kathigiti που χαρακτηρίζουν τον κάθε χρήστη, σπουδαστή ή καθηγητή. Το ονόματα και επώνυμα των χρηστών, καταχωρούνται στα πεδία name και surname. Εάν ο χρήστης είναι καθηγητής η τιμή του type είναι 0 και στην αντίθετη περίπτωση είναι 1.

2.1.6 Ο πίνακας vathmoi

Για την καταχώριση και προβολή των βαθμολογιών μας εξυπηρετεί ο πίνακας vathmoi. Στο πρώτο πεδίο καταχωρείται το ΑΕΜ του σπουδαστή που αφορά η βαθμολογία. Στο δεύτερο πεδίο, δεκαδικού τύπου, ο βαθμός της προόδου. Ο βαθμός της τελικής εξέτασης, καταχωρείται στο πεδίο με όνομα vathmos_telikis. Από τα δύο προηγούμενα, υπολογίζεται ο τελικός βαθμός του σπουδαστή και καταχωρείται στο πεδίο synolo.

3. Περιβάλλον διεπαφής 3.1 Αρχική σελίδα

(6)

Στην αρχική σελίδα εμφανίζεται ένα σχόλιο καλωσορίσματος του χρήστη και μία σύντομη περιγραφή του τρόπου χρήσης της εφαρμογής. Δύο πεδία κειμένου δέχονται τα στοιχεία του χρήστη και ένα κουμπί υποβολής προχωράει στην επόμενη σελίδα που καλωσορίζει το χρήστη με το ονοματεπώνυμό του. Η σελίδα είναι ανάλογη με την ιδιότητά του. Ο κώδικας που κάνει το διαχωρισμό της ιδιότητας και ελέγχει την ορθότητα του ονόματος χρήστη και του κωδικού πρόσβασης είναι ο εξής:

<html><head><title>Επιλογή Εργασίας</title></head>

<body bgcolor="#89ca9d"><?php

$username=$_POST['username'];

$password=$_POST['password'];

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

if (! @mysql_select_db("ptyxiaki") ) {

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>" );

exit();

}

$result = @mysql_query("SELECT type FROM users, login where login.u_id=users.id and login.username='$username' and

login.password='$password'");

if (!$result) {

echo("<p>Error performing query: " . mysql_error() . "</p>");

exit();

}

while ( $row = mysql_fetch_array($result) ) { if($row["type"]==0){

?>

<form action="epilogi_kathigiti.php" method="post">

<table border="0" width="100%" height="80%">

<?php

$result=@mysql_query("select name, surname ,users.id from users, login where login.u_id=users.id and login.username='$username' and login.password='$password'");

while ( $row = mysql_fetch_array($result) ) {//anoigei 3 echo("<tr><td><p>Καλώς ήρθες " . $row["name"] ." ".

$row["surname"] ."</p>");

$id=$row["id"];

}?>

<td align="right"><?php echo(date("l, F dS Y."));?>

<tr><td><br><tr><td><bR>

<tr><td colspan="2" align="center"><h3>Επιλογή εργασίας</h>

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="diagonisma" checked>Ανέβασμα διαγωνίσματος

(7)

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="yliko">Ανέβασμα εκπαιδευτικού υλικού

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="apousies">Καταχώριση απουσιών

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="vathmologia">Εισαγωγή Βαθμολογίας

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="omades">Προβολή ομάδων εργαστηρίων

<input type="hidden" name="id" value="<?echo $id?>">

<tr><td colspan="2" align="center"><input type="submit"

value="Επιλογή">

</table></form>

<?

}

if($row["type"]==1){

?>

<form action="epilogi_fititi.php" method="post">

<table border="0" width="100%" height="80%">

<?php

$result=@mysql_query("select name, surname, users.aem, users.id from users, login where login.u_id=users.id and

login.username='$username' and login.password='$password'");

while ( $row = mysql_fetch_array($result) ) {

echo("<tr><td><p>Καλώς ήρθες " . $row["name"] ." ".

$row["surname"] . "</p>");

$aem=$row["aem"];

}?>

<td align="right"><?php echo(date("l, F dS Y."));?>

<tr><td><br><tr><td><bR>

<tr><td colspan="2" align="center"><h3>Επιλογή εργασίας</h>

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="diagonisma" checked>Διεξαγωγή διαγωνίσματος

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="yliko">Κατέβασμα εκπαιδευτικού υλικού

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="apousies">Εμφάνιση απουσιών

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="vathmologia">Εμφάνιση Βαθμολογίας

<tr><td><br><td align="left"><input type="radio"

name="epilogi_ergasias" value="omades">Δήλωση ομάδων εργαστηρίων

<input type="hidden" name="aem" value="<?echo $aem?>">

<tr><td colspan="2" align="center"><input type="submit"

value="Επιλογή">

</table></form>

<?

}

(8)

?>

</body></html>

Στις μεταβλητές $username και $password, εκχωρούνται οι τιμές που δίνει ο χρήστης στα πεδία κειμένου. Με την πρόταση «$dbcnx =

@mysql_connect("127.0.0.1", "root", "");» και τον έλεγχο της τιμής του

$dbcnx, διαπιστώνεται αν έχει γίνει η σύνδεση με τη βάση δεδομένων. Ο έλεγχος της ιδιότητας του χρήστη γίνεται με την πρόταση "SELECT type FROM users, login where login.u_id=users.id and login.username='$username' and login.password='$password'". Εάν η μεταβλητή type έχει την τιμή 0, τότε ο χρήστης είναι καθηγητής και ανοίγει η εξής σελίδα:

Στην περίπτωση που η τιμή της type είναι 1 και άρα ο χρήστης φοιτητής, τότε η σελίδα έχει την μορφή:

Και στις δύο σελίδες –για τους καθηγητές και για τους φοιτητές- χρησιμοποιούνται μία ομάδα από ραδιοπλήκτρα και ένα κουμπί υποβολής. Σε κάθε ραδιοπλήκτρο, συνδέεται μία από τις πέντε επιλογές που δίνονται στον χρήστη και το κουμπί υποβολής παραπέμπει στην σελίδα που αντιστοιχεί στην επιλογή.

(9)

3.2 Επιλογές του καθηγητή 3.2.1 Ανέβασμα διαγωνίσματος

Η πρώτη επιλογή για την ιδιότητα του καθηγητή, είναι το ανέβασμα των διαγωνισμάτων. Πατώντας το κουμπί υποβολής, στην οθόνη εμφανίζεται μία φόρμα που βοηθάει το χρήστη να αναζητήσει το αρχείο που επιθυμεί και να το αποστείλει σε μια προκαθορισμένη θέση. Η θέση αυτή προσδιορίζεται αλλάζοντας στην πρόταση $uploaddir = 'c:/program files/easyphp1-8/www/';, το τμήμα που περιέχεται εντός των εισαγωγικών. Το διαγώνισμα είναι γραμμένο σε HTML και έχει δέκα ερωτήσεις με τρεις πιθανές απαντήσεις στην κάθε μία. Η απάντηση που θεωρεί σωστή ο χρήστης, επιλέγεται τσεκάροντας το αντίστοιχο ραδιοπλήκτρο. Εκτός από το αρχείο που θα ανεβάσει, ο χρήστης δίνει τον κωδικό που το χαρακτηρίζει και τις σωστές απαντήσεις στις ερωτήσεις του διαγωνίσματος. Πατώντας το κουμπί υποβολής ¨Αποστολή του Αρχείου¨, το αρχείο μεταφέρεται και οι απαντήσεις μαζί με τον κωδικό του διαγωνίσματος καταχωρούνται στον πίνακα diagonismata της βάσης ptyxiaki.

Μαζί με αυτά καταχωρούνται το id του χρήστη, το id του μαθήματος και ο τύπος του διαγωνίσματος. Εάν η τιμή του τύπου είναι 0, τότε το διαγώνισμα είναι προόδου και αν είναι 1, τελική εξέταση.

Ο κώδικας της φόρμας είναι ο :

<HTML>

<HEAD>

<TITLE> Ανέβασμα Εκπαιδευτικού υλικού </TITLE>

</HEAD>

<BODY bgcolor="#89ca9d">

<?php

$uploaddir = 'c:/program files/easyphp1-8/www/';

$id_math=$_POST['kodikos_diagonismatos'];

$ap1=$_POST['apantisi1'];

$ap2=$_POST['apantisi2'];

$ap3=$_POST['apantisi3'];

$ap4=$_POST['apantisi4'];

$ap5=$_POST['apantisi5'];

$ap6=$_POST['apantisi6'];

$ap7=$_POST['apantisi7'];

$ap8=$_POST['apantisi8'];

$ap9=$_POST['apantisi9'];

$ap10=$_POST['apantisi10'];

$u_id=$_POST['id'];

print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .

$_FILES['userfile']['name'])) {

print "Το αρχείο είναι εγκυρο και μεταφέρθηκε επιτυχώς.\n";

} else {

print "Πιθανά η μεταφορά του αρχείου διεκόπη!\n";

(10)

}

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>"

);

exit();

}

$sql = "INSERT INTO diagonismata SET id_mathimatos='$id_math', u_id='$u_id', apantisi1='$ap1', apantisi2='$ap2', apantisi3='$ap3',

apantisi4='$ap4', apantisi5='$ap5', apantisi6='$ap6', apantisi7='$ap7', apantisi8='$ap8', apantisi9='$ap9', apantisi10='$ap10'";

if (@mysql_query($sql)) {

echo("<p>Η εγγραφή προστέθηκε επιτυχώς στη βάση δεδομένων.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " . mysql_error() . "</p>");

}

if ($ap1=" "||$ap2=" "||$ap3=" "||$ap4=" "||$ap5=" "||$ap6=" "||$ap7="

"||$ap8=" "||$ap9=" "||$ap10=" "){

echo("<P>Δεν έχουν συμπληρωθεί όλα τα πεδία!<p>");

}

?>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

</BODY>

</HTML>

και ο κώδικας που χρησιμοποιείται για την αποθήκευση του αρχείου και των δεδομένων στη βάση ο :

<HTML>

<HEAD>

<TITLE> Ανέβασμα Εκπαιδευτικού υλικού </TITLE>

</HEAD>

<BODY bgcolor="#89ca9d">

<?php

$uploaddir = 'c:/program files/easyphp1-8/www/';

$id_math=$_POST['kodikos_diagonismatos'];

$ap1=$_POST['apantisi1'];

$ap2=$_POST['apantisi2'];

$ap3=$_POST['apantisi3'];

$ap4=$_POST['apantisi4'];

(11)

$ap5=$_POST['apantisi5'];

$ap6=$_POST['apantisi6'];

$ap7=$_POST['apantisi7'];

$ap8=$_POST['apantisi8'];

$ap9=$_POST['apantisi9'];

$ap10=$_POST['apantisi10'];

$u_id=$_POST['id'];

print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .

$_FILES['userfile']['name'])) {

print "Το αρχείο είναι εγκυρο και μεταφέρθηκε επιτυχώς.\n";

} else {

print "Πιθανά η μεταφορά του αρχείου διεκόπη!\n";

}

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>"

);

exit();

}

$sql = "INSERT INTO diagonismata SET id_mathimatos='$id_math', u_id='$u_id', apantisi1='$ap1', apantisi2='$ap2', apantisi3='$ap3',

apantisi4='$ap4', apantisi5='$ap5', apantisi6='$ap6', apantisi7='$ap7', apantisi8='$ap8', apantisi9='$ap9', apantisi10='$ap10'";

if (@mysql_query($sql)) {

echo("<p>Η εγγραφή προστέθηκε επιτυχώς στη βάση δεδομένων.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " . mysql_error() . "</p>");

}

if ($ap1=" "||$ap2=" "||$ap3=" "||$ap4=" "||$ap5=" "||$ap6=" "||$ap7="

"||$ap8=" "||$ap9=" "||$ap10=" "){

echo("<P>Δεν έχουν συμπληρωθεί όλα τα πεδία!<p>");

}

?>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

</BODY>

(12)

3.2.2 Ανέβασμα εκπαιδευτικού υλικού

Δεύτερη επιλογή, το ανέβασμα εκπαιδευτικού υλικού. Ο χρήστης βρίσκει το αρχείο που θέλει να ανεβάσει με τη βοήθεια μιας φόρμας και το αποστέλλει, ακολουθώντας συγκεκριμένη διαδρομή. Η διαδρομή καθορίζεται στο αρχείο uploadaction1.php όπως παρακάτω:

<HTML>

<HEAD>

<TITLE> Ανέβασμα Εκπαιδευτικού υλικού </TITLE>

</HEAD>

<BODY bgcolor="#89ca9d">

<?php

$uploaddir = 'c:/program files/easyphp1-8/www/';

print "<pre>";

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .

$_FILES['userfile']['name'])) {

print "Το αρχείο είναι εγκυρο και μεταφέρθηκε επιτυχώς.\n";

} else {

print "Πιθανά η μεταφορά του αρχείου διεκόπη!\n";

}

?>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

</BODY>

</HTML>

3.2.3 Καταχώριση απουσιών

Η εισαγωγή των απουσιών μέσω της εφαρμογής απαιτεί μόνο την επιλογή του ραδιοπλήκτρου που αντιστοιχεί στην παρουσία ή απουσία του φοιτητή, καθώς η ημερομηνία εκχωρείται αυτόματα και με την επιλογή της εκάστοτε ομάδας, έχουμε και τα ονόματα των φοιτητών που ανήκουν σε αυτή. Τα ονόματα των σπουδαστών της κάθε ομάδας και η επιλογή παρουσίας ή απουσίας εμφανίζονται με την εκτέλεση του κώδικα

<html>

<head><title>Παρουσιολόγιο</title></head>

<body bgcolor="#89ca9d">

<?php

$omada=$_POST['omada'];

?>

<form action="eisagogi_apousion.php" method="post">

<table border="1" align="center">

<tr><td>Ημερομηνία<td><input type="text"

name="date" value="<? print(Date("y/m/j")); ?>">

<tr><td>Ονοματεπώνυμο<td>Παρουσία

(13)

<?

$dbcnx =

@mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database

if (! @mysql_select_db("ptyxiaki") ) { echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>" );

exit();

}

$result=@mysql_query("select users.name, users.surname, users.aem, omades.aem, omades.omada from users, omades where omades.omada=$omada and

omades.aem=users.aem");

$j=0;

$i=30;

while ( $users = mysql_fetch_array($result) ) {

$aem=$users["aem"];

echo("<td>" . $users["name"]

." ". $users["surname"]."<td align='right'><input type='radio' name=".$j."

checked value='1'>Π<input type='radio' name=".$j." value='0'>Α<tr>");

echo("<input value=".$aem."

name=".$i." type='hidden'>");

$j++;

$i++;

}

$count1=$j;

$count2=$i;

?>

<input type="hidden" name="count1"

value="<?echo $count1?>">

<input type="hidden" name="count2"

value="<?echo $count2?>">

<tr><td colspan="2" align="center"><input type="submit" name="kataxorisi" value="Καταχώριση" align="center">

</table>

</form>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή

" ONCLICK="history.go(-1)"></FORM>

</body>

</html>

(14)

<?php

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>" );

exit();

}

$date=$_POST['date'];

$count1=$_POST['count1'];

$count2=$_POST['count2'];

$i=30;

for ($j=0; $j<$count1; $j++){

$parousia=$_POST[$j];

$aem=$_POST[$i];

$k=$j+1;

$sql=("insert into parousies set aem='$aem', parousia='$parousia', date='$date'");

if (@mysql_query($sql)) {

echo("<p>Η $k εγγραφή προστέθηκε επιτυχώς στη βάση δεδομένων.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " .

mysql_error() . "</p>");

}

$i++;

}

?>

</body></html>

3.2.4 Εισαγωγή βαθμολογιών

Στο τέταρτο ραδιοπλήκτρο αντιστοιχεί η εισαγωγή της βαθμολογίας των φοιτητών. Και πάλι με την επιλογή της επιθυμητής ομάδας, προβάλλεται στην οθόνη η λίστα των ονομάτων που περιέχονται σε αυτή. Η βαθμολογία μπορεί να είναι είτε της προόδου, είτε της τελικής εξέτασης. Εάν η εξέταση είναι προόδου, τότε η τιμή του type είναι 0 και ο βαθμός της υπολογίζεται κατά 40% για την τελική βαθμολογία. Για την τελική εξέταση, η τιμή του type γίνεται 1 και ο συντελεστής του βαθμού της , 60%.

<html><body bgcolor="#89ca9d">

<title>Εισαγωγή Βαθμολογιών</title>

<?php

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

(15)

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>" );

exit();

}

$count1=$_POST['count1'];

$count2=$_POST['count2'];

$typos=$_POST['typos'];

$j=30;

for($i=0; $i<$count1; $i++){

$vathmos=$_POST[$i];

$aem=$_POST[$j];

if ($typos==0){

$sql="insert into vathmoi set aem='$aem', vathmos_proodou='$vathmos'";

if (@mysql_query($sql)) {

echo("<p>Η εγγραφή προστέθηκε επιτυχώς.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " .

mysql_error() . "</p>");

} }else{

$sql="update vathmoi set vathmos_telikis='$vathmos'where aem='$aem'";

if (@mysql_query($sql)) {

echo("<p>Η εγγραφή προστέθηκε επιτυχώς.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " .

mysql_error() . "</p>");

}

$vat=@mysql_query("select vathmos_proodou, vathmos_telikis from vathmoi where aem='$aem'");

while ($vthm=@mysql_fetch_array($vat)){

$pro=$vthm["vathmos_proodou"];

$tel=$vthm["vathmos_telikis"];

$v=$pro*0.4 + $tel*0.6;

}

$tv=@mysql_query("update vathmoi set synolo='$v' where aem='$aem'");

}

(16)

}

?>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

</body></html>

3.2.5 Προβολή ομάδων εργαστηρίων

Τελευταία στη σειρά, είναι η προβολή των ομάδων εργαστηρίων.

Υποβάλλοντας το αίτημα, ανασύρονται από τη βάση δεδομένων όλα τα ονόματα που καταχωρήθηκαν από τους φοιτητές χωρισμένα κατά ομάδα. Μια στιγμιαία απεικόνιση της προβολής των ομάδων θα μπορούσε να είναι η παρακάτω:

Εκτός από τα ονόματα των φοιτητών, στη λίστα εμφανίζονται το ΑΕΜ και η ομάδα στην οποία δήλωσαν συμμετοχή .

Η παραπάνω εικόνα εμφανίζεται με την εκτέλεση του

<title> Προβολή Ομάδων Εργαστηρίων</title>

<h1>Ομάδες Εργαστηρίων</h1>

<? $i=1;

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

(17)

echo( "<p>Unable to locate the ptyxiaki " . "database at this time.</p>"

);

exit();

}

?><table border="0"

width='50%'><tr><td>AEM<td>Επώνυμο<td>Όνομα<td>Ομάδα<?

while($i<5){

echo ("<tr><td colspan='3'>ΟΜΑΔΑ $i");

$result=@mysql_query("select omades.aem, users.surname, users.name, omades.omada from omades, users where omada=$i and omades.aem=users.aem");

while ( $omades = mysql_fetch_array($result) ){

echo ("<tr><td>".$omades["aem"] ."<td> ".

$omades["surname"] ." <td>". $omades["name"]. "<td>" . $omades["omada"]);

} $i++;}

?> </table>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

3.3 Επιλογές του σπουδαστή 3.3.1 Διεξαγωγή διαγωνίσματος

Η πρώτη επιλογή που δίνεται στους σπουδαστές είναι η διεξαγωγή on- line διαγωνισμάτων. Το διαγώνισμα ανεβαίνει από τον καθηγητή σε μορφή HTML. Περιέχει δέκα ερωτήσεις και τρεις πιθανές απαντήσεις για την κάθε ερώτηση. Η απάντηση που θεωρεί σωστή ο φοιτητής, επιλέγεται τσεκάροντας το αντίστοιχο ραδιοπλήκτρο. Πατώντας το κουμπί υποβολής «αποστολή», καλείται το php αρχείο elegxos_apantiseon.php, γίνεται σύνδεση με τη βάση και αντιπαραβολή των απαντήσεων του σπουδαστή με αυτές που καταχώρισε ο καθηγητής στη βάση. Μία μεταβλητή -μετρητής με αρχική τιμή 0, αυξάνεται κατά 1 για κάθε σωστή απάντηση του σπουδαστή. Στο τέλος της αντιπαραβολής, η μεταβλητή $count έχει την τελική της τιμή και εμφανίζεται στην οθόνη το ποσοστό της επιτυχίας με τη μορφή ¨πλήθος σωστών / σύνολο ερωτήσεων¨. Ο κώδικας της σύγκρισης των απαντήσεων είναι ο παρακάτω:

<html><head><title>Έλεγχος απαντήσεων</title>

<body bgcolor="#89ca9d">

<?php

$dbcnx = @mysql_connect("127.0.0.1", "root", "");

if (!$dbcnx) {

echo( "<p>Unable to connect to the " . "database server at this time.</p>" );

exit();

}

// Select the ptyxiaki database if (! @mysql_select_db("ptyxiaki") ) {

(18)

echo( "<p>Unable to locate the ptyxiaki " .

"database at this time.</p>" );

exit();

}

$ap1=$_POST['ap1'];

$ap2=$_POST['ap2'];

$ap3=$_POST['ap3'];

$ap4=$_POST['ap4'];

$ap5=$_POST['ap5'];

$ap6=$_POST['ap6'];

$ap7=$_POST['ap7'];

$ap8=$_POST['ap8'];

$ap9=$_POST['ap9'];

$ap10=$_POST['ap10'];

$id=$_POST['id'];

$count=0;

$ap=@mysql_query("select * from diagonismata where id_mathimatos='$id'");

while($apantisi=@mysql_fetch_array($ap)){

if($ap1==$apantisi['apantisi1']){

echo ("Η απάντηση 1 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 1 είναι λάθος.<P>");

}

if($ap2==$apantisi['apantisi2']){

echo ("Η απάντηση 2 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 2 είναι λάθος.<P>");

}

if($ap3==$apantisi['apantisi3']){

echo ("Η απάντηση 3 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 3 είναι λάθος.<P>");

}

if($ap4==$apantisi['apantisi4']){

echo ("Η απάντηση 4 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 4 είναι λάθος.<P>");

}

if($ap5==$apantisi['apantisi5']){

echo ("Η απάντηση 5 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 5 είναι λάθος.<P>");

}

if($ap6==$apantisi['apantisi6']){

(19)

echo ("Η απάντηση 6 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 6 είναι λάθος.<P>");

}

if($ap7==$apantisi['apantisi7']){

echo ("Η απάντηση 7 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 7 είναι λάθος.<P>");

}

if($ap8==$apantisi['apantisi8']){

echo ("Η απάντηση 8 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 8 είναι λάθος.<P>");

}

if($ap9==$apantisi['apantisi9']){

echo ("Η απάντηση 9 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 9 είναι λάθος.<P>");

}

if($ap10==$apantisi['apantisi10']){

echo ("Η απάντηση 10 είναι σωστή.<P>");

$count++;

}else{

echo ("Η απάντηση 10 είναι λάθος.<P>");

} }

echo ("Το ποσοστό της επιτυχίας σας είναι ".$count." / 10");

?>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

</body></html>

3.3.2 Κατέβασμα εκπαιδευτικού υλικού

Οτιδήποτε εκπαιδευτικό υλικό ανέβασε ο καθηγητής του μαθήματος, μπορεί να το προμηθευτεί ο σπουδαστής ακολουθώντας τους συνδέσμους.

Με την επιλογή του συνδέσμου που τον ενδιαφέρει, ανοίγει το αρχείο που στη συνέχεια μπορεί να εκτυπώσει ή να κρατήσει σε ηλεκτρονική μορφή για μελέτη ή μελλοντική χρήση.

3.3.3 Εμφάνιση απουσιών

Επιλέγοντας το τρίτο ραδιοπλήκτρο, εμφανίζονται οι ημερομηνίες στις

(20)

μαθήματα που παρακολούθησε, ακολουθούνται από την ένδειξη ¨παρών¨ ενώ τα υπόλοιπα από την ένδειξη ¨απών¨. Με χρήση των παρακάτω προτάσεων,

$apou=0;

while ($parousies=@mysql_fetch_array($sql)){

$parousia1=$parousies["parousia"];

$date=$parousies["date"];

if ($parousia1==1){

$parousia="Παρών/ούσα";}

else{

$apou++;

$parousia="Απών/ούσα";}

echo ("<tr><Td>".$parousia."<td>".$date);

}

if ($apou>2){

echo ("<tr><td>Έχετε κοπεί λόγω απουσιών");

}

ελέγχεται το πλήθος των απουσιών. Εάν αυτές ξεπερνούν τις δύο, τότε ο σπουδαστής ειδοποιείται ότι έχει κοπεί στο μάθημα λόγω απουσιών.

3.3.4 Εμφάνιση βαθμολογίας

Ο κάθε σπουδαστής έχει δικαίωμα να δει μόνο τις δικές του βαθμολογίες. Το επιτυγχάνει επιλέγοντας την τέταρτη επιλογή που του δίνεται από το μενού. Μπορεί να δει τον βαθμό της προόδου, το βαθμό της τελικής του εξέτασης, καθώς και τον τελικό του βαθμό. Εάν δεν έχει διεξαχθεί εξέταση, δεν υπάρχει βαθμός στον πίνακα. Ο τελικός βαθμός προκύπτει από το άθροισμα των 40% της προόδου και 60% της τελικής εξέτασης. Το τμήμα του κώδικα που υπολογίζει τον τελικό βαθμό είναι:

$pro=$vthm["vathmos_proodou"];

$tel=$vthm["vathmos_telikis"];

$v=$pro*0.4 + $tel*0.6;

όπου $pro ο βαθμός προόδου, $tel ο βαθμός της τελικής εξέτασης και $v ο

βαθμός που προκύπτει από τα δύο.

(21)

3.3.5 Δήλωση ομάδων εργαστηρίων

Η πέμπτη επιλογή που δίνεται στους φοιτητές, είναι η δήλωση συμμετοχής στην ομάδα που επιθυμούν και σχεδιάζεται με τον παρακάτω κώδικα:

if($epilogi=="omades"){// dilosi Ergastirion ->

?><title>Δήλωση εργαστηρίων</title>

<form action="dilosi_omadon.php" method="post">

<table align="center">

<tr><td align="center">Επέλεξε σε ποια ομάδα θέλεις να ενταχθείς:

<tr><td align="center"><select name="omada" size="1">

<option value="1">Ομαδα 1

<option value="2">Ομαδα 2

<option value="3">Ομαδα 3

<option value="4">Ομαδα 4

</select>

<tr><td><input type="hidden" name="aem" value="<?echo

$aem?>">

<tr><td align="center"><input type="submit" value="Επιλογή">

</form>

<FORM><INPUT TYPE="BUTTON" VALUE="Επιστροφή "

ONCLICK="history.go(-1)">

</FORM>

<?}

Σε κάθε ομάδα έχουν δικαίωμα εγγραφής 25 σπουδαστές. Ο κώδικας ελέγχει τον αριθμό των δηλώσεων ανά ομάδα και στην περίπτωση που ξεπεράσουν τις 25, ειδοποιεί τον χρήστη για να εγγραφεί σε κάποια άλλη. Σε διαφορετική περίπτωση εισάγει το ΑΕΜ και τον αριθμό της ομάδας στον πίνακα omades της βάσης δεδομένων.

$om=@mysql_query("select count(omada) from omades where omada='$omada'");

while($pl=@mysql_fetch_array($om)){

$plithos=$pl['count(omada)'];

if ($plithos>25){

echo ("Η ομάδα έχει κλείσει. Επέλεξε μια άλλη.");

}else{

$sql=("insert into omades set aem='$aem', omada='$omada'");

if (@mysql_query($sql)) {

echo("<p>Η δήλωση έγινε επιτυχώς.</p>");

} else {

echo("<p>Προέκυψε λάθος στην υποβολή των στοιχείων: " .mysql_error() . "</p>");

} }

Referências

Documentos relacionados

Στην πρώτη σειρά εντολών που απαιτείται για την εγκατάσταση της MySQL από δυαδικά αρχεία θα πρέπει να προστεθεί μία ομάδα και έναν χρήστη και να αποσυμπιεστούν τα αρχεία ως εξής: #>