pagina che funziona in locale ma non in remoto (MENU seleziona)

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve, perché questa pagina funziona benissimo in locale e quando la carico in remoto (server aruba linux), non mi funziona ?.

Ho due menu a tendina che a un codice js che preleva l'id e fa il filtro sulla tabella articoli.

Solo che non capisco perché in locale funziona e in remoto no.

Vi posto il codice:
PHP:
<?php
session_start();
require_once(dirname(__FILE__) . '/../../inc.php');

if($loggedin==true || $_SESSION["_Group"] == "10" || $_SESSION["_Group"] == "5")
{	
	require_once(dirname(__FILE__) . '/../../template/admin/header.php'); 
	$db = new DbConnector();
	$db->connect();
?>

<p class="titolo">Articoli</p>
<p><select onchange="location.href='?id=' + this.value">

        <option value="0" selected="selected">Seleziona Sezione</option>
        <?php


 
	$result = $db->query("SELECT * FROM articoli_sezioni");
	
	while($row = mysql_fetch_array($result))
	{
	$_titolo= $row['_titolo'];
	$idc = $row['id'];
  ?>
        <option value="<?php echo $idc; ?>"><?php echo $_titolo; ?></option>
        <?php
  }
?>
</select>&nbsp;&nbsp;
<select onchange="location.href='?id=' + this.value">

        <option value="0" selected="selected">Seleziona Utente</option>
        <?php


 
	$result = $db->query("SELECT * FROM users");
	
	while($row = mysql_fetch_array($result))
	{
	$_user= $row['Username'];
	$idc = $row['id'];
  ?>
        <option value="<?php echo $idc; ?>"><?php echo $_user; ?></option>
        <?php
  }
?>
</select>&nbsp;&nbsp;<a href="index.php">Ritorna alla lista normale</a>&nbsp;</p>
<?php

$cid = (int)$_GET["id"];
$uid = (int)$_GET["id"];
	if(empty($cid) && empty($uid))
	{
				$pag = new Paginazione("SELECT * FROM articoli ", 20, "pagina");
	
	}	
	else
	{
				$pag = new Paginazione("SELECT * FROM articoli WHERE _catid=".$cid." or _userid=".$uid."", 1, "pagina");

	}

?><?php
	// restituisce un array multi-dimensionale con i record
	if($record = $pag->Show())
	{
		?>
	<table border="1" width="100%">
    <tr style="text-align:center;">
        <th>Username</th>
		<th>Categoria</th>
		<th>Titolo</th>
		<th>Data</th>
		<th>Stato</th>
		<th>Modifica</th>
    </tr>
	<?php
		foreach($record as $row)
		{
		?>
      <tr style="text-align:center;">
        <td><?php echo $row['_user']?></td>
        <td><?php echo $row['_cat']?></td>
		<td><?php echo $row['_titolo']?></td>
		<td><?php echo $row['_data']?></td>
		<td><?php echo $row['_stato']?></td>
		<td><a href="articolo_edit.php?id=<?php echo $row['id']?>">Modifica</a></td>
    </tr>
<?php
}

?>

</table>
</div><br>
<?php
}


	else
	{
		echo "Nessun Record Trovato!";
	}
	
	// restituisce i link alle pagine
	if($link = $pag->Link(3))
	{
		?>
		<div align="center">
		<a href="?id=<?php echo $id?>&pagina=<?php echo $link['first']?>">&laquo;</a> <?php
			foreach($link['before'] as $bf)
			{
				?><a href="?id=<?php echo $id?>&pagina=<?php echo $bf?>"><?php echo $bf?></a> <?php
			}
			?><?php echo $link['current']?> <?php
			foreach($link['after'] as $at)
			{
				?><a href="?id=<?php echo $id?>&pagina=<?php echo $at?>"><?php echo $at?></a> <?php
			}
		?><a href="?id=<?php echo$id?>&pagina=<?php echo $link['last']?>">&raquo;</a>
		</div>
		<?php
	}
	
	
	

$db->close();
?>
<div align="center"><a href="articolo_add.php">Aggiungi articoli</a>&nbsp;|&nbsp;<a href="sezioni_index.php">Sezioni</a></div>
<?php

require_once(dirname(__FILE__) . '/../../template/admin/footer.php'); 

}
else
{ echo "Non hai i peremssi - attendere il redirect ";
  redirect("../../member/login.php",2); }

?>

Mi dite come mai e come posso risolvere il problema.

Grazie Mille.
 
pensavo che era questo il problema del solito $id e lo messi in due separati:
PHP:
$cid = (int)$_GET["id"];
$uid = (int)$_GET["id"];
    if(empty($cid) && empty($uid))
    {
                $pag = new Paginazione("SELECT * FROM articoli ", 20, "pagina");
    
    }    
    else
    {
                $pag = new Paginazione("SELECT * FROM articoli WHERE _catid=".$cid." or _userid=".$uid."", 1, "pagina");

    }

Ma neanche cosi .
solo locale e remoto no.

ciao.
 
ho fatto anche cosi , ma nulla in locale funziona e remoto no.

PHP:
<?php
session_start();
require_once(dirname(__FILE__) . '/../../inc.php');

if($loggedin==true || $_SESSION["_Group"] == "10" || $_SESSION["_Group"] == "5")
{	
	require_once(dirname(__FILE__) . '/../../template/admin/header.php'); 
	$db = new DbConnector();
	$db->connect();
?>

<p class="titolo">Articoli</p>
<p><select onchange="location.href='?id=' + this.value">

        <option value="0" selected="selected">Seleziona Sezione</option>
        <?php


 
	$result = $db->query("SELECT * FROM articoli_sezioni");
	
	while($row = mysql_fetch_array($result))
	{
	$_titolo= $row['_titolo'];
	$idc = $row['id'];
  ?>
        <option value="<?php echo $idc; ?>"><?php echo $_titolo; ?></option>
        <?php
  }
?>
</select>&nbsp;&nbsp;
<select onchange="location.href='?id=' + this.value">

        <option value="0" selected="selected">Seleziona Utente</option>
        <?php


 
	$result = $db->query("SELECT * FROM users");
	
	while($row = mysql_fetch_array($result))
	{
	$_user= $row['Username'];
	$idc = $row['id'];
  ?>
        <option value="<?php echo $idc; ?>"><?php echo $_user; ?></option>
        <?php
  }
?>
</select>&nbsp;&nbsp;<a href="index.php">Ritorna alla lista normale</a>&nbsp;</p>
<?php

	$id = $_GET["id"];
	if(empty($id))
	{
				$pag = new Paginazione("SELECT * FROM articoli ", 20, "pagina");
	
	}	
	else
	{
				$pag = new Paginazione("SELECT * FROM articoli WHERE _catid='".$id."' or _userid='".$id."'", 1, "pagina");

	}

?><?php
	// restituisce un array multi-dimensionale con i record
	if($record = $pag->Show())
	{
		?>
	<table border="1" width="100%">
    <tr style="text-align:center;">
        <th>Username</th>
		<th>Categoria</th>
		<th>Titolo</th>
		<th>Data</th>
		<th>Stato</th>
		<th>Modifica</th>
    </tr>
	<?php
		foreach($record as $row)
		{
		?>
      <tr style="text-align:center;">
        <td><?php echo $row['_user']?></td>
        <td><?php echo $row['_cat']?></td>
		<td><?php echo $row['_titolo']?></td>
		<td><?php echo $row['_data']?></td>
		<td><?php echo $row['_stato']?></td>
		<td><a href="articolo_edit.php?id=<?php echo $row['id']?>">Modifica</a></td>
    </tr>
<?php
}

?>

</table>
</div><br>
<?php
}

Non ci sto capendo più nulla.
 
ok, forse ho trovato il problema è la query:
$pag = new Paginazione("SELECT * FROM articoli WHERE _catid='".$id."'", 1, "pagina");

Se metto cosi e provo ad selezionare il menu a tendina delle categorie funziona.

come faccio fare che posso prendere anche gli utenti?

grazie mille.
 
$id dovrebbe essere un valore intero, quindi prova a non metterlo tra apici singoli.
 
ciao, ti posto anche la classe della paginazione che lo trovata in un blog sv.design se non mi ricordo male.

ecco il codice:
PHP:
<?php
	class Paginazione
	{
		private $xpage = 0;
		private $tot = 0;
		private $varq = "";
		private $totpag = 0;
		private $cpage = 0;
		private $query = "";
		private $record = array();
	
		public function Paginazione($query, $xpage, $varq)
		{
			// le rendo globali
			$this->xpage = $xpage;
			$this->varq = $varq;
			$this->query = trim($query);
			
			// pagina corrente sia get che post
			$this->cpage = (isset($_REQUEST[$varq])) ? (int)$_REQUEST[$varq] : 1;
			
			// inizio record
			$inizio = $xpage * ($this->cpage - 1);
			
			// eseguo la query per contare i record
			$ct = mysql_query($this->query) or die(mysql_error());
			
			// record totali
			$this->tot = mysql_num_rows($ct);
			
			// se ci sono record
			if($this->tot > 0)
			{
				// pagine totali
				$this->totpag = ceil($this->tot / $xpage);
				
				// scrivo ed eseguo la query mirata
				$target = " LIMIT " . $inizio . ", " . $xpage;
				$ex = mysql_query($this->query . $target) or die(mysql_error());
				
				while($ft = mysql_fetch_array($ex, MYSQL_ASSOC))
				{
					$record[] = $ft;
				}
				
				$this->record = $record;
			}
			else
			{
				$this->record = array();
			}
		}
		
		public function Show()
		{
			if(count($this->record) > 0)
			{
				return $this->record;
			}
			else
			{
				return false;
			}
			
		}
		
		public function Link($nlink = 4)
		{
			$before = array();
			$after = array();
			
			if($this->cpage < $nlink)
			{
				$nlink *= 2;
				$nlink -= ($this->cpage - 1);
			}
			elseif($this->cpage > ($this->totpag - $nlink))
			{
				$nlink *= 2;
				$nlink -= ($this->totpag - $this->cpage);
			}
			
			
			
			for($i = $nlink; $i>=1; $i--)
			{
				if(($this->cpage - $i) >= 1)
				{
					$before[] = $this->cpage - $i;
				}
			}
			
			for($i = 1; $i<=$nlink; $i++)
			{
				if(($this->cpage + $i) <= $this->totpag)
				{
					$after[] = $this->cpage + $i;
				}
				
				if($this->cpage == $nlink)
					$nlink += 1;
			}
			
			$link["first"] = 1;
			$link["before"] = $before;
			$link["current"] = $this->cpage;
			$link["after"] = $after;
			$link["last"] = $this->totpag;
			
			if($this->cpage <= $this->totpag && $this->totpag > 1)
			{
				return $link;
			}
			else
			{
				return false;
			}
		}
	}
?>

mi poi vedere se per caso è questa classe che non mi permette di fare quella query sopra?
 

Discussioni simili