Merge branch 'master' of https://codefirst.iut.uca.fr/git/nathan.boileau/Scripted
continuous-integration/drone/push Build is passing Details

ServeurDeTest
Johan LACHENAL 2 years ago
commit bbd12ebcea

@ -17,7 +17,7 @@ $vues['login'] = 'View/src/pages/LogSign/Login.php';
$vues['signUp'] = 'View/src/pages/LogSign/SignUp.php'; $vues['signUp'] = 'View/src/pages/LogSign/SignUp.php';
$vues['mail'] = 'View/src/pages/LogSign/Mail.php'; $vues['mail'] = 'View/src/pages/LogSign/Mail.php';
$vues['confirm'] = 'View/src/pages/LogSign/Confirm.php'; $vues['confirm'] = 'View/src/pages/LogSign/Confirm.php';
$vues['test'] = 'View/src/pages/FirstTests/FirstTest1.html'; $vues['test'] = 'View/src/pages/FirstTests/FirstTest1.php';
$vues['next'] = 'View/src/pages/FirstTests/FirstTest'; $vues['next'] = 'View/src/pages/FirstTests/FirstTest';
$vues['admin'] = 'View/src/pages/Admin/Admin.php'; $vues['admin'] = 'View/src/pages/Admin/Admin.php';
$vues['addEnigmeSolo'] = 'View/src/pages/Admin/AddEnigmeSolo.php'; $vues['addEnigmeSolo'] = 'View/src/pages/Admin/AddEnigmeSolo.php';

@ -44,6 +44,9 @@ class UserController
case "saveCode": case "saveCode":
$this->saveCode(); $this->saveCode();
break; break;
case "saveCodeInCookie":
$this->saveCodeInCookie();
break;
default: default:
$error = "Action non valide"; $error = "Action non valide";
require($rep . $vues['erreur']); require($rep . $vues['erreur']);
@ -142,7 +145,7 @@ class UserController
global $rep, $vues, $error; global $rep, $vues, $error;
$nettoyage = new Nettoyage(); $nettoyage = new Nettoyage();
$num = $nettoyage->cleanInt($_REQUEST['num']); $num = $nettoyage->cleanInt($_REQUEST['num']);
require($rep . $vues['next'] . $num . ".html"); require($rep . $vues['next'] . $num . ".php");
} catch (Exception $e) { } catch (Exception $e) {
$error = "Erreur Inconnue"; $error = "Erreur Inconnue";
require($rep . $vues['erreur']); require($rep . $vues['erreur']);
@ -214,4 +217,18 @@ class UserController
require($rep . $vues['erreur']); require($rep . $vues['erreur']);
} }
} }
public function saveCodeInCookie(){
try {
global $rep, $vues, $error;
$model = new UserModel();
$code = $_POST['code'];
$num = $_POST['num'];
setcookie("test".$num, $code, time() + 3600*24*365);
echo $code;
}
catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
} }

@ -0,0 +1,155 @@
function run() {
const terminal = document.getElementById("console");
const runner = new BrythonRunner({
stdout: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {},
},
stderr: {
write(content) {
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {},
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {},
},
});
var code = editor.getValue();
runner.runCode(code);
setTimeout(() => {
runner.stopRunning();
}, 10 * 1000);
}
function run_init() {
if (document.getElementById("console") != "") {
document.getElementById("console").innerHTML = "";
}
run();
}
var editor = ace.edit("editor");
editor.container.style.opacity = 0.85;
editor.setTheme("ace/theme/vibrant_ink");
editor.getSession().setMode("ace/mode/python");
editor.setFontSize("16px");
editor.setOptions({
enableLiveAutocompletion: true,
copyWithEmptySelection: true,
showGutter: true,
useWrapMode: true, // wrap text to view
indentedSoftWrap: false,
});
//Function that execute given code and return the result in a given element by id
function exec(code, id) {
const terminal = document.getElementById("console");
terminal.innerHTML = "";
const runner = new BrythonRunner({
stdout: {
write(content) {
if (id == "code") {
retourCode = content;
}
if (id == "solution") {
retourSolution = content;
}
},
flush() {},
},
stderr: {
write(content) {
if (id == "solution") {
retourSolution = "ERROR";
}
terminal.innerHTML += content;
terminal.scrollTop = terminal.scrollHeight;
},
flush() {},
},
stdin: {
async readline() {
terminal.innerHTML += "\n";
terminal.scrollTop = terminal.scrollHeight;
var userInput = prompt();
return userInput;
},
flush() {},
},
});
runner.runCode(code);
setTimeout(() => {
runner.stopRunning();
}, 10 * 1000);
}
/**
* It checks if the code in the editor as the same result as the solution.
*/
function check() {
if (retourSolution == "ERROR") {
result.innerHTML = "Il semblerait qu'il y a une erreur dans ton code :/";
} else if (retourSolution == retourCode) {
result.innerHTML = "Bien joué";
document.getElementById("next").style.display = "flex";
} else {
result.innerHTML = "Mauvaise réponse";
}
}
/**
* If the help is displayed, hide it. Otherwise, display it.
*/
function displayHelp() {
var help = document.getElementsByClassName("help");
if (help[0].style.display == "block") {
for (var i = 0; i < help.length; i++) {
help[i].style.display = "none";
}
return;
}
for (var i = 0; i < help.length; i++) {
help[i].style.display = "block";
}
}
function saveCode() {
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost/Scripted/WEB/index.php?action=saveCodeInCookie', true);
// xhr.open('POST', 'http://82.165.180.114/Scripted/WEB/index.php?action=saveCodeInCookie', true);
xhr.responseType = 'text';
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function () {
// console.log('saveCode'+xhr.responseText);
};
var url = window.location.href; // récupère l'URL de la page
var elements = url.split("/"); // divise l'URL en un tableau de chaînes de caractères
var lastElement = elements.pop(); // récupère le dernier élément du tableau
if (lastElement == "index.php?action=goToTest") {
num = 1;
}
else {
var searchParams = new URLSearchParams(window.location.search);
var num = searchParams.get('num');
}
xhr.send("code=" + editor.getValue() + "&num=" + num);
}
document.getElementById ('editor').addEventListener('input', saveCode);

@ -103,7 +103,14 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">print("Hello World !")</div> <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
if (isset ($_COOKIE['test1'])) {
echo $_COOKIE['test1'];
}
else {
echo "print(\"Hello World !\")";
}
?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -146,6 +153,6 @@
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -108,8 +108,14 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">def double_element(list): <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
</div> if (isset ($_COOKIE['test10'])) {
echo $_COOKIE['test10'];
}
else {
echo 'def double_element(list):';
}
?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -202,7 +208,7 @@
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
<script src="View/src/JS/Test10.js"></script> <script src="View/src/JS/Test10.js"></script>
</body> </body>
</html> </html>

@ -113,14 +113,21 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">x = 1 <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
print("La varible 'x' :", x) if (isset ($_COOKIE['test2'])) {
echo $_COOKIE['test2'];
}
else {
echo 'x = 1
print("La varible \'x\' :", x)
y=x+2 y=x+2
print("Le résultat de'x+2' :", y) print("Le résultat de\'x+2\' :", y)
x=y*2 x=y*2
print("Le résultat de '(x+2)*2' :",x)</div> print("Le résultat de \'(x+2)*2\' :",x)';
}
?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -163,6 +170,6 @@ print("Le résultat de '(x+2)*2' :",x)</div>
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -115,7 +115,12 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh"># Initialise une liste <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
if (isset ($_COOKIE['test3'])) {
echo $_COOKIE['test3'];
}
else {
echo '# Initialise une liste
ma_liste = [1, 2,"Hello","World", 3.14] ma_liste = [1, 2,"Hello","World", 3.14]
print("Notre liste de départ :") print("Notre liste de départ :")
print(ma_liste) print(ma_liste)
@ -128,7 +133,7 @@ print(ma_liste)
print("") print("")
# Remplace le dernier élément par "toto" # Remplace le dernier élément par "toto"
print("Remplacement du dernier élément par 'toto'") print("Remplacement du dernier élément par \'toto\'")
ma_liste[-1] = "toto" ma_liste[-1] = "toto"
print(ma_liste) print(ma_liste)
print("") print("")
@ -139,8 +144,8 @@ ma_liste.append(5.4)
print(ma_liste) print(ma_liste)
print("") print("")
# Insert 2 à l'index 3 # Insert 2 à l\'index 3
print("Insertion de 2 à l'index 3") print("Insertion de 2 à l\'index 3")
ma_liste.insert(3,2) ma_liste.insert(3,2)
print(ma_liste) print(ma_liste)
print("") print("")
@ -151,19 +156,21 @@ ma_liste.remove(2)
print(ma_liste) print(ma_liste)
print("") print("")
# Enlève de la liste l'élément situé à la position 1 et le renvoie # Enlève de la liste l\'élément situé à la position 1 et le renvoie
print("Suppression de l'élément situé à la position 1") print("Suppression de l\'élément situé à la position 1")
p = ma_liste.pop(1) p = ma_liste.pop(1)
print(ma_liste) print(ma_liste)
print("L'élément retiré :", p) print("L\'élément retiré :", p)
print("") print("")
# Renvoie la longueur de la liste # Renvoie la longueur de la liste
print("Longueur de la liste :", len(ma_liste)) print("Longueur de la liste :", len(ma_liste))
print("") print("")
# Ps l'instruction 'len' ne fonctionne pas que pour les listes # Ps l\'instruction \'len\' ne fonctionne pas que pour les listes
print("Longueur de la chaine de caractère 'toto' :", len("toto"))</div> print("Longueur de la chaine de caractère \'toto\' :", len("toto"))';
}
?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -206,6 +213,6 @@ print("Longueur de la chaine de caractère 'toto' :", len("toto"))</div>
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -107,11 +107,17 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">def say_somethings(message1, message2): <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
if (isset ($_COOKIE['test4'])) {
echo $_COOKIE['test4'];
}
else {
echo 'def say_somethings(message1, message2):
print(message1) print(message1)
print(message2) print(message2)
say_somethings("Hello", "World")</div> say_somethings("Hello", "World")';
}?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -154,6 +160,6 @@ say_somethings("Hello", "World")</div>
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -97,11 +97,17 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">def addition(a,b) : <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
return a+b if (isset ($_COOKIE['test5'])) {
echo $_COOKIE['test5'];
}
else {
echo 'def addition(a,b) :
return a+b
somme=addition(6,4) somme=addition(6,4)
print(somme)</div> print(somme)';
}?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -144,6 +150,6 @@ print(somme)</div>
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -97,8 +97,13 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">def multiplication(a,b) : <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
</div> if (isset ($_COOKIE['test6'])) {
echo $_COOKIE['test6'];
}
else {
echo 'def multiplication(a,b) :';
}?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -192,7 +197,7 @@
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
<script src="View/src/JS/FirstFunction.js"></script> <script src="View/src/JS/FirstFunction.js"></script>
</body> </body>
</html> </html>

@ -107,13 +107,19 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">a = 1; b = 2; <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
if (isset ($_COOKIE['test7'])) {
echo $_COOKIE['test7'];
}
else {
echo 'a = 1; b = 2;
if (a > b) : if (a > b) :
print(a,"est plus grand que",b) print(a,"est plus grand que",b)
elif (a == b): elif (a == b):
print("a et c sont éguax") print("a et c sont éguax")
else : else :
print(b,"est plus grand que",a)</div> print(b,"est plus grand que",a)';
}?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -155,6 +161,6 @@ else :
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src//JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>

@ -113,8 +113,14 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">def condition(list,a) : <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
</div> if (isset ($_COOKIE['test2'])) {
echo $_COOKIE['test2'];
}
else {
echo 'def condition(list,a) :';
}
?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -208,7 +214,7 @@
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
<script src="View/src/JS/If.js"></script> <script src="View/src/JS/If.js"></script>
</body> </body>
</html> </html>

@ -121,25 +121,30 @@
<div class="row mt-5"> <div class="row mt-5">
<!-- Editor --> <!-- Editor -->
<div class="col-8"> <div class="col-8">
<div class="ace rounded ace-1" id="editor" style="min-height: 40vh">list = [1, 2, 3, 4, 5] <div class="ace rounded ace-1" id="editor" style="min-height: 40vh"><?php
if (isset ($_COOKIE['test9'])) {
echo $_COOKIE['test9'];
}
else {
echo 'list = [1, 2, 3, 4, 5]
print("Boucle for dans une liste : ") print("Boucle for dans une liste : ")
for i in list: for i in list:
print(i+2) print(i+2)
print("") print("")
print("Boucle for dans avec range (5): ") print("Boucle for dans avec range (5): ")
for j in range(5): for j in range(5):
print(j) print(j)
print("") print("")
print("Boucle for dans avec range (1, 5): ") print("Boucle for dans avec range (1, 5): ")
for k in range(1, 5): for k in range(1, 5):
print(k) print(k)
print("") print("")
print("Boucle for dans avec range (0, 5, 2): ") print("Boucle for dans avec range (0, 5, 2): ")
for l in range(1, 5, 2): for l in range(1, 5, 2):
print(l) print(l)
print("") print("")
print("Boucle for dans avec range (5, 0, -1): ") print("Boucle for dans avec range (5, 0, -1): ")
@ -149,7 +154,8 @@ for m in range(5, 0, -1):
print("") print("")
print("Boucle for sur un len() : ") print("Boucle for sur un len() : ")
for n in range(len("toto")): for n in range(len("toto")):
print(n)</div> print(n)';
}?></div>
</div> </div>
<!-- End Editor --> <!-- End Editor -->
@ -191,6 +197,6 @@ for n in range(len("toto")):
type="text/javascript" type="text/javascript"
charset="utf-8" charset="utf-8"
></script> ></script>
<script src="View/src/JS/base.js"></script> <script src="View/src/JS/baseTest.js"></script>
</body> </body>
</html> </html>
Loading…
Cancel
Save