Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Variabili in method="post"

    Salve a tutti, mi sto da poco avvicinando al PHP (ho da qualche giorno finito la guida di base di Html.it), e ho un po' di dubbi su certi argomenti che la guida non è riuscita a togliermi.

    Il primo problema che ho incontrato sono le variabili cosiddette "superglobali" ($_POST[] in particolare); la guida diceva che per ricavare i dati da un form si usa questa variabile associata al valore dell'attributo "name" di ogni campo <input />, però dando un'occhiata a degli script già fatti, ho visto che alcuni, invece di utilizzare la forma

    Codice PHP:
    $_POST['valore_attributo'
    creano una variabile $valore_attributo (prendendo il valore del campo "name" e aggiungendovi solo il simbolo dollaro) e la usano allo stesso modo della variabile $_POST. Ora mi chiedo, c'è qualche oscuro trucco a me sconosciuto per fare una cosa del genere (perché ho spulciato questi script più volte e non ho trovato nessuna assegnazione del valore di $_POST a $valore_attributo), o è PHP che automaticamente crea queste variabili?

    Altra cosa: è possibile, così come per HTML e xHTML, integrare codice PHP in pagine XML e XSL? Se si, c'è qualche procedimento particolare da seguire? (domanda stupida: i fogli di stile in formato PHP non sono fattibili vero? )

    poi (:P), nei blocchi condizionali, dopo il blocco che segue l'if, è obbligatorio mettere un else (anche se con un espressione inutile), o si può omettere? Io, tutte le volte che lo ometto, il browser non mi ricarica la pagina :/

    Finito, per ora... :P
    Ringrazio anticipatamente per le risposte e mi scuso per lo sproloquio, ma ripeto, sono proprio agli inizi.


    P.S.= Mi sapreste consigliare un libro fatto bene per imparare in modo approfondito PHP?

  2. #2
    per quanto riguarda la prima domanda ... il metodo "oscuro" è sconsigliato, sconveniente, pericoloso per la sicurezza, consusionario, da 3/4 anni di default disabilitato e da PHP6 sarà impossibile usarlo ^^

    comunque, giusto per dovere di cronaca, devi abilitare il register_global per usare quella tipologia di variabili

    per quanto riguarda XML, XSL e XSLT ... si ... si può fare direttamente con php, con apache o butti fuori il necessario per farla fare al browser
    http://it2.php.net/xslt

    per l'ultima domanda ... ovviamente no, non è obbligatorio mettere l'else ...
    codice:
    if (true == true)
    {
      echo "Cavolo ... la condizione si è verificata!!! :D";
    }
    funziona benissimo
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Originariamente inviato da daniele_dll
    per quanto riguarda la prima domanda ... il metodo "oscuro" è sconsigliato, sconveniente, pericoloso per la sicurezza, consusionario, da 3/4 anni di default disabilitato e da PHP6 sarà impossibile usarlo ^^
    Ottimo xD Comunque io uso $_POST, era solo per farmi una cultura a riguardo :P

    per quanto riguarda XML, XSL e XSLT ... si ... si può fare direttamente con php, con apache o butti fuori il necessario per farla fare al browser
    http://it2.php.net/xslt
    ookey thx ^^
    (approposito, da xampp, come si cambiano i permessi per il db presente nel pacchetto? Ce l'ho installato sul pc e non ho i permessi per reare un nuovo database)

    per l'ultima domanda ... ovviamente no, non è obbligatorio mettere l'else ...
    codice:
    if (true == true)
    {
      echo "Cavolo ... la condizione si è verificata!!! :D";
    }
    funziona benissimo
    Allora sbaglio qualcos'altro perché Opera e Firefox fanno storie..
    Grazie per le risposte

  4. #4
    al browser interessa relativamente quello che fai con php, a lui interessa quello che php butta fuori come output

    se ti varia il risultato tra i vari browser ti consiglio di guardare il codice sorgente della pagina che ti buttano fuori come risultato i tuoi script

    per quanto riguarda il db ... non ho capito la domanda ... ma ti consiglio di dare un occhio a phpmyadmin, heidisql, sql yog e cosi via
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Originariamente inviato da daniele_dll
    al browser interessa relativamente quello che fai con php, a lui interessa quello che php butta fuori come output

    se ti varia il risultato tra i vari browser ti consiglio di guardare il codice sorgente della pagina che ti buttano fuori come risultato i tuoi script
    Praticamente io ho uno script che ho fatto come test, che dentro ha del codice vario e un if strutturato così:
    Codice PHP:
    if (condizione) {
       
    blocco_condizionale_1
    } elseif (condizione_2) {
       
    blocco_condizionale_2
    } else {
       
    blocco_condizionale_3

    e praticamente, quando cancello la parte dall'else in poi entrambi i browser mi restituiscono una pagina vuota, dove se faccio View Source, ottiengo un'altra pagina vuota. Ma, se hai detto che deve funzionare, vuol dire che sbaglio da qualche altra parte ^^

    per quanto riguarda il db ... non ho capito la domanda ... ma ti consiglio di dare un occhio a phpmyadmin, heidisql, sql yog e cosi via
    Praticamente ho scaricato il pacchetto XAMPP (che comprende il web server apache, MySQL, phpMyAdmin, e il supporto a PHP) però, quando provo a creare un nuovo database da phpMyAdmin con una query mi dice che non ho i permessi per farlo, e non so come cambiarli..
    Ho tutto installato sul mio pc, quindi le impostazioni posso cambiarle di sicuro, è che non so come :P

  6. #6
    ti dice che non hai i permessi? strano ... accedi come root o con un altro utente?

    per quanto riguarda l'IF, beh, se fai stampare qualcosa SOLTANTO dentro le varie parti dell'if (if/ifelse/else) e togli l'else senza fare verificare nessuna condizione è normale

    IE potrebbe mostrartelo a video per via della cache
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Originariamente inviato da daniele_dll
    ti dice che non hai i permessi? strano ... accedi come root o con un altro utente?
    Veramente io cambiai tempo fa il nome utente nel file config.inc.php da root a pma perché non mi faceva entrare, cambiato quello (ho lasciato la variabile password vuota così come in origine) adesso mi fa accedere come pma, ma dalla index di phpMyAdmin mi dice:

    Crea un nuovo database:
    Nessun Privilegio


    per quanto riguarda l'IF, beh, se fai stampare qualcosa SOLTANTO dentro le varie parti dell'if (if/ifelse/else) e togli l'else senza fare verificare nessuna condizione è normale

    IE potrebbe mostrartelo a video per via della cache
    Qualcosa dovrebbe comparire comunque, perché l'if non fa altro che cambiare i valori di due variabili a seconda dell'ora del giorno, e queste variabili non sono altro che dei codici esadecimali per i colori che vanno a modificare in minima parte in css della pagina (il css non è in un file a parte); quindi qualcosa dovrebbe comparire in ogni caso... almeno credo :P

  8. #8
    Originariamente inviato da Hirakeydos
    Veramente io cambiai tempo fa il nome utente nel file config.inc.php da root a pma perché non mi faceva entrare, cambiato quello (ho lasciato la variabile password vuota così come in origine) adesso mi fa accedere come pma, ma dalla index di phpMyAdmin mi dice:

    Crea un nuovo database:
    Nessun Privilegio
    beh, allora direi che è perfettamente normale ... LOL

    quando non si installa manualmente il tutto non si hanno le basi per risolvere questi problemi che sono estramemnte semplici da risolvere )

    rimetti root con la relativa password se la ricordi

    Qualcosa dovrebbe comparire comunque, perché l'if non fa altro che cambiare i valori di due variabili a seconda dell'ora del giorno, e queste variabili non sono altro che dei codici esadecimali per i colori che vanno a modificare in minima parte in css della pagina (il css non è in un file a parte); quindi qualcosa dovrebbe comparire in ogni caso... almeno credo :P
    posta il codice per intero
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    Originariamente inviato da daniele_dll
    beh, allora direi che è perfettamente normale ... LOL

    quando non si installa manualmente il tutto non si hanno le basi per risolvere questi problemi che sono estramemnte semplici da risolvere )

    rimetti root con la relativa password se la ricordi
    Ehm.. ecco.. non me la ricordo :/
    Sono un cogl*, I know
    Comunque ho deciso, disinstallo XAMPP e tutto il resto e mi reinstallo manualmente tutti i componenti, mi sa che è meglio xD

    posta il codice per intero
    Codice PHP:
    <?php
    $ora_attuale 
    date('H:i:s');

    $ora date('H',mktime(date('H'),0,0,0,0,0));
    $min date('i',mktime(0,date('i'),0,0,0,0));

    //questo è l'if incriminato
    if (($ora >= 16) && ($min >= 05)) {
      
    $color '#ffffff';
      
    $bg_col '#000000';
      
    $t_deco 'underline';
      } elseif (((
    $ora >= 13) && ($min >= 31)) && (($ora <= 16) && ($min <= 04))) {
        
    $color 'orange';
        
    $bg_col 'red';
        
    $t_deco 'upperline';
        } else {
          
    $color 'blue';
          }
    ?>
    <html>
    <head>
    <title>prova</title>
    <?php
    print<<<EOT
    <style type="text/css">
    html {
      background-color: 
    $bg_col;
      color: 
    $color;
      text-decoration: 
    $t_deco;
    }
    EOT;
    ?>
    </style>
    </head>
    <body>
    <?php
    #echo "$a


    #$ora_attuale


    #$ora


    #$min";
    echo $_SERVER["HTTP_USER_AGENT"];
    ?>









    <form action="" method="post" name="form1">
        <input type="text" name="nome">
        <input type="checkbox" name="nuovo" value="si">
        <input type="submit" name="submit" value="invia">
    </form> 


    <?php
    echo $_POST['nome'];
    if (
    $_POST['nuovo'] == 'si')
    {
    echo 
    "
    accetto"
    ;
    } else {
    echo 
    "
    non accetto"
    ;
    }
    ?>






    <form action="" name="prov" method="post">
      <input type="text" name="usrn">

      <input type="password" name="pwd">

      <input type="password" name="confirm_password">

      <input type="text" name="e-mail">

      <input type="text" name="confirm_e-mail">

      <input type="checkbox" name="terms_conditions" value="Accetto">

      <input type="submit" name="submit" value="Submit">
    </form>
    <?php
    $fp 
    fopen('prova.txt''a+');
    fwrite($fp$_POST['usrn']."\n");
    fwrite($fp$_POST['pwd']."\n");
    fwrite($fp$_POST['confirm_password']."\n");
    fwrite($fp$_POST['e-mail']."\n");
    fwrite($fp$_POST['confirm_e-mail']."\n");
    fwrite($fp$_POST['terms_conditions']."\n");
    fclose($fp);
    ?>
    </body>
    </html>
    Non ti scandalizzare, è il primo "script" (se così lo si può chiamare xD) che ho realizzato appena dopo aver finito la guida. Contiene un po di prove: creare e scrivere su file, gestire le date ecc. Non è grezzo, è molto peggio xD

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.