Ir ao conteúdo
  • Cadastre-se
Diego TJS

Aparecendo código php ao enviar formulário

Recommended Posts

Estou lendo um livro de PHP e estou fazendo um exercício que é o seguinte: criei um formulário em HTML, um programa em PHP e uma tabela no MySQL. A ideia do exercício é o programa PHP receber os dados do formulário e inserir na tabela criada no MySQL mas ao clicar em enviar no formulário  ao invés de aparecer a tela com os dados que foram inseridos (formulário preenchido) está aparecendo o código do programa em PHP, qual seria a solução?

 

Caso precisem de algum código só falar que eu envio. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Diego TJS Olá,  o erro é porque o servidor apache não está ativo.

Ligue-o que vai funcionar!

 

PS: recomendo que use o programa EasyPHP 16.1.1  DEV-server

É a forma mais fácil e atual de instalar o servidor apache, mysql, phpmyadmin!

 

Desinstala tudo que tiver de apache, mysql, xampp, wamp.. e etc.  e instala somente o easyphp. 

Depois de instalado, basta configurar e iniciar.  você terá o servidor apache e mysql  funcionado. Aí é só colocar seus arquivos na pasta de projeto do easyphp que é a pasta  "eds-www".

É bem simples e não tem mistério.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif Valeu pela ajuda, consegui fazer tudo certo agora está dando erro de conexão aparece a seguinte mensagem:

 

Warning: mysqli::mysqli(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES) in C:\Program Files\EasyPHP-Devserver-16.1\eds-www\cadastro_usuario.php on line 16
Não foi possível conectar ao MySQL. Erro #1045 : Access denied for user 'root'@'localhost' (using password: YES)

 

Segue o trecho do código que está dando erro, não se devo fazer alguma mudança no código ou tem algo relacionado a conexão mesmo. Este código está presente no livro então só copiei.

{
	// Executar a inclusão na tabela usuarios
	$_con = new mysqli ("localhost","root","root","exemplo");
	if ($_con->connect_error)	{
		echo "Não foi possível conectar ao MySQL. Erro #" .
		$_con->connect_errno . " : " . $_con->connect_error;
		exit;
	}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Diego TJS Provavelmente é porque está usando o root.  Crie um usuário no phpmyadmin e sete todas as permissões no GRANT e sete uma senha.

 

também recomendo você testar de forma procedural antes de fazer de modo orientada a objetos.

 

Ex:

<?php
   $conexao = mysqli_connect("localhost", "usuario","senha","nome do banco de dados");

Além disso, o php não permite que tenha underline no inicio da variável. Logo, $_con  não é válido.. troque para  $con ou  $con_

Compartilhar este post


Link para o post
Compartilhar em outros sites

@dif Conseguir resolver, agora deu certo só que aparece essas duas mensagens de aviso:

 

Notice: Undefined index: CIDADE in C:\Program Files\EasyPHP-Devserver-16.1\eds-www\cadastro_usuario.php on line 24
Notice: Undefined index: ESTADO in C:\Program Files\EasyPHP-Devserver-16.1\eds-www\cadastro_usuario.php on line 24

 

Sabe o que significa? Vi tem que tem algo relacionado ao form do HTML mas coloquei o POST como falam para colocar.

 

PHP

$sql = "INSERT INTO usuarios (nome,endereco,bairro,cep,cidade,estado,email) VALUES";
	$sql .= "('{$_POST['NOME']}','{$_POST['ENDERECO']}','{$_POST['BAIRRO']}','{$_POST['CEP']}',";
	$sql .= "'{$_POST['CIDADE']}','{$_POST['ESTADO']}','{$_POST['EMAIL']}')";
	$res = $con->query($sql);

HTML

<form name="usr" type="submit" value="submit" method="POST" ACTION="cadastro_usuario.php">

 

IGNORE A DUVIDA ACIMA!

Resolvi usando a função isset

if (isset($_POST['sql'])) { 
	$sql = "INSERT INTO usuarios (nome,endereco,bairro,cep,cidade,estado,email) VALUES";
	$sql .= "('{$_POST['NOME']}','{$_POST['ENDERECO']}','{$_POST['BAIRRO']}','{$_POST['CEP']}',";
	$sql .= "'{$_POST['CIDADE']}','{$_POST['ESTADO']}','{$_POST['EMAIL']}')";
	$res = $con->query($sql);
	if($res===FALSE)	{
		echo "Erro na inclusão do usuario... " . $con->error . "<br/>{$sql}";
		die();
	} else {
		echo	$con->affected_rows . " Registro(s) incluído(s) com Sucesso<br/>";
	}
}

Tópico resolvido, obrigado pela ajuda!

Editado por Diego TJS
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Diego TJS Só para não deixar a dúvida sem resposta, assim podendo os outros usarem como solução!

O erro em específico diz que as variáveis CIDADE e ESTADO não foram definidas, ou seja, elas estão vazias. 

A função isset() testa justamente se a variável está vazia ou não. Note que Nulo não é vazio.

 

Quando se usa a parte do formulário e a parte que recebe os dados do formulário no mesmo arquivo  você precisa usar o isset() para testar pois como os dados ainda não foram submetidos a variável está vazia.

 

Recomendação: Sempre separe o que recebe dos formulários.

Por exemplo contato.php Conterá o formulário e a estrutura html e  no action do form você envia os dados para outro arquivo  recebeDados.php  por exemplo. Neste você insere somente o código php sem o html..  e por aí vai..

 

Com isso abre possibilidade futuramente para usar a técnica ajax em jQuery e fazer requisições assíncronas!(eliminar o refresh da página)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×