if (isset($_POST['exerc'])) { require_once 'Rserve-php/Connection.php'; if (empty($_FILES['rfile']["tmp_name"])) { echo "Nenhum arquivo recebido. Verifique se houve algum problema no upload."; echo "<br>Possíveis causas de erro: <ul><li>Você esqueceu de fornecer um nome de arquivo?</li>"; echo "<li>O arquivo é grande demais? (máximo aceito: 15 mil caracteres)</li>"; echo "<li>Você salvou o arquivo usando algum processador de texto, como o Word?</li>"; echo "</ul>"; } else { $uploadfile = $BASEDIR . "/tmp/" . basename($_FILES['rfile']['tmp_name']); move_uploaded_file($_FILES['rfile']['tmp_name'], $uploadfile); ### Correcao de bug! O R trava se o editor de texto não encerrou # a ultima linha system("echo ' ' >> {$uploadfile}"); $conts = file_get_contents($uploadfile); $probs = new Proibidos(); $teste = $probs->pass($conts, $X->getId()); if ($teste === FALSE) { # Verifica se existe alguma palavra proibida na resposta try { $r = new Rserve_Connection(RSERVE_HOST); } catch (Exception $e) { echo 'Erro interno ao conectar no servidor. Notifique os administradores do sistema!<br>'; if (error_reporting() & E_ERROR) { echo $e; } } try { $text = 'source("' . $BASEDIR . '/corretor.R");'; $text .= 'con <- connect("' . $DBUSER . '","' . $DBPASS . '","' . $DBNAME . '");'; $text .= 'PATH <- "' . $BASEDIR . '";';
public function cadastraTestes($testes, $msg) { // E impedimentos, por preguiça do programador global $mysqli; $res = $mysqli->prepare("DELETE FROM teste WHERE id_exercicio=?"); $res->bind_param('i', $this->id); $res->execute(); $ok = true; for ($i = 0, $c = 0; $i < sizeof($testes[1]); $i++) { $j = $i + 1; if (!empty($testes[1][$i])) { $c++; $T = new Teste(); $ok = $ok and $T->create($this->id, $j, $testes[0][$i], $testes[1][$i], $testes[2][$i]); } } if (!$ok) { $msg .= "<p>Falha ao cadastrar os testes!</p>"; } else { $msg .= " com {$c} testes. "; } $res = $mysqli->prepare("DELETE FROM proibido WHERE id_exercicio=?"); $res->bind_param('i', $this->id); $res->execute(); $ok = true; for ($i = 0; $i < sizeof($testes[3]); $i++) { if ($testes[3][$i]) { $T = new Proibidos(); $ok = $ok and $T->create($testes[3][$i], $this->id); } } if (!$ok) { $msg .= "<p>Falha ao cadastrar os impedimentos!</p>"; } $msg .= "Próximos passos: <ul>\n\t\t\t<li><a href='exercicio.php?exerc={$this->id}'>Teste</a> se a correção funciona</li><li><a href='cadastra.php?exerc={$this->id}'>Edite</a> as definições deste exercício</li><li>Determine o <a href='prazos.php'>prazo</a> de entrega</li></ul>"; return $msg; }