Ir ao conteúdo

Posts recomendados

Postado

Galera estou com um erro quando tento injetar no meu banco de dados aqui esta meu codigo 

<DOCTYPE html>

<html>

<head>
<title>Cadastrando</title>

</head>

<body>

<?php
$host = "localhost";
$user = "clay";
$pass = "ccaldasdan10";
$banco = "cadastro";
$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
mysqli_select_db($banco) or die (mysql_error());

?>

<?php
$nome=$_POST['nome'];
$login=$_POST['login'];
$email=$_POST['email'];
$senha=$_POST['senha'];
$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome',$login',$email',$senha')");


?>

</body>

</html>

o erro que aparece é o seguinte 

Warning: mysqli_select_db() expects exactly 2 parameters, 1 given in C:\wamp64\www\cadastro\cadastrando.php on line 18

se alguem puder me esclarecer o erro eu agradeço 

 

  • Moderador
Postado

@Clay1995  O PHP, não usa mais a função mysqli_select_db().

 Tornou-se obsoleto.

 

Troque sua conexão de:

 

$host = "localhost";
$user = "clay";
$pass = "ccaldasdan10";
$banco = "cadastro";
$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());
mysqli_select_db($banco) or die (mysql_error());

Para:

$conexao = mysqli_connect("localhost", "clay", "ccaldasdan10", "cadastro"); 

Sim, apenas uma linha. Pois a sintaxe é:

mysqli_connect("localhost", "usuario", "senha", "nome do banco de dados"); 

http://php.net/manual/pt_BR/function.mysqli-connect.php

Postado
7 minutos atrás, DiF disse:

$conexao = mysqli_connect("localhost", "clay", "ccaldasdan10", "cadastro");

fiz o que disse mais o erro persiste o mesmo erro

  • Moderador
Postado

@Clay1995 Não tem como persistir o erro. Se fizer como disse acima, você vai eliminar a função que está dando o erro.

Então se há erro, é outro. 

Se quiser pode postar print do problema.

 

Em tempo: Não recomendo o xampp ou o Wamp64.     Use o EasyPHP DEV server 17(versão mais recente).

 

Postado

o erro aparece estar na linha 18 maninho dizendo que espera mais de 1 parâmetro mais eu não consigo saber qual parâmetro é este

  • Moderador
Postado

@Clay1995 Aff... não precisa saber que parâmetro é esse... basta colocar aqui o erro de novo, seja por print ou por texto.

 

Mas sem saber que erro é, não posso ajudar.  SE e somente SE você usou a forma  de uma linha do mysqli que eu mencionei, o erro é obrigado a não ser o mesmo. Pois eliminamos a função que estava dando erro.. portanto o erro é em outro lugar do seu código.

Mas para saber, preciso ver seu código de novo de como está agora E de preferência  postar uma imagem do problema para que entendimento seja mais eficiente.

 

Sem isso, não há como ajudar. 

 

Seria a mesma coisa que você se sentir mal, ir no médico, ele perguntar o que você sente e você dizer:  não sei, mas to passando mal. Rsrs

 

 

PS: por descargo de consciência,  no navegador tente zerar o cache com CTRL + F5, algumas vezes. 

Postado

Você deve informar a conexão na função mysqli_select_db.

mysqli_select_db($conexao, $banco) or die (mysqli_error($conexao));

 

Outro detalhe é que no tratamento de erros você está está misturando a biblioteca mysqli com a mysql.

 

Como você está utilizando a biblioteca mysqli a linha:

$conexao = mysqli_connect($host, $user, $pass) or die (mysql_error());

Deve ser alterada para:

$conexao = mysqli_connect($host, $user, $pass) or die (mysqli_connect_error());

e a linha do erro também deve ter seu tratamento de erros alterado de:

mysqli_select_db($banco) or die (mysql_error());

Para:

mysqli_select_db($conexao, $banco) or die (mysqli_error($conexao));

 

Também encontrei erros na sua consulta no banco as aspas não estão corretas o código a seguir:

$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome',$login',$email',$senha')");

Deve ser alterado para:

$sql = mysqli_query("INSERT INTO usuarios(nome, login, email, senha)VALUES('$nome','$login','$email','$senha')");

 

Além disso você também deve se proteger de vulnerabilidades como sql injection alterando o código a seguir de:

$nome=$_POST['nome'];
$login=$_POST['login'];
$email=$_POST['email'];
$senha=$_POST['senha'];

Para:

$nome=mysqli_escape_string($conexao, $_POST['nome']);
$login=mysqli_escape_string($conexao, $_POST['login']);
$email=mysqli_escape_string($conexao, $_POST['email']);
$senha=mysqli_escape_string($conexao, $_POST['senha']);

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 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...