- Home
- Categorie
- Coding e Sistemistica
- PHP
- Fatal error: Call to undefined function: get_assoc() in C:\WM\www\smfrisk\login.php o
-
Fatal error: Call to undefined function: get_assoc() in C:\WM\www\smfrisk\login.php o
Ciao a tutti,
Sto cercando di integrare netrisk (board game opensource) a smf. Iniziava a funzionare ma ora mi sono bloccato.
Se clicco su una partita mi dice:Fatal error: Call to undefined function: get_assoc() in C:\WM\www\smfrisk\login.php on line **33
la linea interessata è la seguente (la seconda):
[php]
$sql = "SELECT id,player,host,state,password,color,email FROM {$db_prefix}game_$id WHERE player = '{$name}'";
$playerinfo = get_assoc($sql);[/php]questo è il codice per intero del login.php:
**[php]<?php
// Load the settings...
require_once(dirname(FILE) . '/Settings.php');
require_once('includes/functions.php');
include("includes/langconfig.php");// And important includes.
//require_once($sourcedir . '/QueryString.php');
//require_once($sourcedir . '/Subs.php');
//require_once($sourcedir . '/Errors.php');
//require_once($sourcedir . '/Load.php');
//require_once($sourcedir . '/Security.php');// Get GET and POST variables
$id = $_GET['id'];
$name = $user_settings['memberName'];
$password = $_REQUEST['hash_passwrd'];
$player_rank = $_SESSION['player_rank'];// Check for name and pass or else go back to join screen
/if (isset($user_settings['memberName'])){
index_error_header($trad['MUST_LOGIN']);
exit;
}
if(!isset($id)){ // make sure i get an id or else go to index
index_error_header($trad['MUST_LOGGED']);
exit;
}/// Get all the player info
$sql = "SELECT id,player,host,state,password,color,email FROM {$db_prefix}game_$id WHERE player = '{$name}'";
$playerinfo = get_assoc($sql);// Get last most recent timestamp
$sql = "SELECT timestamp FROM {$db_prefix}game_$id ORDER BY 'timestamp' DESC LIMIT 1";
$timestamp = get_one($sql);
//Check username (redundancy)
if($playerinfo['player'] != $name){
joingame_error_header($trad['LOGIN_FAILED']);
exit;
}
//WM: end my code// Get game name
$sql = "SELECT name,timelimit FROM {$db_prefix}games WHERE id = $id";
$result = mysql_query($sql) or die('Could not get game name(login) :'.mysql_error());
$game_name = get_assoc($sql);// Remove any previous Session data
session_name("netrisk_$gamename");
session_start();
// Unset session data
$_SESSION=array();
// Clear cookie
unset($_COOKIE[session_name()]);
// Destroy session data
session_destroy();// Initialize the Session
session_name("netrisk_$gamename");
session_start();// ONLY GET THE STATIC DATA... DYNAMIC DATA SHOULD BE LOADED BY GAME.PHP
// You cant name anything $_SESSION['host'] apparently.
$_SESSION['game_name'] = $game_name['name'];
$_SESSION['game_timelimit'] = $game_name['timelimit'];
$_SESSION['game_id'] = $id;
$_SESSION['player_pass'] = $password;
$_SESSION['player_id'] = $playerinfo['id'];
$_SESSION['player_rank'] = $player_rank;
$_SESSION['player_color'] = $playerinfo;
$_SESSION['game_host'] = $playerinfo['host'];
$_SESSION['state'] = $playerinfo['state'];
$_SESSION['email'] = $playerinfo['email'];
$_SESSION['player_name'] = $playerinfo['player'];
$_SESSION['game_timestamp'] = $timestamp;// Send to game screen now that the session has been initialized
header("Location: game.php");
?>[/php]E qesto è il codice della pagina da dove arriva il giocatore:[php]<?php
// Load the settings...
require_once(dirname(FILE) . '/Settings.php');require_once($sourcedir . '/QueryString.php');
require_once($sourcedir . '/Subs.php');
require_once($sourcedir . '/Errors.php');
require_once($sourcedir . '/Load.php');
require_once($sourcedir . '/Security.php');include('includes/langconfig.php');
//if (isset($_SESSION['player_name'])){
if (isset($user_settings['memberName'])){?>
<a class="button" href="index.php?page=creategame"><? echo $trad['CREATE_GAME']; ?></a>
<?php
}if (isset($_GET['sort'])) { $sort = $_GET['sort']; } else { $sort = 'time'; }
if (isset($_GET['order'])) { $order = $_GET['order']; } else { $order = 'DESC'; }if(isset($_GET['num'])){
$startnum = $_GET['num'];
$endnum = $startnum + 20;
$sql = "SELECT * FROM {$db_prefix}games ORDER BY$sort
$order LIMIT $startnum , $endnum ";
} else { // set Limit to +1 to see if there is another pages worth of games
$startnum = 0;
$sql = "SELECT * FROM {$db_prefix}games ORDER BY$sort
$order LIMIT 0 , 20";
}$some_games = db_query($sql);
$query_rows = mysql_num_rows($some_games);?>
<? if(isset($_GET['error'])){ ?>
<div class="error" id="error" style="top: 15px;">
<? echo $trad['WARNING:']; ?> <?= $_GET['error'] ?>
<div class="close"><a href="javascript:OffError()">X</a></div>
</div>
<? } ?><table id="game_browser">
<!--MW:classes in case we want styles on columns (width)-->
<colgroup class="kibitz" />
<colgroup class="locked" />
<colgroup class="game_name" />
<colgroup class="game_players" />
<colgroup class="game_status" />
<colgroup class="current_player" />
<colgroup class="game_time" />
<tr>
<th><!--kibitz--></th>
<th><!--locked--></th>
<?php
switch($order) {
case 'DESC': $order = 'ASC';
break;
case 'ASC': $order = 'DESC';
break;
}
?>
<th><a href="index.php?page=gamebrowser&sort=name&order=<?= $order ?>"><? echo $trad['GAME_NAME']; ?></a></th>
<!--MW:again, comment out for now.<th>Type</th>-->
<th>#</th>
<th><a href="index.php?page=gamebrowser&sort=state&order=<?= $order ?>"><? echo $trad['STATUS']; ?></a></th>
<th><? echo $trad['CURRENT_PLAYER']; ?></th>
<th><a href="index.php?page=gamebrowser&sort=time&order=<?= $order ?>"><? echo $trad['LAST_MOVE']; ?></a></th>
</tr><?
$rownum = 0;
while (($game = mysql_fetch_array($some_games))&& ($rownum < 20)){
?><tr class="<? switch ($game['state']) { case "Waiting": echo 'browsewait'; break; case "Playing": echo 'browseplay'; break; case "Finished": echo 'browsefin'; break; } // check row%2 to color rows ?>" style="background-color:#<?php if ($rownum%2) { echo "000"; } else { echo "1e1e1e";} ?>;"> <td><? if($game['kibitz']) echo '<a href="index.php?page=kibitz&id='.$game['id'].'"><img src="images/kibitz.gif" height="12" width="16" alt="Kibitz" /></a>'; else ; /*echo ' ';*/ ?></td> <td><? if($game['password']){ echo '<img src="images/lock.gif" alt="Password" />'; $pass = 1; } else { /*echo ' ';*/ $pass = 0; } ?></td> <td><? ($game['players'] == $game['capacity']) ? $full = 1 : $full = 0; ($game['state'] != 'Waiting') ? $playing = 1 : $playing = 0; echo '<input type="hidden" name="'.$game['id'].'" value="'.$game['id'].'" /> <a href="login.php?id='.$game['id'].'&gamename='.rawurlencode($game['name']).'">'.@stripslashes($game['name']); ?></a></td> <td><? echo $game['players'].'/'.$game['capacity']; ?></td> <td><? echo $game['state']; ?></td> <td><? /* Find out who's the current player.*/ $sql = "SELECT player FROM {$db_prefix}game_".$game['id']." WHERE state != 'inactive' AND state != 'initial' AND state != 'dead' AND state != 'waiting' AND id != 1"; $current_player = db_query($sql); // find out if the user needs to place troops if ($_SESSION['player_id']) { $sql = "SELECT state FROM {$db_prefix}game_".$game['id']." WHERE id = ".$_SESSION['player_id']; $user_state = get_one($sql); } switch ($game['state']) { case "Waiting": echo $trad['FOR_PLAYERS']; break; case "Finished": echo ''; break; case "Initial": if ($user_state == 'initial') { echo "<span style='color:red;'>".$trad['PLACEMENT']."</span>"; } else { echo $trad['PLACEMENT']; } break; case "Playing": if ($current_player[0] == $_SESSION['player_name']) { echo "<span style='color:red;'>".$current_player[0]."</span>"; } else { echo $current_player[0]; break; } } ?></td> <td><? echo substr($game['time'], 0, 10); ?></td> </tr><? echo "\n"; $rownum++;
} ?>
</table>
<span class="rightalign">
<? // BROWSE TABLE SIZE different in IE and Mozilla (bigger in Mozilla so the the current max fits Mozilla but leaves space in IE )
if (($startnum - 20) > -1){ ?>
<a href="index.php?num=<?= $startnum - 20 ?>" style="color:#FFEECC">
<img src="images/arrow_left.gif" width="19" height="12" border="0" alt="Previous"><? echo $trad['PREVIOUS']; ?> </a>
<? }
if($query_rows == 20){ // theres another row for another page so show the Next Link.
?>
<a href="index.php?num=<?= $startnum + 20 ?>" style="color:#FFEECC"><? echo $trad['NEXT']; ?>
<img src="images/arrow_right.gif" width="19" height="12" border="0" alt="Next"></a>
<? } ?>
</span>[/php]
Un grazie in anticipo, per chi fosse interessato al progetto non esiti a contattarmi, naturalmente il progetto dovrà rimanere opensource anche dopo le varie modifiche.
Saluti
-
Forse hai commentato un pezzo di codice che importava la libreria che definiva la funzione get_assoc().
Nel codice "login.php" ci sono molti require_once(...) che sono stati inibiti.
Controlla se i file che venivano richiesti contengono la definizione alla funzione, in tal caso devi reinserirli nello script.Ciao!