Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Skellton

PHP erro conexão com MySQL

Recommended Posts

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 :

3343.JPG?1415213276

123324.JPG?1415213322

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

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

@ExtremsX
coloquei 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 db
Entro de boa sem erro!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

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

 

Notice: Trying to get property of non-object in C:\xampp\htdocs\member\join\re.php on line 32
Sua 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

 

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 30

Warning: PDOStatement::fetch() expects parameter 1 to be long, string given in C:\xampp\htdocs\member\join\re.php on line 30

Notice: Trying to get property of non-object in C:\xampp\htdocs\member\join\re.php on line 32
Sua conta foi criada com exito! Bom jogo

Compartilhar este post


Link para o post
Compartilhar em outros sites

@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 33
Sua conta foi criada com exito! Bom jogo

 

 

Linha 33:

if ($result->total) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.