Problema com javascript e php

Pessoa eu estou tentando inserir dados no phpmyadmin através do browser usndo php, o problema é que mesmo eu nao inserindo nada o banco mostra a mensagem que foi inserido com sucesso e quando vou ver la no banco foi inserida uma linha toda em branco, segue o codigo pra ver se alguem consegue me ajudar:

codigo pro usuario digitar os dados no browser:

Cadastro de Produtos

Inserção de pratos do restaurante

Nome:
Categoria: Entrada Pratos Principais Bebidas Sobremesas Preço:
Endereço da Imagem:

codigo pra fazer acesso ao banco:

<?php $username = "root"; $password = ""; $hostname = "localhost"; // Conexão ao banco de dados. $dbhandle = mysql_connect($hostname, $username, $password) or die("Não foi possível conectar ao MySQL!"); // Seleciona o banco de dados. $selected = mysql_select_db("restaurante", $dbhandle) or die("Não foi possível selecionar o banco de dados restaurante!"); //insere registro no banco de dados if (!mysql_query("INSERT INTO produto (Nome, Categoria, Preco, url_imagem) VALUES ('$_POST[Nome]','$_POST[Categoria]','$_POST[Preco]','$_POST[url_imagem]')", $dbhandle)){ die ("Erro:" . mysql_error()); } echo "

Registro inserido com sucesso

"; mysql_close($dbhandle); ?>

ta aparecendo a mensagem desse echo, não sei por que, quando na verdade era pra aparecer a mensagem de erro ja que nao esta sendo digitado nada, se alguem puder me ajudar eu agradeceria muito.

da um

echo "<pre>"; print_r($_POST)
assim vc sabe se esta vindo alguma valor no $_POST

aquiiii no mysql_query vc n é obrigado a passar a conexão no caso o php pega a conexão aberta se existir uma. tente o seguinte tire o $dbhandle. se vc tivesse q passar uma variavel seria $selected.

$selected = mysql_select_db("restaurante", $dbhandle)

mysql_query("INSERT INTO produto (Nome, Categoria, Preco, url_imagem) 
VALUES ('$_POST[Nome]','$_POST[Categoria]','$_POST[Preco]','$_POST[url_imagem]')", $dbhandle)

deixe seu codigo assim:

mysql_query("INSERT INTO produto (Nome, Categoria, Preco, url_imagem) 
VALUES ('$_POST[Nome]','$_POST[Categoria]','$_POST[Preco]','$_POST[url_imagem]')");

vou tentar agora

blz

deixei o codigo php assim:

<?php $username = "root"; $password = ""; $hostname = "localhost"; // Conexão ao banco de dados. $dbhandle = mysql_connect($hostname, $username, $password) or die("Não foi possível conectar ao MySQL!"); // Seleciona o banco de dados. $selected = mysql_select_db("restaurante", $dbhandle) or die("Não foi possível selecionar o banco de dados restaurante!"); //insere registro no banco de dados mysql_query("INSERT INTO produto (Nome, Categoria, Preco, url_imagem) VALUES ('$_POST[Nome]','$_POST[Categoria]','$_POST[Preco]','$_POST[url_imagem]')"); or die ("Erro:" . mysql_error()); echo "

Registro inserido com sucesso

"; mysql_close($dbhandle); ?>

e ta aparecendo o seguinte erro:

Parse error: syntax error, unexpected T_LOGICAL_OR in C:\xampp\htdocs\restaurante\paginas\insere_produto.php on line 17

tire o ponto e virgula antes do or die

ae, agora deu certo, nao aparece mais o erro, mas mesmo sem eu digitar nada é inserido o registro no banco de dados com todos os campos em branco :confused:

posta o resultado do $_POST

echo "<pre>"; print_r($_POST);

o resultado é esse:

Array
(
[Nome] =>
[Categoria] => E
[Preco] =>
[url_imagem] =>
)
Registro inserido com sucesso

teste aqui inseririu o q ta zoado é suas validação com js.

onda ta :

.value.lenght

troque por:

.value.length

cuidado com maiusculas e minusculas

Preço:<input type ="text" name="Preco" id="preco" /> <br />
if(!erPreco.test(document.getElementById("Preco").value));{
if(document.getElementById("Preco").value.length>100){

veja o id do preço esta minusculo e no js esta maiusculo.

e posso modificar qualquer um dos ids ou tem alguma preferencia?

deixa o id de preco maiusculo.

continua o mesmo erro:

Array
(
[Nome] =>
[Categoria] => E
[Preco] =>
[url_imagem] =>
)
Registro inserido com sucesso

é como se as restrições nao estivessem servindo pra nada, sera que ta pegando mesmo o codigo avascript?

teste esse codigo

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Cadastro de Produtos</title>

<script type = "text/javascript">
function validarCampos(){
	if(document.getElementById("Nome").value.length == 0 ){
	alert("O campo nome deve ser preenchido!");
	return false;
}
if(document.getElementById("Nome").value.length>50 ){
	alert("O campo nao pode ter mais de 50 caracteres!");
	return false;
}

if(document.getElementById("url_imagem").value.length>100){
alert("O campo endereço da imagem deve ter no maximo 100 caracteres!");
return false;
}
if(document.getElementById("Preco").value.length>100){
alert("O campo endereço da imagem deve ter no maximo 100 caracteres!");
return false;
}
return true;
}
</script>

</head>
<body>
<h1>Inserção de pratos do restaurante</h1>
<form action="insere_produto.php" method="post" onsubmit="return validarCampos();">
Nome:<input type ="text" name="Nome" id="Nome" /> <br />
Categoria:<select name ="Categoria">
<option value = "E"> Entrada</option>
<option value = "P"> Pratos Principais</option>
<option value = "B"> Bebidas</option>
<option value = "S"> Sobremesas</option>
</select>
Preço:<input type ="text" name="Preco" id="Preco" /> <br />
Endereço da Imagem:<input type ="text" name="url_imagem" id="url_imagem" /> <br />
<input type="submit" />
</form>
</body>
</html>

sempre q mudar alguma codigo javascript limpe o cache do navegador.

continua aparecendo o mesmo erro:

Array
(
[Nome] =>
[Categoria] => E
[Preco] =>
[url_imagem] =>
)
Registro inserido com sucesso

mas ta inseriando no banco? pode tirar o print_r e o echo