Ir ao conteúdo

Posts recomendados

Postado

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. 

  • Moderador
Postado

@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.

 

 

Postado

@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;
	}

 

  • Moderador
Postado

@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_

Postado

@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!

  • Curtir 1
  • Moderador
Postado

@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)

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!