Experimentem para mitigar esse problema, colocar isso no On-Load e fazer testes:
// Bloquear Botão Direito do Mouse.
echo "
<script>
if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
return false;
});
} else { //Versões antigas do IE
document.attachEvent('oncontextmenu', function(e) {
e = e || window.event;
e.returnValue = false;
return false;
});
}
</script>
";
// Bloquear CTRL+U e CTRL+S
echo "
<script>
if (document.addEventListener) {
document.addEventListener('keydown', bloquearSource);
} else { //Versões antigas do IE
document.attachEvent('onkeydown', bloquearSource);
}
function bloquearSource(e) {
e = e || window.event;
var code = e.which || e.keyCode;
if (
e.ctrlKey &&
(code == 83 || code == 85) //83 = S, 85 = U
) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
return false;
}
}
</script>
";
// Proteger CSS
?>
<style>
/*desabilita a seleção no body*/
body {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Chrome/Safari/Opera */
-khtml-user-select: none; /* Konqueror */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none;
}
/*habilita a seleção nos campos editaveis*/
input, textarea {
-webkit-touch-callout: initial; /* iOS Safari */
-webkit-user-select: text; /* Chrome/Safari/Opera */
-khtml-user-select: text; /* Konqueror */
-moz-user-select: text; /* Firefox */
-ms-user-select: text; /* Internet Explorer/Edge */
user-select: text;
}
/*habilita a seleção nos campos com o atributo contenteditable*/
[contenteditable=true] {
-webkit-touch-callout: initial; /* iOS Safari */
-webkit-user-select: all; /* Chrome/Safari/Opera */
-khtml-user-select: all; /* Konqueror */
-moz-user-select: all; /* Firefox */
-ms-user-select: all; /* Internet Explorer/Edge */
user-select: all;
}
</style>
<?php
No OnValidate recarregar da base novamente os campos Read-Only / Label:
// Ok Lançamento já existe
if ({LancamentoID}>0) {
// Recarregar campos Read-Only / Label
/* Macro sc_lookup */
$sql ="
SELECT
ValorCusto,
Status
FROM
Pedido
WHERE
LancamentoID = {LancamentoID}
";
sc_lookup(chk_ped, $sql);
/* Erro no lookup */
if (FALSE === {chk_ped}) {
sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({chk_ped})) { /* EOF */
// CONTINUA...
}
else {
/* Inclua aqui sua rotina de processamento */
{ValorCusto} = {chk_ped[0][0]};
{Status} = {chk_ped[0][1]};
}
}
// Refazer calculos e validações com campos Read-Only / Label referente ao seu projeto.
Normalmente esse código a gente usa em páginas mais sensíveis externas de acesso ao público,
em geral.