Jump to content


tv bobo

Member Since 28/02/2009
Offline Last Active 28/01/2010, 17:24
-----

Topics I've Started

Windows Xp Para Fechar Precisa Pedir Duas Vezes

10/08/2009, 21:41

tenho Windows XP Professional instalado e para encerrar a sessão ele produz um som de alerta e não fecha.

tenho que pedir uma segunda vez e então ele fecha. desligar...

alguém pode dar-me uma luz?

A Virgula No Campo Preco Nao Retorna

30/03/2009, 15:34

por gentileza (perdoem meu teclado nao tem acento),

estou com o seguinte problema:

criei uma tabela com campo decimal chamado (preco) para valor monetario

exemplo: R$ 12,88

quando insiro via formulario o valor descrito acima com a virgula, o mysql despreza o que foi informado depois da virgula e retorna o valor com ponto seguido de dois zeros.

exemplo: insiro 13,49 e retorno 13.00

quando coloco o ponto ao inves da virgula a coisa muda para

exemplo: insiro 13.49 e retorno 13.49

Bem nesse ultimo caso a informacao fica certa:

pois o mesmo valor que eu insiro fica gravado no bd e retorna para ser visualizado.

A questao e que estamos tratando de valor monetario. Um preco por exemplo.

Todos sabem que o preco de uma duzia de bananas deve ser grafado como segue

R$ 1,99 e nao R$ 1.99

Como eu posso regularizar isso para exibir em meu site o valor com virgulas e nao com pontos com informacoes vindas do banco de dados que foram gravadas com ponto?



Achei a resposta!

//insiro o comando abaixo

$novopreco = str_replace(".",",","$preco");

//logo depois da string originada e captada no bd

$preco = $sql["preco"];

//e ao inves de retornar

$preco

//retorno a string

$novopreco

//na tela do site.

echo "$novopreco";

//ou seja:

<?
include(conexao.php)

$sql = "SELECT * FROM suatabela";

$limite = mysql_query("$sql");

while ($sql = mysql_fetch_array($limite) ) {
$id = $sql["id"];
$preco = $sql["preco"];
$novopreco = str_replace(".",",","$preco");


echo "<p align=left>R$ <b>$novopreco</b> por $id<br>";
}
?>

falta agora resolver a entrada da virgula no formulario de registro, pois quando o usuario inclui virgula da erro no mysql.

estou testando um script em javascript que altera a virgula para ponto no proprio formulario, se funcionar eu post aqui tambem.

testei o javascript e funcionou.

//no formulario de registro coloca-se:

//---------------------------------

<script language="JavaScript">
<!--

function moeda(campo, e)
{
var SeparadorDecimal = ","
var SeparadorMilesimo = "."
var sep = 0;
var key = '';
var i = j = 0;
var len = len2 = 0;
var strCheck = '0123456789';
var aux = aux2 = '';
var whichCode = (window.Event) ? e.which : e.keyCode;


if (whichCode == 13) return true;
key = String.fromCharCode(whichCode); // Valor para o código da Chave

if (strCheck.indexOf(key) == -1) return true; // Chave inválida
len = campo.value.length;
for(i = 0; i < len; i++)

if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != SeparadorDecimal)) break;
aux = '';
for(; i < len; i++)

if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
aux += key;
len = aux.length;

if (len == 0) campo.value = '';
if (len == 1) campo.value = '0'+ SeparadorDecimal + '0' + aux;
if (len == 2) campo.value = '0'+ SeparadorDecimal + aux;
if (len > 2) {
aux2 = '';
for (j = 0, i = len - 3; i >= 0; i--) {
if (j == 3) {
aux2 += SeparadorMilesimo;
j = 0;
}
aux2 += aux.charAt(i);
j++;
}
campo.value = '';
len2 = aux2.length;
for (i = len2 - 1; i >= 0; i--)
campo.value += aux2.charAt(i);
campo.value += SeparadorDecimal + aux.substr(len - 2, len);
}
return false;

}


//-->
</script>


//-------------------------------

//no input onde e informado o numero decimal coloca-se:

//--------------------------


Pre&ccedil;o:

<input type="text" name="preco" id="preco" onKeyPress="return(moeda(this, event))" size="10" maxlength="10">

//--------------------------

//na pagina blabla.php chamada pelo formulario ...<form action=blabla.php method=post>

//antes do INSERT into tabela, coloca-se:


//-----------------------------

$largura = $_POST["largura"];
$preco = $_POST["preco"];

$novalargura = str_replace(",",".","$largura");
$novopreco = str_replace(",",".","$preco");

//--------------------------------------

insira na tabela nos campos apropriados neste caso

INSERT into tabela (largura, preco) VALUES ($novalargura, $novopreco)

//-------------------------------

O raciocinio fica assim:

O javascript do formulario obriga o input do formulario registrar os valores nos campos com a virgula do decimal. Ao clicar submit, o formulario chama o codigo para inserir na tabela e ai entra o str_replace para tornar a virgula ponto e registrar no bd como ponto. Na pagina que exibi o conteudo da tabela tem o codigo SELECT que traz o dado registrado com o ponto e ai entra novamente o str_replace comentado la no inicio, transformando o ponto novamente em virgula e exibindo na tela do site.

Pronto!

A vantagem de se fazer assim e que o registro no banco de dados permanece com o ponto. O que permite que operacoes matematicas sejam feitas pelo mysql sem o transtorno das conversoes das virgulas para cada operacao a ser realizada.

Tudo limpo!

Como Acabar Com O Serrilhado Nas Imagens Recortadasi

25/03/2009, 11:08

Por gentileza,

Alguem que possa informar como acabar com o serrilhado nas imagens recortadas no photoshop.

Tentei o eliminador de residios e nao melhorou muito. Tentei salvar em png e em alguns casos melhora, mas na maioria dos casos o resultado fica sempre a desejar.

Como sao feitas as imagens recortadas que vemos nas paginas profissionais?

Com bordas arredondadas lisas e bem acabadas. Se for no photoshop, como se faz?

Se nao for, qual o programa devo usar para ter um tratamento de imagens bem acabado?

Por favor ajudem!

Formulários - Restringir O Input De Simbolos Em Campo Texto.

06/03/2009, 04:14

Por favor,

Preciso de orientação para criar um filtro de segurança em campos de formulários

<input type=text>

em formulários php comuns.

selecionar as tags possíveis para entreda como, por exemplo:

<p> para parágrafo e <br> para quebra de linha

e restringir as outras, por exemplo:

<img src="">


Alguém pode ajudar-me?

Escrever $strings Sem Carregar O Conteúdo

01/03/2009, 14:48

Este é meu primeiro post e quero agradecer antecipadamente a atenção e a gentil colaboração de meus colegas de postagem.

Quero discutir e aprender sobre um item importante na programação. A escrita de variáveis strings tipo $name em arquivos php com a função fwrite.

RESULTADO DESEJADO:

//arquivo gravado no final do processo: login.php

<?

$name = $_POST["name"];
$idade = $_POST["idade"];

if($name == jose and $idade == 13){

senha ok

}

?>


MEIO UTILIZADO:

<?

$escreve = fopen("login.php","w+");
fwrite($escreve,"<?

\$name = \$_POST["name"];
\$idade = \$_POST["idade"];

if(\$name == jose and \$idade == 13){

senha ok

}

?>

ERROS ENCONTRADOS NO MEIO UTILIZADO:

// a barra invertida "\" colocada dentro da função if() funciona obtendo-se o resultado desejado, ou seja:

if (\$name == jose and \$idade == 13)

//torna-se, depois de gravada em login.php

if ($name == jose and $idade == 13)

//entretanto, na primeira parte do código:

$name = $_POST["name"];
$idade = $_POST["idade"];

//ao se colocar as barras invertidas:

\$name = \$_POST["name"];
\$idade = \$_POST["idade"];

//o resultado não é o mesmo, gerando-se um erro de código.

Bem, isso evidentemente, significa que a mesma medida não pode ser utilizada nos dois casos. De qualquer forma, a informação precisa ser gravada como apresentada acima e se a barra invertida é solução no caso de baixo e não no de cima, existirá uma maneira diferente de proteger a informação a ser gravada com outro recurso.

Qual?


Obrigado por colaborações sobre o tema.


Peço desculpas pelo engano.

Depurei o meu código e confirmei o uso da barra invertida como meio de impedir o transporte de conteúdo da variável.

Ou seja,

Toda vez que se coloca \ na frente do $ este é escrito como $

exemplo:


\$nome = \$_POST['nome'];


fica, depois de gravado:

$nome = $_POST['nome']; \\sem carregar o conteúdo da variável.



É isso aí.


Podem usar que funciona.

IPB Skin By Virteq