Pagina 1 di 1

Script php

MessaggioInviato: ven mag 29, 2009 10:13 am
da thanas
Salve a tutti vi posto il mio problema sperando di essere chiaro [:)]
Mi ritrovo con uno script in php di scacchi, ovvero il gioco online degli scacchi, in più un forum in phpbb3..
Il mio problema è che lo script per giocare mi chiede di creare un nuovo utente, io vorrei far in modo che l'utente registrato nel forum sia lo stesso per lo script php..
Ora pensando, se io inserisco nel login dello script il nick e pass del forum, che si trovano sullo stesso server, dovrebbe trovarmi gli stessi utenti del database del forum, visto che il database è uno solo...
facendo questo però mi da questo errore:

Codice: Seleziona tutto
Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/cata850/public_html/Sito/Forum/webchess/connectdb.php on line 7
WebChess cannot connect to the database. Please check the database settings in your config


Non trova il database, se guardo nel file connectdb.php trovo queso:

Codice: Seleziona tutto
<?
   /* load settings */
   if (!isset($_CONFIG))
      require 'config.php';
   
   /* connect to database */
   $dbh=mysql_connect ($CFG_SERVER, $CFG_USER, $CFG_PASSWORD)
      or die ('WebChess cannot connect to the database.  Please check the database settings in your config.');

   mysql_select_db ($CFG_DATABASE);
?>


come devo modificare per far in modo che trova il database??
spero d'aver reso l'idea [uhm]

Re: Script php

MessaggioInviato: ven mag 29, 2009 1:34 pm
da ste_95
Sicuro che nel config.php le credenziali di accesso al database siano corrette?

Re: Script php

MessaggioInviato: ven mag 29, 2009 2:52 pm
da thanas
Ho guardato il file config.php, effettivamente cera qlcosa che non va, ho settato i parametri giusti (spero) e mi è uscito fuori quest'altro:
Codice: Seleziona tutto
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/cata850/public_html/Sito/Forum/webchess/mainmenu.php on line 35

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/cata850/public_html/Sito/Forum/webchess/mainmenu.php on line 109
Invalid Nick/Password


Ora la linea 35 di mainmenu è questa:

Codice: Seleziona tutto
while($tmpOldGame = mysql_fetch_array($tmpOldGames, MYSQL_ASSOC))


questa 109:

Codice: Seleziona tutto
$tmpPlayer = mysql_fetch_array($tmpPlayers, MYSQL_ASSOC);


io di php non sono proprio un fenomeno tu puoi avere idea del problema??

Re: Script php

MessaggioInviato: ven mag 29, 2009 4:59 pm
da ste_95
Io di solito, quando mi capitano problemi di questo genere, cerco di capire dove sono i problemi nella query.

Quindi, sia nella variabile $tmpOldGames che nella variabile $tmpPlayers aggiungi quanto segue prima del punto e virgola finale:

Codice: Seleziona tutto
 or die(mysql_error())

Re: Script php

MessaggioInviato: mer giu 03, 2009 9:51 am
da thanas
Fantastico non ci avevo pensato!!!
ed ecco il problema:

Codice: Seleziona tutto
Table 'cata850_db.games' doesn't exist


effettivamente la tabella è solo cata850_db, e visto che dal config risulta essere tutto giusto immagino che quel .games me lo aggiunga qua:

Codice: Seleziona tutto
   /* cleanup dead games */
   /* determine threshold for oldest game permitted */
   $targetDate = date("Y-m-d", mktime(0,0,0, date('m'), date('d') - $CFG_EXPIREGAME, date('Y')));

   /* find out which games are older */
   $tmpQuery = "SELECT gameID FROM games WHERE lastMove < '".$targetDate."'";


però pensavo una cosa...io vorrei usare la stessa tabella del db che uso per il forum, tabella che è strutturata in modo diverso da quello che richiede lo script,visto che non l'ho scritto io, quindi ho mi modifico il codice dello script, quindi le query, in modo appropriato oppure mi conviene fare una nuova tabella...non so se ho reso l'idea
cosa consigli ste??

Re: Script php

MessaggioInviato: mer giu 03, 2009 1:58 pm
da ste_95
thanas ha scritto:Fantastico non ci avevo pensato!!!
ed ecco il problema:

Codice: Seleziona tutto
Table 'cata850_db.games' doesn't exist

Quest'errore sta ad indicare che la tabella cata850_db nel database games non esiste. [;)]

però pensavo una cosa...
[cut]
non so se ho reso l'idea

Diciamo che ho capito tutto fino a "io vorrei usare la stessa tabella del db che uso per il forum" [rolleyes]

Re: Script php

MessaggioInviato: mer giu 03, 2009 3:24 pm
da dararag
scusa ste, ma la sintassi non è db.table? quindi è la tabella games che non esiste nel database cata850_db, o mi sbaglio?

Re: Script php

MessaggioInviato: mer giu 03, 2009 3:45 pm
da ste_95
dararag ha scritto:quindi è la tabella games che non esiste nel database cata850_db, o mi sbaglio?

E io che ho scritto? [;)]

Re: Script php

MessaggioInviato: mer giu 03, 2009 3:45 pm
da thanas
Diciamo che ho capito tutto fino a "io vorrei usare la stessa tabella del db che uso per il forum" [rolleyes]

Già sei stato bravo a capire fino a li [crylol]
comunque ho risolto, ora avrei un'altro problemino sempre sullo stesso script...
praticamente vorrei che gli utenti possano vedere e quindi sfidare solo gli utenti che sono loggati in quel momento,
mentre ora invece è possibile vederli tutti e iniziare una nuova partita anche se l'utente non è online in quel momento...

Questa è il codice che mi da tutti gli utenti:

Codice: Seleziona tutto
$tmpQuery="SELECT playerID, nick FROM players WHERE playerID <> ".$_SESSION['playerID'];
               $tmpPlayers = mysql_query($tmpQuery);

               while($tmpPlayer = mysql_fetch_array($tmpPlayers, MYSQL_ASSOC))
               {
                  echo ("<option value='".$tmpPlayer['playerID']."'> ".$tmpPlayer['nick']."</option>\n");
               }

               mysql_close();


Sapresti mica indicarmi la strada giusta x far quel descritto??

Re: Script php

MessaggioInviato: mer giu 03, 2009 3:50 pm
da ste_95
Devi aggiungere alla query un WHERE nomecampochegestiscel'on-line=online [;)]

Re: Script php

MessaggioInviato: mer giu 03, 2009 3:58 pm
da thanas
ok quindi aggiungo un campo nella tabella e ad ogni login lo setto "online"...??
ma si può far qlcosa di simile con le sessioni??

ad esempio aggiungere un where $_SESSION['playerID'] != -1;
forse è quello che mi hai suggerito te ma se si in questo caso faccio un if non nella query giusto??