Jump to content


Photo

Erro Mysql


  • Faça o login para participar
5 replies to this topic

#1 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 15/04/2007, 13:10

Eu fiz um negócio para ele registrar o ID do membro na tabela perfil. Porém, ele retorna erro de mysql_fetch_array e eu não sei aonde está o erro...
$inserir = mysql_query("INSERT INTO login (uid,nome,login,email,senha,converge_s,rank) VALUES ('$uid','$nome','$login','$email','$password_converge','$x_converge','1');");
if($inserir) {
	$result = 1;
} else {
	$result = 0;
}
$x = mysql_query("SELECT * FROM login WHERE uid={$uid}");
$xx = mysql_fetch_array($x);
$xe = $xx['id'];
$inserir1 = mysql_query("INSERT INTO perfil(uid,member_id,relacionamento,aniversario,view_mail,site,cidade,estado,pais,pseudonimo,livros,autores,gostos,views) VALUES ('$uid','$xe','','','$view_email','','','','','$pseudonimo','','','','0')") or die(mysql_error());
if($inserir1 == 1){
	$result1 = 1;
} else {
	$result1 = 0;
}

Ele acusa o seguinte erro:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tresbach/public_html/l/lp/inscricao.php on line 123

Linha 123:
$xx = mysql_fetch_array($x);
O que eu posso fazer para ele pegar o dado em vez de retornar erro? =/

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 16/04/2007, 02:02

Use mysql_error() para descobrir o que ocorreu na execução da query.
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 16/04/2007, 12:50

O problema...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tresbach/public_html/l/lp/inscricao.php on line 123
Cadastrando...
Houve um erro ao cadastrar você. O erro é:


Ele executa o IF dos erros do formulário... E em vez de ir direto para a execução servidor, etc, ele vai para a execução de erro de verificação, o ELSE. Porém... Ele não retorna mensagem alguma de erro. E ele acusa de erro na linha 123, que é lá em baixo. ($xx = mysql_fetch_array($x);). E ele ainda registra o cadastro no MYSQL, como se não houvesse erro...
O que pode estar havendo?

Código:
<?php
$page_x = "http://www.l.deep-cottage.org/lp/pages/inscricao";
include("header.php");
$act = $_GET['act'];
$nome_login = $HTTP_COOKIE_VARS["login"];
$pass = $HTTP_COOKIE_VARS["senha"];
$userid = $HTTP_COOKIE_VARS["uid"];
$confirmacao = mysql_query("SELECT login, senha, uid, id FROM login WHERE login = '$nome_login' AND senha = '$pass'");
$contagem = mysql_num_rows($confirmacao);
$row = mysql_fetch_array($confirmacao);
if($contagem ) {
echo "Você já possui um registro.";
} else {
if ( $act == "" ) { 
?>
<div class="h1">Formulário de inscrição</div>
<div class="h2">
Todos os campos marcados com * são <b>obrigatórios</b>. Os dados poderão ser alterados depois do cadastro(exceto o login).<br /><br />
<form name="inscricao" method="post" action="http://www.l.deep-cottage.org/lp/inscricao.php?act=cad">
&nbsp;<strong>Login:*</strong><br />
&nbsp;<input name="login" type="text" id="login" size="40"><br />
&nbsp;<strong>Senha:*</strong><br />
&nbsp;<input name="senha" type="password" id="senha" size="40"><br />
&nbsp;<strong>Repita a Senha:*</strong><br />
&nbsp;<input name="senha2" type="password" id="senha2" size="40"><br />
&nbsp;<strong>Nome:*</strong><br />
&nbsp;<input name="nome" type="text" id="nome" size="40"><br />
&nbsp;<strong>Pseudônimo:*</strong><br />
&nbsp;<input name="pseudonimo" type="text" id="pseudonimo" size="40"><br />
&nbsp;<strong>E-mail:*</strong><br />
&nbsp;<input name="email" type="text" id="email" size="40"><br />
&nbsp;<strong>Mostrar email?</strong><br />
&nbsp;<input type="radio" name="view_email" value="sim" checked="checked"/>Sim  <input type="radio" name="view_email" value="nao" />Não<br /><br />
<input type="submit" name="Submit" value="Cadastrar">
</form>
</div>
<?php }
$act = $_GET['act'];
if ( $act == "cad" ) {
$nome = $_POST['nome']; 
$email = $_POST['email']; 
$login = $_POST['login']; 
$senha = $_POST['senha']; 
$pseudonimo = $_POST['pseudonimo']; 
$senha2 = $_POST['senha2'];
$view_email = $_POST['view_email']; 
$x_converge = salt(10);
$erros = "";
if( flag_spam($login) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $login = anti_injection(strip_tags($login));
}
$pesquisar = mysql_query("SELECT login FROM `login` WHERE login = '$login'");
$contagem = mysql_num_rows($pesquisar);
if ( $contagem == 1 ) { $errors .= "Login escolhido já cadastrado.<br>"; }
if ( $login == "" ) { $errors .= "Você não digitou um login<br>"; }
if ( $senha == "" ) { $errors .= "Você não digitou uma senha<br>"; }
if ( $senha != $senha2 ) { $errors .= "Você digitou 2 senhas diferentes.<br>"; }
if ( $nome == "" ) { $errors .= "Você não digitou seu nome.<br>"; }
if ( $email == "" ) { $errors .= "Você não digitou seu email.<br>"; }
if ( $errors == "" ) {
if( flag_spam($nome) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $code = anti_injection(strip_tags($nome));
}
if( flag_spam($email) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $email = anti_injection(strip_tags($email));
}
if( flag_spam($nome) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $nome = anti_injection(strip_tags($nome));
}
if( flag_spam($pseudonimo) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $pseudonimo = anti_injection(strip_tags($pseudonimo));
}
if( flag_spam($view_email) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $view_email = anti_injection(strip_tags($view_email));
}
if( flag_spam($senha) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $senha = anti_injection(strip_tags($senha));
}
if( flag_spam($senha2) ){
echo "<div>Erro...</div>";
  echo $msg;
return;
}else{
  $senha2 = anti_injection(strip_tags($senha2));
}
$password_converge = md5(md5($x_converge) . md5($senha));
$uid = md5(md5($login) . md5($nome) . md5($password_converge) . md5(time()) . md5(date("l")) . md5(rand(5,2166)) . md5($x_converge));
$inserir = mysql_query("INSERT INTO login (uid,nome,login,email,senha,converge_s,rank) VALUES ('$uid','$nome','$login','$email','$password_converge','$x_converge','1');");
if($inserir) {
	$result = 1;
} else {
	$result = 0;
}
$x = mysql_query("SELECT * FROM login WHERE uid={$uid}");
$xx = mysql_fetch_array($x);
$xe = $xx['id'];
$inserir1 = mysql_query("INSERT INTO perfil(uid,member_id,relacionamento,aniversario,view_mail,site,cidade,estado,pais,pseudonimo,livros,autores,gostos,views) VALUES ('$uid','$xe','','','$view_email','','','','','$pseudonimo','','','','0')") or die(mysql_error());
if($inserir1 == 1){
	$result1 = 1;
} else {
	echo mysql_error($inserir1);
}
if($result == 1 AND $result1 == 1){
  $resultado = "<h5>Obrigado!</h5><br> Você foi cadastrado com sucesso!<br /> Preencha o formulário acima e logue-se.";
} else {
  $resultado = "Houve um erro no servidor ao cadastrar você.";
}
  $resultado = "Houve um erro ao cadastrar você. O erro é: $errors ";
}
echo "<div>Cadastrando...</div>";
echo $resultado;
}
}
include("footer.php");
?>

Grato,

#4 offspring

offspring

    O_o

  • Ex-Admins
  • 946 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP

Posted 16/04/2007, 14:14

$x = mysql_query("SELECT * FROM login WHERE uid={$uid}");

ja tentou imprimir o conteudo desse select pra ver o que ele retorna?

#5 Draziw

Draziw

    Novato no fórum

  • Usuários
  • 13 posts
  • Sexo:Não informado

Posted 16/04/2007, 14:24

Já tentou mudar isso:

$inserir = mysql_query("INSERT INTO login (uid,nome,login,email,senha,converge_s,rank) VALUES ('$uid','$nome','$login','$email','$password_converge','$x_converge','1');");


para isso:

$inserir = mysql_query("INSERT INTO login (uid,nome,login,email,senha,converge_s,rank) VALUES ('$uid','$nome','$login','$email','$password_converge','$x_converge','1')");


?

Edição feita por: Draziw, 16/04/2007, 14:25.


#6 Inu

Inu

    Veterano

  • Usuários
  • 1138 posts
  • Sexo:Masculino
  • Localidade:Canela, Rio Grande do Sul, Brasil

Posted 16/04/2007, 15:14

Agora deu certo ao que parece.. O UID é criado por md5. fui ver as funções do mysql no php.net, daí vi mysql_fetch_assoc, tentei ela e deu certo o_O
obrigado a todos que tentaram me ajudar!
pensava que nunca ia dar certo...




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq