Newsgroup: it.comp.www.php
Titolo: Menù a tendina che non funziona più.

Ciao a tutti.
Ho aggiornano php alla versione 4.1.0 e questo scrip non mi funziona più (il 
pacchetto completo di EasyPhP).
Si tratta di un semplice script trovato su internet che mi popolava un menu 
a tendina con i dati presenti in una tabella.
Da premettere che non sono per niente bravo in programmazine, di conseguenza 
sono in crisi, in quanto ho creato un piccolo programma che mi permette di 
gestire dei semplici dati incrociandoli tra varie tabelle.
Siccome il tutto mi funzionava da più di tre anni, adesso ho serie 
difficoltà a riscrivere tutto il codice.
Ho letto che in questa versione ci sono delle diversità rispetto alla 3.
Qualcuno può aiutarmi?
Questo è il codice completo:
...[cut]...
<form method=post  action=insert_1.php>
<?php
            $db = mysql_connect($db_host, $db_user, $db_password);
            if ($db == FALSE)
            die ("Errore nella connessione. Verificare i parametri nel file 
config.inc.php");
            mysql_select_db($db_name, $db)
            or die ("Errore nella selezione del database. Verificare i 
parametri nel file config.inc.php");
            $sql = "SELECT * FROM table_op ORDER BY op ASC";
            $sql_result = mysql_query($sql,$db)
            or die("Impossibile eseguire la query.");
            while ($row = mysql_fetch_array($sql_result))
            {
              $op = $row["op"];
              $option_1 .= "<OPTION value=\"$op\">$op</OPTION>";
            }
?>
        <SELECT  name="gl_op_num"><? echo "$option_1"; ?></SELECT>
<input type=submit value=Invia>
<input type=reset value=Cancella>
</form>
...[cut]...
L'errore è: il seguente: "Notice: Undefined variable: option_1"
Grazie a chiunque mi possa dare una mano
Graziano.

 L'errore h: il seguente: "Notice: Undefined variable: option_1"
Non e' un errore, e' un notice.
Prima del ciclo while inserisci:
$option_1 = '';
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Ok, grazie.
Avevo fatto giŕ questa prova, solo che da imbranato, avevo messo l'apice (")
anzichč du apici (').
Adesso, quando passo i dati al secondo file con il comando "post",
ho questa segnalazione:
Notice: Undefined variable: gl_op_num in .....
la riga in questione č:
..................
if (trim($gl_op_num) == "" OR trim($gl_op_num) == "--"):
echo "ATTENZIONE! Inserire un Codice valido!"
     . "<a href=" . "javascript:history.back()" . ">" . "<BR>" . "Torna
indietro</a>";
else:
................
ho porvato con
$gl_op_num = '';
all'inizio del ciclo, ma credo non sia la stessa cosa.
Praticamente il valore che io ho selezionato precedentemente mi diventa
"vuoto" o "nullo".
Conseguentemente ho questa segnalazione.
Ho letto un po in giro a proposito di questo, ma da come ho capito sarebbe
da riscrivere interamente il codice. Se non ho capito male, il problema stŕ
proprio nel passaggio dalla vecchia versione a quella nuova di php.
Grazie.
Graziano.
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:uvxde.77281$IN.13...@twister2.libero.it...


 if (trim($gl_op_num) == "" OR trim($gl_op_num) == "--"):
Sei sicuro di non sare usando register_globals = off anche con codice
che lo richiede ad on?
if (isset ($_POST['gl_op_num']) && (trim ($_POST['gl_op_num']) == "")
|| ($_POST['gl_op_num'] == "--")) {
Da testare.


Ok, parte dei problemi gli ho risolti.
Come anticipavo, dopo aver letto un po sui vari gruppi, ho trovato il
problema.
In pratica ho commesso degli errori di "normalizzazione" (credo si dica
cosě).
In tutti i cicli che avevo scritto per la "vecchissima" versine di php,
venivano interpretati male dalla nuova.
In pratica ho dovuto semplicemente inserire gli apici in alcuni script, e
riportarmi nella nuova pagina le variabili in questo modo:
$gl_op_num = $HTTP_POST_VARS["gl_op_num"];
Adesso č sorto un altro problema:
quando inserisco in automatico delle date, del tipo
05 maggio 2005, ore 10:45:05
prima dell'aggiornamento con uno script le mandavo nel formato:
20050505104505
Ho notato che MySql me le formatta in quest'altro modo:
2005-05-05 10:45:00
Come faccio a far tornare tutto come prima senza riscrivere altro codice?
Mi sono letto rigo per rigo tutti i file di configurazione sia di MySql, sia
di PhP e sia di Apache,
ma non ho trovato nulla (almeno per il momento).
Grazie mille e scusatemi se i problemi li illustro in un modo non proprio
tecnico.
Graziano.
"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio
news:ZmRde.78913$IN.13...@twister2.libero.it...


 codice? 
Cambia il tipo di campo, fai riferimento al manuale ufficiale per
capire come.
-- 
I am what I am, I do what I can


In pratica io inserisco il dato nel formato TIMESTAMP mentre quando vado a
rivederlo
me lo da formattato come DATETIME.
Visualizzo le variabili di sistema di MySql è noto
che datetime format corrisponde sia come valore sessione che valore globale
a:
%Y-%m-%d %H:%i:%s
Non trovo dove andare a cambiare questa formattazione.
Per il resto del post grazie dei suggerimenti, li ho attuati.
Nel frattempo vado a leggermi il manuale mysql.
Grazie ancora.
Graziano


 Non trovo dove andare a cambiare questa formattazione.
Non e' una formattazione, e' il tipo di campo.
