Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema di Connessione al DB

    Ciao ragazzi,

    ho questo problema che mi tiene bloccato da due giorni e non riesco ad uscirne...
    La premessa è d'obbligo: sviluppo Java e mi sono avvicinato a PHP solo da pochi mesi, dunque ho deciso di tenere un approccio Oop.

    La mia struttura è la seguente:

    una root principale contenente le varie pagine PHP, una root in cui sto via via definendo le mie classi, una root "datasource" per le chiamate asincrone fatte con Jquery e una root "config" con un solo file PHP che ha al suo interno una classe DATABASE che fa la connessione al mio DB my SQL.

    Veniamo alla stranezza: dalla pagina di login, inserisco username e password e parte una chiamata Ajax al file datasource/login.php per analizzare l'utenza, il codice è questo:

    Codice PHP:
    <?php 
    @include '../config/config.php'
    @include 
    '../classes/users.php';  

    session_start();  

    $userName $_POST["username"]; 
    $password $_POST["password"];  
    $strExists '';  
    $userClass = new Users();  

    if (
    $userClass->findByUsernameAndPassword($userName,$password)) {     

    $user $userClass->findByUsernameAndPassword($userName,$password);     
    $userName $user->getUserName();     
    $userId $user->getUserId();     
    $userPassword $user->getPassword();               
    $_SESSION['USERNAME'] = $userName;     
    $_SESSION['USERID'] = $userId;     
    $_SESSION['LOGIN_STATUS'] = true;          
    $strExists 'Y';      
    } else {     
    $strExists 'N'
    }  echo 
    $strExists;  
    ?>
    e il tutto funziona correttamente.

    accedo alla pagina index.php che in testa ha questi due include
    Codice PHP:
    <?php 
    @include 'config/config.php'
    @include 
    'classes/tactics.php';
    ?>
    e le chiamate funzionano correttamente anch'esse. Da questa pagina, sempre tramite Ajax e Json accedo ad un altro file, chiamato datasource/playerList.php che è costruito sulla falsa riga di login.php e qui mi si scatena l'errore: Json ovviamente non riesce a parsare i dati perchè non riceve nulla indietro e la causa è la seguente

    Error: Access denied for user ''@'localhost' (using password: NO), ottenuta chiamando l'url direttamente da browser.

    Ora quello che io chiedo a tutti voi è: per quale motivo su una struttura perfettamente identica come quella che mi consente il login la chiamata funziona e invece in questo caso mi crasha tutto??

    Spero che possiate illuminarmi perchè non so più dove sbattere la testa! Grazie a tutti.

  2. #2
    Il problema sembra essere l'utenza che ho ha i privilegi di accesso al DB. Probabilmente nella pagina che ti da errore non arrivano correttamente i dati di username e password sell'utente del DB. Infatti nel messaggio di errore prima di "@localhost" dovrebbe esserci in nome dell'utente.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Originariamente inviato da satifal
    Il problema sembra essere l'utenza che ho ha i privilegi di accesso al DB. Probabilmente nella pagina che ti da errore non arrivano correttamente i dati di username e password sell'utente del DB. Infatti nel messaggio di errore prima di "@localhost" dovrebbe esserci in nome dell'utente.
    Infatti su quello non ci piove. Quello che non riesco a capire è come mai, data una struttura simile che mi fa correttamente il login al sito, in questa invece ho difficoltà.

    Cambia qualcosa secondo voi se nella prima circostanza ajax mi restituisce una stringa e nella seconda mi faccio tornare un oggetto json?

    Io credo proprio di no perchè mi sembra evidente che l'errore è a monte

  4. #4

    Re: Problema di Connessione al DB

    Originariamente inviato da nellif84
    Error: Access denied for user ''@'localhost' (using password: NO), ottenuta chiamando l'url direttamente da browser.
    Se chiami l'url direttamente da browser è ovvio che ti restituisca quell'errore. Se, come hai detto, playerList.php è uguale a login.php come pretendi che vengano recuperati i valori username e password se invochi la pagina direttamente dal browser.
    Essi vengono passati tramite POST:

    Codice PHP:
    $userName $_POST["username"]; 
    $password $_POST["password"]; 
    che ovviamente è vuoto!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5

    Re: Re: Problema di Connessione al DB

    Originariamente inviato da satifal
    Se chiami l'url direttamente da browser è ovvio che ti restituisca quell'errore. Se, come hai detto, playerList.php è uguale a login.php come pretendi che vengano recuperati i valori username e password se invochi la pagina direttamente dal browser.
    Essi vengono passati tramite POST:

    Codice PHP:
    $userName $_POST["username"]; 
    $password $_POST["password"]; 
    che ovviamente è vuoto!
    No no scusami mi sono espresso male, è uguale a login come logica, nel senso che il file chiamante si trova nella root principale mentre il chiamato nella sottocartella "datasource".

    I parametri che attende in ingresso sono altri e per fare la prova diretta glieli passo direttamente

    Sorry, mi sono spiegato male!

  6. #6

    Re: Re: Re: Problema di Connessione al DB

    Tra l'altro i parametri username e password non sono quelli per la connessione a MySQL ma ovviamente quelli dell'utente che vuole effettuare il login sul sito.

  7. #7
    Per provare a venirne fuori dovresti postare il codice di tutti gli script coinvolti altrimenti è difficile capire quale possa essere il problema.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Originariamente inviato da satifal
    Per provare a venirne fuori dovresti postare il codice di tutti gli script coinvolti altrimenti è difficile capire quale possa essere il problema.
    posterò tutto quanto stasera non appena rientro dal lavoro!

    Ti ringrazio molto per l'assistenza!

  9. #9
    Dato che ieri sera avevo già postato la pagina login.php che è perfettamente funzionante,
    riparto col codice dalla pagina index.php, funzionante anch'essa e dalla quale parte la chiamata al terzo file che si occupa di caricare i dati, ovvero playerList.php nella directory "datasource"


    Codice PHP:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml2/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

    <?php

    @include 'config/config.php';
    @include 
    'classes/teams.php';

    session_start();

    if(!isset(
    $_SESSION['LOGIN_STATUS'])){
          
    header('location:login.php');
    }

    $teamClass = new Teams();


    ?>
    <head>
        <title>
            Legadrusilla.it
        </title>
    </head>
    <link rel="stylesheet" href="css/page.css" type="text/css" />

    <link rel="stylesheet" href="css/font-awesome.css">
    <link href="js/jquery-ui-1.9.2.custom/css/redmond/jquery-ui-1.9.2.custom.css" rel="stylesheet" type="text/css" />
    <!--[if IE 7]>
      <link rel="stylesheet" href="css/font-awesome-ie7.css">
    <![endif]-->

    <style type="text/css" media="screen">@import "css/frame.css";</style>

        

    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.9.2.custom/js/jquery-ui-1.9.2.custom.min.js"></script>
    <script type="text/javascript" src="js/comboBox.js"></script>
    <script type="text/javascript" src="js/sdmenu.js"></script>
    <script type="text/javascript" src="js/jsClock.js"></script>
    <script type="text/javascript" src="js/choosePlayers.js"></script>

    <script type="text/javascript">
        
        $(document).ready(function() {
            
            //orologio
            setInterval('updateClock()', 1000);
            
            var teamId = '<?php echo($_SESSION['TEAMID']) ?>';
            
            var backgroundUrl = 'url(images/kits/'+teamId+'.png)';
            
            $('.teamInfo').css('backgroundImage',backgroundUrl);
        
        });
        
        
        
        var myMenu;
        
        window.onload = function() {
            myMenu = new SDMenu("my_menu");
            myMenu.oneSmOnly = true;
            myMenu.init();        
            
        };

        /*$(function() {
            if ($.browser.msie && $.browser.version.substr(0,1)<7) {            
                $('.tooltip').mouseover(function(){              
                    $(this).children('span').show();                
                }).mouseout(function(){
                    $(this).children('span').hide();
                })
            }
        }); */
    </script>
    <body>
    <div class="alertWindow">
    </div>
    <div id="content">
        
        <div class="page_title">
            [url="home.php"]Home[/url] <span>\</span> [url="teamList.php"]<?php echo($_SESSION['TEAMNAME']) ?> [/url]<span>\</span> Info
        </div>
        
        <div class="page_content">
                <div class="teamInfo">
                    
                </div>
        </div>
    </div>
    <div id="header">
        <div id="controlPanel">
            <ul>
                [*][url="#"]<i class="icon-home icon-large">[/i][/url]
                [*][url="#"]<i class="icon-envelope icon-large">[/i]<span class="bubble">1</span>[/url]
                [*][url="#"]<i class="icon-cogs icon-large">[/i][/url]
                [*][url="#"]<i class="icon-wrench icon-large">[/i][/url]
                [*][url="#"]<i class="icon-off icon-large">[/i][/url]
            [/list]
        </div>
        <div id="profileMenu" class="profile">
            <div id="actCalendar">
                <div id="month"></div>
                <div id="day"></div>
            </div>
            <div id="clock">
            </div>
        </div>
    </div>
    <div id="sidebar">
        <div class="searchBtn">
            <form id="searchbox" action="">
                <input id="search" type="text" placeholder="Search">
                <input id="submit" type="submit" value="GO">
            </form>
        </div>
        <div style="float: left" id="my_menu" class="sdmenu">
            <div>
                <span><?php echo($_SESSION['TEAMNAME']) ?></span>
                <a class="opened"><i class="icon-folder-open">[/i]Info</a>
                [url="teamList.php"]<i class="icon-list-alt">[/i]Rosa[/url]
                [url="invioFormazione.php"]<i class="icon-pencil">[/i]Formazione[/url]
                [url="teamCalendar.php"]<i class="icon-calendar">[/i]Calendario[/url]
            </div>
            <div>
                <span>Premier League</span>
                [url="#"]<i class="icon-calendar">[/i]Calendario[/url]
                [url="#"]<i class="icon-table">[/i]Classifiche[/url]
                [url="#"]<i class="icon-trophy">[/i]Storia[/url]
                [url="#"]<i class="icon-bar-chart">[/i]Statistiche[/url]
            </div>
            <div>
                <span>LD Cup</span>
                [url="#"]<i class="icon-calendar">[/i]Calendario[/url]
                [url="#"]<i class="icon-table">[/i]Classifiche[/url]
                [url="#"]<i class="icon-trophy">[/i]Storia[/url]
                [url="#"]<i class="icon-bar-chart">[/i]Statistiche[/url]
            </div>
            <div>
                <span>LD Shield</span>
                [url="#"]<i class="icon-calendar">[/i]Calendario[/url]
                [url="#"]<i class="icon-trophy">[/i]Storia[/url]
                [url="#"]<i class="icon-bar-chart">[/i]Statistiche[/url]
            </div>
            <div>
                <span>Mercato</span>
                [url="#"]<i class="icon-book">[/i]Lista calciatori[/url]
                [url="#"]<i class="icon-legal">[/i]Storia trattative[/url]
                [url="#"]<i class="icon-bar-chart">[/i]Statistiche[/url]
            </div>
        </div>
        
    </div>
    </body>
    </html>
    Essendo ancora in fase embrionale, il codice è discretamente incasinato e me ne scuso.
    Però quello che interessa maggiormente è contenuto nel file javascript "js/choosePlayers.js"
    ed è una semplice chiamata ajax (funzionante) al terzo file, playerList.php dentro "datasource".

    ed ecco anche la parte iniziale del codice di questa pagina:
    Codice PHP:

    @include '../config/config.php';
        
    session_start();

    $getTeam "(SELECT TEAMID FROM ldvwteams WHERE USERID = ".$_SESSION['USERID'].")";
        
    $query = @mysql_query($getTeam) or die(ERROR.mysql_error()); 
    Mi sono limitato a queste poche righe perchè l'errore avviene non appena eseguo la query.

    e questo infine è il file incriminato, il config.php
    Codice PHP:

        define
    ('HOST''localhost');
        
    define('USER''******');
        
    define('PASSWORD''');
        
    define('DBNAME''mioDB');
      
        
    define('DBERROR''Database internal error: ');
        
    define('CONNECTERROR''Connection error: ');
        
    define('ERROR''Error: ');
        
        class 
    DATABASE {
            
            function 
    __construct() {
              
    $connection = @mysql_connect(HOST,USER,PASSWORD) or die(CONNECTERROR.mysql_error());
          @
    mysql_select_db(DBNAME$connection) or die(DBERROR.mysql_error());
            }
        } 
    Come vedi, a me sembra molto lineare e non riesco a capire dove sia l'errore, soprattutto perchè quando la chiamata avviene direttamente via browser niente agisce nel mezzo a far casino...

    Spero che tu possa illuminarmi!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.