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 10 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 10 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 10 anni fa
amosse
X 0 X

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

 :bye:

risposto 10 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 10 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 10 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 10 anni fa
amosse
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda