Skellton 1 Denunciar post Postado Novembro 5, 2014 Boa tarde, pessoal , estou com um poblema Quando eu crio a conta no meu registro php , ele apareçe a messagem que eu coloquei , que foi criada , porem ele não cria a conta na db so pareçe a mensagem. Meu codico php : <?php $conf['db']['server'] = 'localhost'; $conf['db']['dbase'] = 'pbbeta'; $conf['db']['user'] = 'root'; $conf['db']['pass'] = '123456'; $conf['db']['port'] = '3306'; $conf['use_encryption'] = true; $conf['db']['dsn'] = sprintf("mysql:host=%s;dbname=%s", $conf['db']['server'], $conf['db']['dbase']); try { $db = new PDO($conf['db']['dsn'], $conf['db']['user'], $conf['db']['pass']); } catch(PDOException $e) { die('Servidor Ofiline,Tente Mais Tarde.'); } if( isset( $_POST['submit'] ) ) { if( strlen( $_POST['username'] ) < 3 || strlen( $_POST['username'] ) > 15 ) echo 'Seu Usuario e muito longo.'; elseif( !ctype_alnum( $_POST['username'] ) ) echo 'Por favor use Caracters permitidos ( a-Z 0-9 ).'; elseif( strlen( $_POST['pass1'] ) < 3 || strlen( $_POST['pass1'] ) > 15 ) echo 'Sua senha e muito longa'; elseif( strcmp( $_POST['pass1'] , $_POST['pass2'] ) != 0 ) echo 'As duas Senhas tem de serem iguais.'; else { $dbh = $db->prepare("SELECT accounts FROM accounts WHERE login = :login"); $dbh->bindParam(':login', $_POST['username'], PDO::PARAM_STR); $dbh->execute(); $result = $dbh->fetch(); if( $result[0] != 0 ) echo 'Usuario ja em uso, por favor escolha outro.'; else { ( $conf['use_encryption'] ? $pass = md5( $_POST['pass1'] ) : $pass = $_POST['pass1'] ); $dbh = $db->prepare("INSERT INTO accounts (login,password,email) VALUES(:login,:password,email)"); $dbh->bindParam(':login', $_POST['username'], PDO::PARAM_STR); $dbh->bindParam(':password', $pass , PDO::PARAM_STR); $dbh->execute(); echo 'Sua conta foi criada com exito! '; echo 'Bom jogo'; } } } else echo ' <form method="post"> <table> <tr> <td>Login</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Senha</td> <td><input type="password" name="pass1" /></td> </tr> <tr> <td>Confirmacao de Senha</td> <td><input type="password" name="pass2" /></td> </tr> <tr> <td><input type="submit" name="submit" value="Registrar-se" /></td> </tr> </table> </form> '; ?> Prints : então é isso quando crio a conta , os dados não vai para db! Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 Coloque assim: try { $db = new PDO($conf['db']['dsn'], $conf['db']['user'], $conf['db']['pass']); } catch(PDOException $e) { die('Erro: ' . $e->getMessage()); } Assim vamos ver se o problema é erro de conexão mesmo Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 5, 2014 @ExtremsX Quando eu coloquei o seu codico deu esse erro : "Servidor Ofiline,Tente Mais Tarde." Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 Então você não trocou, tem de trocar o teu código por esse que te passei Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 5, 2014 @ExtremsX estou meio confuso onde tenho que colocar ? Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 try { $db = new PDO($conf['db']['dsn'], $conf['db']['user'], $conf['db']['pass']); } catch(PDOException $e) { die('Servidor Ofiline,Tente Mais Tarde.'); } Troque esse trecho ai pelo o que eu mandei Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 5, 2014 @ExtremsXcoloquei seu codico como vocé disse , e não deu erro! entro normalmente na pagina de registro!fui tentar registrar , ele apareçe que registra, porem não criar a conta na dbEntro de boa sem erro! Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 Tente: <?php $conf['db']['server'] = 'localhost'; $conf['db']['dbase'] = 'pbbeta'; $conf['db']['user'] = 'root'; $conf['db']['pass'] = '123456'; $conf['db']['port'] = '3306'; $conf['use_encryption'] = true; $conf['db']['dsn'] = sprintf("mysql:host=%s;dbname=%s", $conf['db']['server'], $conf['db']['dbase']); try { $db = new PDO($conf['db']['dsn'], $conf['db']['user'], $conf['db']['pass']); } catch (PDOException $e) { die('Servidor Ofiline,Tente Mais Tarde.'); } if (isset($_POST['submit'])) { if (strlen($_POST['username']) < 3 || strlen($_POST['username']) > 15) echo 'Seu Usuario e muito longo.'; else if (!ctype_alnum($_POST['username'])) echo 'Por favor use Caracters permitidos ( a-Z 0-9 ).'; else if (strlen($_POST['pass1']) < 3 || strlen($_POST['pass1']) > 15) echo 'Sua senha e muito longa'; else if (strcmp($_POST['pass1'], $_POST['pass2']) != 0) echo 'As duas Senhas tem de serem iguais.'; else { $dbh = $db->prepare('SELECT COUNT(*) AS total FROM accounts WHERE login=?'); $dbh->execute(array($_POST['username']); $result = $dbh->fetch(); if ($result->total) { echo 'Usuario ja em uso, por favor escolha outro.'; } else { $pass = $conf['use_encryption'] ? md5($_POST['pass1']) : $_POST['pass1']; $dbh = $db->prepare("INSERT INTO accounts (login, password, email) VALUES(?, ?, '')"); $dbh->execute(array($_POST['username'], $pass)); echo 'Sua conta foi criada com exito! '; echo 'Bom jogo'; } } exit; } ?> <form method="post"> <table> <tr> <td>Login</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Senha</td> <td><input type="password" name="pass1" /></td> </tr> <tr> <td>Confirmacao de Senha</td> <td><input type="password" name="pass2" /></td> </tr> <tr> <td><input type="submit" name="submit" value="Registrar-se" /></td> </tr> </table> </form> Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 5, 2014 Tente: <?php $conf['db']['server'] = 'localhost'; $conf['db']['dbase'] = 'pbbeta'; $conf['db']['user'] = 'root'; $conf['db']['pass'] = '123456'; $conf['db']['port'] = '3306'; $conf['use_encryption'] = true; $conf['db']['dsn'] = sprintf("mysql:host=%s;dbname=%s", $conf['db']['server'], $conf['db']['dbase']); try { $db = new PDO($conf['db']['dsn'], $conf['db']['user'], $conf['db']['pass']); } catch (PDOException $e) { die('Servidor Ofiline,Tente Mais Tarde.'); } if (isset($_POST['submit'])) { if (strlen($_POST['username']) < 3 || strlen($_POST['username']) > 15) echo 'Seu Usuario e muito longo.'; else if (!ctype_alnum($_POST['username'])) echo 'Por favor use Caracters permitidos ( a-Z 0-9 ).'; else if (strlen($_POST['pass1']) < 3 || strlen($_POST['pass1']) > 15) echo 'Sua senha e muito longa'; else if (strcmp($_POST['pass1'], $_POST['pass2']) != 0) echo 'As duas Senhas tem de serem iguais.'; else { $dbh = $db->prepare('SELECT COUNT(*) AS total FROM accounts WHERE login=?'); $dbh->execute(array($_POST['username']); $result = $dbh->fetch(); if ($result->total) { echo 'Usuario ja em uso, por favor escolha outro.'; } else { $pass = $conf['use_encryption'] ? md5($_POST['pass1']) : $_POST['pass1']; $dbh = $db->prepare("INSERT INTO accounts (login, password, email) VALUES(?, ?, '')"); $dbh->execute(array($_POST['username'], $pass)); echo 'Sua conta foi criada com exito! '; echo 'Bom jogo'; } } exit; } ?> <form method="post"> <table> <tr> <td>Login</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>Senha</td> <td><input type="password" name="pass1" /></td> </tr> <tr> <td>Confirmacao de Senha</td> <td><input type="password" name="pass2" /></td> </tr> <tr> <td><input type="submit" name="submit" value="Registrar-se" /></td> </tr> </table> </form> @ExtremsX Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\member\join\re.php on line 29 Parse error: syntax error, unexpected '$result' (T_VARIABLE) in C:\xampp\htdocs\member\join\re.php on line 30 Na linha 29 : $dbh->execute(array($_POST['username']); Na linha 30: $result = $dbh->fetch(); Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 5, 2014 na linha $dbh->execute(array($_POST['username']); mude para $dbh->execute(array($_POST['username'])); Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 5, 2014 @ExtremsX Notice: Trying to get property of non-object in C:\xampp\htdocs\member\join\re.php on line 32Sua conta foi criada com exito! Bom jogo Linha 32: if ($result->total) { Ele da esse erro e não cria a conta na db! Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 6, 2014 Da um var_dump em $result Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 6, 2014 @ExtremsX não sei , se eu fis certo ese var_dump mais da esse erro agora Notice: Use of undefined constant var_dump - assumed 'var_dump' in C:\xampp\htdocs\member\join\re.php on line 30Warning: PDOStatement::fetch() expects parameter 1 to be long, string given in C:\xampp\htdocs\member\join\re.php on line 30Notice: Trying to get property of non-object in C:\xampp\htdocs\member\join\re.php on line 32Sua conta foi criada com exito! Bom jogo Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 6, 2014 var_dump($variavel); Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 6, 2014 @ExtremsX array(2) { ["total"]=> string(1) "0" [0]=> string(1) "0" } Notice: Trying to get property of non-object in C:\xampp\htdocs\member\join\re.php on line 33Sua conta foi criada com exito! Bom jogo Linha 33: if ($result->total) { Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 6, 2014 troque de if ($result->total) { para if ($result['total']) { Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 6, 2014 @ExtremsX array(2) { ["total"]=> string(1) "0" [0]=> string(1) "0" } Sua conta foi criada com exito! Bom jogo Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 6, 2014 Agora tira o var_dump que deve está funcionando né? Compartilhar este post Link para o post Compartilhar em outros sites
Skellton 1 Denunciar post Postado Novembro 6, 2014 @ExtremsX Tirei a var_dump, fui tentar criar a conta , ai apareçeu "Sua conta foi criada com exito! Bom jogo" Mais a conta na vai para db! eu upei minha db do mysql Download : http://systempblackout.wc.lt/UP/pbbeta.sql Compartilhar este post Link para o post Compartilhar em outros sites
ExtremsX 58 Denunciar post Postado Novembro 6, 2014 Veja se quais campos são obrigatários na tabela. Use o PHPMyAdmin e insira uma conta no banco de dados, ele vai gerar um SQL de INSERT, poste ele aqui e vamos usar ele para cadastro. Compartilhar este post Link para o post Compartilhar em outros sites