• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

FerFil

PHP & MySQL - Erro estranho [Resolvido]

6 mensagens neste tópico

Boas ppl...

Introduzi em duas caixas de texto o código-postal q vou buscar ao MySQL

$cp_normal = substr($cp, 0, 4);
$cp_extra = substr($cp, 4, 3);
<input type="text" value=" <? echo "$cp_normal"; ?> " name="cp1" size="5" maxlength="4">
-
<input type="text" value="<? echo"$cp_extra"; ?>" name="cp2" size="4" maxlength="3">

caso o utilizador decida alterar o seu código-postal e carregar no botão modificar, os dados são alterados e a página actualizada.

O problema está aqui:

No firefox quando a pág é actualizada em X de aparecer os 1ºs 4 nrs do código postal só aparecem 3, ou seja, em X de 1700 aparece 170, e cada X que a pág é actualizada os 3 nrs continuam e os ultimos nrs do código postal vão desaparecendo, ou seja:

1ª actualização 170  - 000

2ª actualização 170  - 00

3ª actualização 170  - 0

4ª actualização 170  - 000

No IE não dá erro nenhum.

No Opera tb não.

:wallbash:

Os dados tão guardados na Base de dados como INT(7) latin1_spanish_ci

Se alguém poder ajudar  :cheesygrin: não sei se é erro meu ou se é bug do Firefox.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

1º -  Não metas aspas (" ") quando estás a fazer echo das variáveis (apesar de neste caso não fazer grande coisa);

2º - A seguir a esse código tens algum outro código de interacção com a BD (como a actualização)? Se sim, posta aí sff.

Cumps :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Aí vai o código pra a actualização da base de dados.

(...)
if (empty($cp2_novo)){
$cp2_novo = $cp2_novo."000";
}

if (ereg("[^0-9]", $cp1_novo)){
$erro++;
$DizErro = $DizErro."<strong>CÓDIGO-POSTAL</strong> - só são permitidos números.<br>";
}

$cp_novo =  $cp1_novo.$cp2_novo;

if (strlen($cp_novo) != 7){
$erro++;
$DizErro = $DizErro."<strong>CÓDIGO-POSTAL</strong> - números insuficientes.<br>";
}
(...)

if ($_POST['ModificaUser']){
if ($erro==0){

$pass_novo = trim($pass_novo);
$email_novo = trim($email_novo);
$morada_novo = trim($morada_novo);
$local_novo = trim($local_novo);
$cp1_novo = trim($cp1_novo);
$cp2_novo = trim($cp2_novo);
$cp_novo = trim($cp_novo);
$pais_novo = trim($pais_novo);
$contacto_novo = trim($contacto_novo);

$sql = "UPDATE dp SET password ='$pass_novo', email='$email_novo', morada='$morada_novo', cp='$cp_novo', localidade='$local_novo',
pais='$pais_novo', contacto='$contacto_novo' WHERE username = '$username'";

$resultado = mysql_query($sql) or die ("não é possivel realizar a consulta à base de dados");

echo 'Alterações realizadas com sucesso';

}else{

echo $DizErro;

}
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Existe alguém que me possa ajudar??

Não consigo me livrar deste erro, não sei o que fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao ff so mostrar os primeiros 3 digitos, penso que seja por teres um espaço no entre as " e o <?

<input type="text" value=" <? echo "$cp_normal"; ?> " name="cp1" size="5" maxlength="4">

-

era porreiro pores aqui o codigo todo é complicado adivinhar que onde vêm certos valores

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:eek: Ó Sven, tu deves ser de Olhão...  :eek:

Eu tou há 1 semana a  :wallbash: com o #$%$ do pc à procura do erro, e tu..... pimba,

até sou homem pra te pagar umas bejecas pelo "esforço" :P

Obr  :P  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora