log in php a gioco

  • Creatore Discussione Creatore Discussione fabry
  • Data di inizio Data di inizio

fabry

Nuovo Utente
9 Ago 2010
2
0
0
Buonasera a tutti.
Io e un mio amico stiamo provando a creare una specie di gioco online con il php e mysql.
Ora con un pò di aiuto da un'altra persona abbiamo creato la pagina principale del gioco dove si può accedere solo in caso di log in!
Il problema è che esce un messaggio che dice che la pagina non esiste!
Se c'è qualcuno così gentile ad aiutarci a capire cosa manca ci sarebbe di grande aiuto:0:)

PHP:
<?php
session_start();

//connessione al database

include("connect.php");   

//struttura html

include("game_index.html");

//inclusione delle classi

function __autoload($class_name) {
require_once "classi/".$class_name.".php";   
}

// nascondiamo i messaggi di errore

error_reporting(3);

// Recupero della variabile

$action = $_GET["action"];
$function = $_POST["function"];

// Gestione della autenticazione

if (!$_SESSION["user"] && !$action)
{
	$_SESSION["roleid"] = 0;
	header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF'])."?action=".md5("authReq"), "/\\"));
}

// la classe menu per gestire sia i menu che le action

$menu = new menu();

// File contenente la logica di controllo

$controlPage = $menu->getControl($action, $function, $_SESSION["roleid"]);
include($controlPage);

// File contenente l'output

$formPage = $menu->getForm($action, $function, $_SESSION["roleid"]);
include($formPage);

?>
 
Credo che tu abbia sbagliato l'indirizzo del reindirizzamento, qui:
PHP:
header("Location: http://".$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['PHP_SELF'])."?action=".md5("authReq"), "/\\"));
Dovresti sostituirlo con:
PHP:
header("Location: http://".$_SERVER['HTTP_HOST']."/"..rtrim(dirname($_SERVER['PHP_SELF'])."?action=".md5("authReq"), "/\\"));
 
Ho provato come hai detto tu,ma mi dice che c'è un errore!
Invece il mio problema è che mi dice che la pagina non esiste!
 
L'errore è che ho aggiunto due punti. Correggi così:
PHP:
header("Location: http://".$_SERVER['HTTP_HOST']."/".rtrim(dirname($_SERVER['PHP_SELF'])."?action=".md5("authReq"), "/\\"));[/PHP
Ecco, prova adesso. Dice che la pagina non esiste perché ti sei scordato lo slash.
 
Ho provato,ma dice ancora che non esiste!Forse l'errore sta nelle classi!

classe database

PHP:
<?php
class database
{
	var $host;
	var $dbName;
	var $user;
	var $password;
	var $conn;
	var $result;


	function __construct($host, $user, $password, $dbName)
	{
		global $errorMsg;

		$this->host = $host;
		$this->user = $user;
		$this->password = $password;
		$this->dbName = $dbName;

		try
		{
			// connessione
			if (!$this->conn = mysql_connect($this->host, $this->user, $this->password))
			throw new Exception("Errore di connessione al database!", 0);
			// selezione db
			if (!mysql_select_db($this->dbName))
			throw new Exception("Errore nella selezione del database!", 1);
		}
		catch (Exception $ex)
		{
			$errorMsg = $ex->getMessage();
		}
	}

	

	function setValue($value)
	{
		// eventuali escape nei valori
		if (!get_magic_quotes_gpc())
		$value = mysql_real_escape_string($value);
		return $value;
	}
	

	function query($sql)
	{
		global $errorMsg;

		try
		{
			if (!$this->result = mysql_query($sql, $this->conn))
			throw new Exception("Errore nella query SQL.");
			return true;
		}
		catch (Exception $ex)
		{
			$errorMsg = $ex->getMessage();
			return false;
		}
	}



	function row()
	{
		return mysql_fetch_array($this->result);
	}


	function row_number($sql){
		try
		{
			if (!$this->result = mysql_query($sql, $this->conn)){
				throw new Exception("Errore nella query SQL.");
			}else{
				$number =  mysql_num_rows($this->result);
				return $number;
			}
		}
			catch (Exception $ex)
			{
				$errorMsg = $ex->getMessage();
				return 0;
			}
				
	}
}
?>

classe menù

PHP:
<?php

class menu
{
	var $id;
	var $manager;
	var $team;
	var $punti;
	var $livello;
	var $campionato;
	var $cash;
	var $vittorie;
	var $pareggi;
	var $sconfitte;
	var $url;
	var $md5;
	
	
	function __construct()
	{
		
	}
		
	////
	
	function getList()
	{
		global $db;
		
		$sql = ("SELECT * FROM squadra_dati WHERE id = '.$id.'");
					
		$db->query($sql);
		
		while ($rowMenu = $db->row())
		{
			$id = $rowMenu[id];
			$hashtable[$id] = array(

"id"		    => $id
,"manager"	    => $rowMenu[manager]
,"team"	            => $rowMenu[team]
,"punti"	    => $rowMenu[punti]
,"livello"          => $rowMenu[livello]
,"campionato"	    => $rowMenu[campionato]
,"cash"	            => $rowMenu[cash]
,"vittorie"	    => $rowMenu[vittorie]
,"pareggi"	    => $rowMenu[pareggi]
,"sconfitte"	    => $rowMenu[sconfitte]
,"url"		    => $rowMenu[url]
,"md5"		    => $rowMenu[md5]);
		}
		return $hashtable;
	}
	
	////
	
	function getDetails()
	{
		global $db;
		
		$sql = "SELECT * FROM squadra_dati WHERE id = ".$db->setValue($this->id);
		$db->query($sql);
		$rowMenu = $db->row();

$this->manager		= $rowMenu[manager];
$this->team             = $rowMenu[team];
$this->punti		= $rowMenu[punti];
$this->livello		= $rowMenu[livello];
$this->campionato	= $rowMenu[campionato];
$this->cash	        = $rowMenu[cash];
$this->vittorie	        = $rowMenu[vittorie];
$this->pareggi		= $rowMenu[pareggi];
$this->sconfitte	= $rowMenu[sconfitte];
$this->url		= $rowMenu[url];
$this->md5		= $rowMenu[md5];
	}
	
	////
	
	function save()
	{
		global $db;
		
	}try{
		
	if ($this->id)
		{

$sql = "UPDATE squadra_dati SET manager = '".$db->setValue($this->manager)."', ".
"team = '".$db->setValue($this->team)."', ".
"punti = '".$db->setValue($this->punti)."', ".
"livello = '".$db->setValue($this->livello)."', ".
"campionato = '".$db->setValue($this->campionato."', ".
"cash = '".$db->setValue($this->cash)."', ".
"vittorie = '".$db->setValue($this->vittorie)."', ".
"pareggi = '".$db->setValue($this->pareggi)."' ".
"sconfitte = '".$db->setValue($this->sconfitte)."' ".
"url = '".$db->setValue($this->url)."' ".
"md5 = '".$db->setValue($this->md5)."' ".
"WHERE id = ".$db->setValue($this->id);
		
		}
		else
		{

$sql = "INSERT INTO squadra_dati (manager, team, punti, livello, "."campionato, cash, vittorie, pareggi, sconfitte, url, md5) ".
"VALUES ('".$db->setValue($this->manager)."', ".
						
"'".$db->setValue($this->team)."', ".
"'".$db->setValue($this->punti)."', ".
"'".$db->setValue($this->cash)."', ".
"'".$db->setValue($this->livello)."', ".
"'".$db->setValue($this->campionato)."', ".
"'".$db->setValue($this->cash)."', ".
"'".$db->setValue($this->vittorie)."', ".
"'".$db->setValue($this->pareggi)."', ".
"'".$db->setValue($this->sconfitte)."', ".
"'".$db->setValue($this->url)."', ".
"'".$db->setValue($this->md5)."')";
		
		}
		if (!$db->query($sql))
			throw new Exception("Errore nel salvataggio del menu", 0);
				
		return true;
	}
	catch (Exception $ex)
	{
		$errormsg = $ex->getMessage();
		return false;
	}
}
	function delete()
{
	global $db;
		
	try
	{
		$sql = "DELETE FROM squadra_dati WHERE id =".$db->setValue($this->id);
		if (!$db->query($sql))
			throw new Exception("Errore nella cancellazione menu", 1);
	}
	catch (Exception $ex)
	{
		$errormsg = $ex->getMessage();
	}
}
	
////
	
function getMenu($id)
{
	global $db;

	$sql = "SELECT * FROM squadra_dati ".
				"INNER JOIN squadra_dati ON id = id ".
				"INNER JOIN squadra_gest ON id = id ".
		
	$resMenu = $db->query($sql);
	$i = 0;
	while ($rowMenu = $db->row())
	{
		$hashtable[$i] = array ( 

"manager"	=> $rowMenu[manager]
,"team"		=> $rowMenu[team]
,"punti"	=> $rowMenu[punti]
,"livello"	=> $rowMenu[livello]
,"campionato"	=> $rowMenu[campionato]
,"cash"		=> $rowMenu[cash]
,"vittorie"	=> $rowMenu[vittorie]
,"pareggi"	=> $rowMenu[pareggi]
,"sconfitte"	=> $rowMenu[sconfitte]
,"url"		=> $rowMenu[url]
,"md5"		=> $rowMenu[md5]
		
	);
		$i++;
	}
	return $hashtable;
}
	
////
function getSottoMenu($ruolo)

{
	global $db;

	$sql = "SELECT * FROM squadre_dati".
				"INNER JOIN id ON squadra_dati = id".
				"INNER JOIN id ON squadra_gest = id".
				"WHERE id = 1 ".
				"AND id = ".$db->setValue($ruolo)." ". " AND id = ".$db->setValue($this->id).
				" ORDER BY squadra_dati";
		
	$resMenu = $db->query($sql);
	$i = 0;
	while ($rowMenu = $db->row())
	{
		$hashtable[$i] = array ( 
"manager"			=> $rowMenu[manager]
,"team"		                => $rowMenu[team]
,"punti"			=> $rowMenu[punti]
,"livello"			=> $rowMenu[livello]
,"campionato"			=> $rowMenu[campionato]
,"cash"		                => $rowMenu[cash]
,"vittorie"			=> $rowMenu[vittorie]
,"pareggi"			=> $rowMenu[pareggi]
,"sconfitte"			=> $rowMenu[sconfitte]
,"url"				=> $rowMenu[url]
,"md5"				=> $rowMenu[md5]	
		);
		$i++;
	}
	return $hashtable;
}
	
	
function getControl($action, $func, $ruolo)
{
	global $db;
				
	$sql = "SELECT * FROM squadra_actions ".
				"INNER JOIN squadra_dati_action_role ON squadra_dati_idAction = id ".
				"WHERE squadra_dati_idRole = ".$db->setValue($ruolo);
	$resMenu = $db->query($sql);
	while ($rowMenu = $db->row())
	{
		if ($rowMenu[md5] != "")
			$md5 = md5($rowMenu[md5]);
		else
			$md5 = "";
						
		if ($action == $md5 &&
			($func == "" || $func == $rowMenu[func]) &&
			$rowMenu[controlpage])
		{
			if (file_exists($rowMenu[controlpage]))
				return $rowMenu[controlpage];
		}
	}

	return "/pagenotfound.html";
}
	
////
	
function getForm($action, $func, $ruolo)
{
	global $db;
		
	$sql = "SELECT * FROM squadra_actions ".
				"INNER JOIN squadra_actions_role ON idAction = id ".
				"WHERE squadra_dati_idRole = ".$db->setValue($ruolo);
	$resMenu = $db->query($sql);
	while ($rowMenu = $db->row())
	{
		if ($rowMenu[md5] != "")
			$md5 = md5($rowMenu[md5]);
		else
			$md5 = "";
			
		if ($action == $md5 &&
			($func == "" || $func == $rowMenu[func]) &&
			$rowMenu[formpage])
		{
			if (file_exists($rowMenu[formpage]))
				return $rowMenu[formpage];
		}
	}
		
	return "/pagenotfound.html";
}

////
	

	
////
}
?>
 
L'errore è qui?

header("Location:http://".$_SERVER['HTTP_HOST']."/".rtrim(dirname($_SERVER['PHP_SELF'])."/".game_index.php"?action=".md5("authReq"), "/\\"));
 
ciao,

1. per vedere dove è l'errore commenta la riga dell'header e scrivi (o subito sotto o sopra)

PHP:
echo $_SERVER['HTTP_HOST']."/".rtrim(dirname($_SERVER['PHP_SELF'])."/game_index.php?action=".md5('authReq');

cosi vedi se l'indirizzo è giusto o meno

2. poi dici che ti da un errore, quale?
 
Mi dice:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /membri/beamanager/gioco/game_index.php on line 34

cioè questa:

header("Location:http://".$_SERVER['HTTP_HOST']."/".rtrim(dirname($_SERVER['PHP_SELF'])."/".game_index.php"?action=".md5("authReq"), "/\\"));
 
ciao
prova così

PHP:
header("Location:http://".$_SERVER['HTTP_HOST']."/".rtrim(dirname($_SERVER['PHP_SELF'])."/game_index.php?action=".md5('authReq'),"/\\"));
 
ciao
scusa col copia incolla mi sono dimenticato
togli
....$_SERVER['HTTP_HOST']."/".rtrim(dirname....

e metti così

...$_SERVER['HTTP_HOST'].rtrim(dirname....
 

Discussioni simili