Problema anomalo con passaggio a Linux (OpenSUSE 10,3-KDE)

Ciao a tutti

Sto piano piano migrando a Linux ed ho da poco passato tutti i miei file da htdocs (win) a  htdocs(Linux), ho riscontrato un'anomalia che francamente non riesco a spiegarmi:

Ho testato l'applicazione sulla quale sto lavorando, tutti i file funzionano alla perfezione, ad esclusione di quelli che contengono gli script per la variazione dei dati del database (per intendersi come da vs lezione n.9)  i quali iniziano tutti con edit (es: edit_fin_records, edit_fin_accounts ecc.), quando richiamo questi files sulla barra degli indirizzi del browser ed invio la request, il browser non visualizza niente e neanche invia alcun messaggio di errore.

Non capisco questo comportamento.. non sarà mica il suffisso edit?

Grazie per l'attenzione.

Amos

inviato 8 anni fa
amosse
X 0 X

No, il suffisso non ha importanza, è solo che la suse non ti fa vedere gli errori che ci sono; anche a me succedeva (con una suse 9.3 prof e una opensuse 10.2).

Devi solo cambiare le impostazioni per riportare l'errore.

(P.S. io poi ho cambiato sul server ci ho messo una debian etc molto più reattiva della suse).

risposto 8 anni fa
LonelyWolf
X 0 X

In pratica, se ho capito bene,  stai dicendo di passare da OpenSUSE a Debian? Cioè cambiare la distribuzione di Linux?

Comunque la cosa strana é che questi script su windows funzionano perfettamente....

Ciao

Amos

risposto 8 anni fa
amosse
X 0 X

metti un error_reporting(E_ALL); all'inizio di ciascuno script

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

Ho provato il suggerimento di Gianni, niente il browser non visualizza alcun messaggio.

Di seguito uno degli script in questione:

<?php
error_reporting(E_ALL);
// richiamo il file di configurazione
require 'config.php';

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

if($_POST && isset($_GET['id']))
{
   edit_ccy();
}
elseif(isset($_GET['id']))
{
   show_ccy();
}
else
   show_ccies();

function show_ccies()
{
   // mostro un eventuale messaggio
   if(isset($_GET['msg']))
      echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

   // preparo la query
   $query = "select id,ccy_name,ccy_exchange_rate,date_format(ccy_date_rate,'%d-%m-%y') as ccy_date_rate_it from currencies order by ccy_date_rate DESC";

   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   echo '<h1 align="center">Lista cambi con Euro<h1>
   <table border="1" align="center">
      <tr>
         <th>Id</th>
         <th>Valuta</th>
         <th>Cambio</th>
         <th>Data</th>
         <td><font color="red"><b>Modifica<b></td>
      </tr>';

   while ($row = mysql_fetch_assoc($result))
   {
      $id          = htmlentities($row['id']);
      $ccy_name       = htmlentities($row['ccy_name']);
      $ccy_exchange_rate    = htmlentities($row['ccy_exchange_rate']);
      $ccy_date_rate      = htmlentities($row['ccy_date_rate_it']);

      if(!$ccy_name)        $ccy_name = '&nbsp;';
      if(!$ccy_exchange_rate)      $ccy_exchange_rate = '&nbsp;';
      if(!$ccy_date_rate)         $ccy_date_rate = '&nbsp;';
      
      // preparo il link per la modifica dei dati del record
      $link = $_SERVER['PHP_SELF'] . '?id=' . $row['id'];
                                 
      echo "<tr>
            <td>$id</td>
            <td>$ccy_name</td>
            <td>$ccy_exchange_rate</td>
            <td>$ccy_date_rate</td>
            <td><a href=\"$link\">modifica</a></td>
         </tr>";
   }

   echo '</table>';

   // libero la memoria di PHP occupata dai record estratti con la SELECT
   mysql_free_result($result);

   // chiudo la connessione a MySQL
   mysql_close();
}

function edit_ccy()
{
   // recupero i campi di tipo "stringa"
   $ccy_name         = trim($_POST['ccy_name']);
   $ccy_exchange_rate   = trim($_POST['ccy_exchange_rate']);
      

   // verifico se devo eliminare gli slash inseriti automaticamente da PHP
   if(get_magic_quotes_gpc())
   {
      $ccy_name            = stripslashes($ccy_name);
      $ccy_exchange_rate      = stripslashes($ccy_exchange_rate);
            
   }

   // effettuo l'escape dei caratteri speciali per inserirli all'interno della query
   $ccy_name            = mysql_real_escape_string($ccy_name);
   $ccy_exchange_rate      = mysql_real_escape_string($ccy_exchange_rate);
   
   
   //recupero i campi data
   $gg = $_POST["giorno"];
   $mm = $_POST["mese"];
   $aaaa = $_POST["anno"];

   if ($gg && $mm && $aaaa){
   $ccy_date_rate="$aaaa-$mm-$gg";}  
   else {$messaggio = urlencode("Non hai selezionato una data valida!");
      header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
   exit;}

   
   $id = intval($_GET['id']);
   

   // verifico la presenza dei campi obbligatori
   if(!$ccy_name || (!$gg && !$mm && !$aaaa))
   {
      $messaggio = urlencode("Non hai inserito i campi obbligatori (*)!");
      header("location: $_SERVER[PHP_SELF]?id=$id&msg=$messaggio");
      exit;
   }

   // preparo la query
   $query = "UPDATE currencies SET
            ccy_name       = '$ccy_name',
            ccy_exchange_rate    = $ccy_exchange_rate,
            ccy_date_rate       = '$ccy_date_rate'
            WHERE id = $id";

   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   // chiudo la connessione a MySQL
   mysql_close();

   $messaggio = urlencode('Aggiornamento effettuato con successo');
   header("location: $_SERVER[PHP_SELF]?msg=$messaggio");
}

function show_ccy()
{
   // mostro un eventuale messaggio
   if(isset($_GET['msg']))
      echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';

   $id = intval($_GET['id']);

   // preparo la query
   $query = "SELECT * FROM currencies WHERE id = $id";

   // invio la query
   $result = mysql_query($query);

   // controllo l'esito
   if (!$result) {
      die("Errore nella query $query: " . mysql_error());
   }

   // controllo che la SELECT abbia restituito un record
   // l'id passato via GET potrebbe essere stato manipolato
   if(mysql_num_rows($result) != 1) {
      die("l'ID passato via GET ? errato");
   }

   list($id,$ccy_name,$ccy_exchange_rate,$ccy_date_rate,) = mysql_fetch_row($result);

   $ccy_name            = htmlspecialchars($ccy_name);
   $ccy_exchange_rate      = htmlspecialchars($ccy_exchange_rate);
   $date_charged      = htmlspecialchars($ccy_date_rate);
   

   ?>
   <h1 align="center">Modifica cambio con Euro</h1>
   
   <form name="form_edit_ccy" method="post" action="" align="center">
   <table border="1" align="center">

     <tr><td><label><b>Valuta:</b></label></td>
     <td><input name="ccy_name" type="text" value="<?echo $ccy_name?>" /></td>
     
     <tr><td><label><b>Cambio:</b></label></td>
     <td><input name="ccy_exchange_rate" type="text" value="<?echo $ccy_exchange_rate?>" /></td>
     
     <tr><td><label><b>Data:</b></label></td>
     
   <?php
   // richiamo il file di configurazione
   require 'config.php';

   // richiamo lo script responsabile della connessione a MySQL
   require 'connect.php';

   // richiamo lo script per l'impostazione della data (select)
   require 'date_charged_s.php';

   // chiudo la connessione a MySQL
   mysql_close();
   ?>   
     <td>
   <select name="giorno"><option value="0"><b>gg<b></option><?php echo $gg;?></select>
   <select name="mese"><option value="0"><b>mm<b></option><?php echo $mm;?></select>
   <select name="anno"><option value="0"><b>anno<b></option><?php echo $aaaa;?></select>
   </td></tr>     
     </table>
               
     <table align="center"><tr><td colspan=\"2\" align="center" valign="middle"><input name="invia" type="submit" value="Invia" /></td></tr></table>
     </form>
     <?
}
?>

Se qualcuno ha un'idea mi sarebbe veramente di aiuto.

Ripeto lo stesso script in windows funziona perfettamente.

Ciao

Amos

risposto 8 anni fa
amosse
X 0 X

no, non ti sto dicendo di passare a debian, sto solo dicendo che opensuse è fatta così.

error_reporting(E_ALL) non ha effetto, l'avevo provato come prima cosa anche io.

Devi andare nei file di configurazione, tieni presente che l'utente è wwwrun.

risposto 8 anni fa
LonelyWolf
X 0 X

Credo di aver risolto.

Ho cambiato il tag di apertura della terzultima riga da <? a <?php, adesso funziona, farò altre prove ma credo che l'errore era quello.

Ciao

Amos

risposto 8 anni fa
amosse
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda