Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boas ppls fiz uma pequena class que gera questoes de segurança ela aqui em localhost e num servidor meu esta a dar correctamente mas num servidor de um cliente esta a dar um erro um pouco esquisito ao que parece é de ter a register_global on mas nao dei como problema,o erro que da é este
Fatal error: Cannot use object of type seg_formularios as array in /home/cliente/public_html/inc/class/class.sec_form.php on line 94
a class é esta
<?php
/**
* @author LaBoss
* @copyright 2008
* @Projecto Sistema de Protecção de Formularios
* @Data 23 de Junho de 2008
*/
error_reporting(0);
class seg_formularios{
public function __construct(){
session_start();
}
### Função que retira os acentos ##
protected function retira_acentos($texto){
$array1 = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );
$array2 = array("a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
return str_replace($array1, $array2, $texto );
}
### Função que pega as perguntas e respostas do TXT ##
public function peguntas($ficheiro){
if (!file_exists($ficheiro)){
echo "Erro o ficheiro nao existe";
} elseif (!is_file($ficheiro)){
echo "O arquivo é invalido";
} else {
$perguntas = fopen($ficheiro, "r");
while ($linha = fgets($perguntas)) {
$d_perguntas = explode("|", $linha);
$pergunta[] = $d_perguntas;
}
fclose($perguntas);
$pergunta_select = array_rand($pergunta);
$_SESSION["seguranca"]["perguntas"]["pergunta"] = ucfirst(strtolower($pergunta[$pergunta_select][0]));
$_SESSION["seguranca"]["perguntas"]["resposta"] = strtoupper($pergunta[$pergunta_select][1]);
return $_SESSION["seguranca"]["perguntas"]["pergunta"];
}
}
### Função que calcula pergunta de calculo ##
public function calculo($numero_maximo){
$soma_1 = rand(1, $numero_maximo);
$soma_2 = rand(1, $numero_maximo);
$_SESSION["seguranca"]["calculo"]["soma"] = array($soma_1, $soma_2);
$_SESSION["seguranca"]["calculo"]["total"] = ($soma_1+$soma_2);
return $_SESSION["seguranca"]["calculo"]["soma"];
}
### Funçao que gera imagem
public function gera_imagem(){
$fundo = "gfx/seguranca/";
$fundo .= rand(0,9);
$fundo .= ".jpg";
$imagem = imagecreatefromjpeg($fundo);
$this->carac = $_SESSION["seguranca"]["img"]["carac"];
foreach($this->carac as $linha) {
$cor = imagecolorallocate($imagem, $linha["corR"], $linha["corG"], $linha["corB"]);
imagestring($imagem, $linha["tam"], $linha["x"], $linha["y"], $linha["c"], $cor);
}
header("Content-type: image/png");
imagepng($imagem);
}
### Função que valida a resposta do utilizador ##
function valida($tipo, $resposta){
if ($tipo == "pergunta"){
if (!isset($resposta)){
return false;
} elseif (!empty($_SESSION["seguranca"]["perguntas"]["resposta"])){
$resposta_formatada = strtoupper($this->retira_acentos(trim($resposta)));
$resposta_session = trim($_SESSION["seguranca"]["perguntas"]["resposta"]);
if ($resposta_session == $resposta_formatada){
return true;
} else {
return false;
}
return false;
}
} elseif ($tipo == "calculo"){
if (!isset($resposta)){
return false;
} elseif (!empty($_SESSION["seguranca"]["calculo"]["total"])){
$resposta_calc = (int)$resposta;
$resposta_session_calc = $_SESSION["seguranca"]["calculo"]["total"];
if ($resposta_session_calc == $resposta_calc){
return true;
} else {
return false;
}
return false;
}
} elseif ($tipo == "img"){
if (!isset($resposta)){
return false;
} elseif (!empty($_SESSION["seguranca"]["img"]["img"])){
$resposta_post = strtoupper($resposta);
$valorImagem = strtoupper($_SESSION["seguranca"]["img"]["img"]);
if ($valorImagem == $resposta_post){
return true;
} else {
return false;
}
return false;
}
} else {
return false;
}
}
### Funçao que insere novas perguntas no documento ###
public function insere_perguntas($ficheiro, $pergunta, $resposta){
if (empty($pergunta) OR empty($resposta)){
echo "tem de preencher todos os campos";
} else {
$pergunta_rsp = array(ucfirst(strtolower(trim($pergunta))), strtoupper($this->retira_acentos(trim($resposta))));
$pergunta_txt = implode("|" , $pergunta_rsp);
## Vamos verificar se a frase e a rsp ja existem no txt
$verfica_cont = file_get_contents($ficheiro);
$verfica_linhas = explode("\n", $verfica_cont);
$existe = false;
foreach($verfica_linhas as $linha) {
$linha = trim($linha);
if($linha == $pergunta_txt) {
$existe = true;
break;
}
}
if($existe) {
echo "A frase já existe no txt";
} else {
## Script para adicionar a frase no documento
$insere_frase = fopen($ficheiro, 'a+');
fwrite($insere_frase, $pergunta_txt."\n");
fclose($insere_frase);
echo "Frase inserida com sucesso";
}
}
}
}
?>Carregando comentários...