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

blasted

PHP & SQL - problemas com inserção de dados

6 mensagens neste tópico

boas, venho por este meio pedir ajuda. Em primeiro lugar devo dizer que estou apenas a iniciar em php/sql, e por isso, o meu código poderá parecerum bocado diferente.

Estou a elaborar um formulário de inscrições, o qual não está a funcionar correctamente. Não sei porque não insere dados na DB, e depois, se possível, gostaria de saber como codificar a pw em MD5 e guardá-la na bd.

Aqui está o código.

<?php
include("data/vars.php");

$db = mysql_connect($servername, $username, $password);

if(!mysql_select_db("test1", $db))
{
$qwerty = 1;
mysql_close($db);
include("error_1.php");
die();
}

$sql = "INSERT INTO users2 (first_name, age, username, passwd, location, telephone, email, messenger, clan, notes) VALUES ($_POST'[first_name]',$_POST'[age]',$_POST'[username]',$_POST'[passwd]',$_POST'[location]',$_POST'[telephone]',$_POST'[email]',$_POST'[messenger]',$_POST'[clan]',$_POST'[notes]')";

if (!mysql_query($sql))
{
$qwerty = 2;
mysql_close($db);
include("error_1.php");
die();
}

include("regdone.php");
mysql_close($db);
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta assim

$sql = "INSERT INTO users2 (first_name, age, username, passwd, location, telephone, email, messenger, clan, notes) VALUES ('".$_POST['first_name']."','".$_POST['age']."','".$_POST['username']."','".$_POST['passwd']."','".$_POST['location']."','".$_POST['telephone']."','".$_POST['email']."','".$_POST['messenger']."','".$_POST['clan']."','".$_POST['notes']."')";

No entanto este código é muito inseguro já que permite SQL injection. Aconselho-te a ler um artigo sobre isso no blog que o deathseeker25 tem na signature :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usa também a função addslashes(previne a inserção de caracteres especiais que permitam o acesso malicioso á bd):

addslashes($_POST['first_name'])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usa também a função addslashes(previne a inserção de caracteres especiais que permitam o acesso malicioso á bd):

addslashes($_POST['first_name'])

Cof cof. A mysql_real_escape_string($blah) é muito mais fiável.

Ah, e aconselho a leitura deste post. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

usa também a função addslashes(previne a inserção de caracteres especiais que permitam o acesso malicioso á bd):

addslashes($_POST['first_name'])

Cof cof. A mysql_real_escape_string($blah) é muito mais fiável.

Ah, e aconselho a leitura deste post. :P

qual a diferença entre ambas as funções?
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Citação

Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).

Citação

Escapes special characters in the unescaped_string, taking into account the current character set of the connection so that it is safe to place it in a mysql_query(). If binary data is to be inserted, this function must be used.

mysql_real_escape_string() calls MySQL's library function mysql_real_escape_string, which prepends backslashes to the following characters: \x00, \n, \r, \, ', " and \x1a.

This function must always (with few exceptions) be used to make data safe before sending a query to MySQL.

:P

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