Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 29
  1. #11
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    vero...scusami nn me n'ero accorto...!

  2. #12
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    ..... scusate un attimo ma e' follia pura scrivede degli else del genere perche' nn ti capisci piu'.

    Non ho letto accurtamente tutto pero' dal codice che ho visto ci sono soluzione nettamente migliori.

    tipo :


    Codice PHP:
    <?
    /* Prima della doctype e dell'html */

    // Fogrgiamo le variabili passa in post se ce ne sono
    if( $_POST && count($_POST)>)
    {
        foreach(
    $_POST as $n=>$v)
            $
    $n=$v;
    }

    /*mettiamo l'html*/
    ?>
    <form name="pippa" action="<?=$_SERVER[PHP_SELF]?>" method="post">

    <select name="selezione" >

    <option value="-1" <?=( !_POST || $selezione==-" selected=\"selected\" " ""  )?> >Seleziona</option>

    <option value="0" <?=$_POST && $selezione==0  " selected=\"selected\" " ""  )?> >Opzione 0</option>
    <option value="1" <?=$_POST && $selezione==1  " selected=\"selected\" " ""  )?> >Opzione 1</option>
    <option value="2" <?=$_POST && $selezione==2  " selected=\"selected\" " ""  )?> >Opzione 2</option>


    </select>
    </form>
    Cosi' il codice e' 3 mila volte piu' pulito!!!!!!!!!!!!
    E ti puoi gestire le var passate con post senza dover ogni volta accederci tramite $_POST[nome_var] ma ci accederai direttamente con $nome_var.

    Comodo no?
    Poi gli if aritmetici ti consentono di ridurre parentesi e blocchi if inserendo il controllo direttamente nella riga della option. Lasciando il codice molto piu' leggibile.

    io di solito faccio cosi' e mi trovo da dio, ho codice pulito, vedo subito i casi e riduco il numero di righe da scrivere.

    Per il resto vedi te.

  3. #13
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    Originariamente inviato da Virus_101
    ..... scusate un attimo ma e' follia pura scrivede degli else del genere perche' nn ti capisci piu'.

    Non ho letto accurtamente tutto pero' dal codice che ho visto ci sono soluzione nettamente migliori.

    Cosi' il codice e' 3 mila volte piu' pulito!!!!!!!!!!!!
    E ti puoi gestire le var passate con post senza dover ogni volta accederci tramite $_POST[nome_var] ma ci accederai direttamente con $nome_var.

    Comodo no?
    Poi gli if aritmetici ti consentono di ridurre parentesi e blocchi if inserendo il controllo direttamente nella riga della option. Lasciando il codice molto piu' leggibile.

    io di solito faccio cosi' e mi trovo da dio, ho codice pulito, vedo subito i casi e riduco il numero di righe da scrivere.

    Per il resto vedi te.
    si vero...ma era stato precisato da me nel primo post che ho cominciato a scrivere qualcosa in php da due giorni, precisamente da sabato pomeriggio finita scuola, dopo nei post successivi abidibo mi ha spiegato passo passo come si poteva risolvere tutto, e successivamente ha fatto una versione compatta del codice che vien letto molto più velocemente

  4. #14
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Infatti nulla da dire ho detto che nn avevo letto completamete il post ma solo gaurdato il codice e cmq la sua versione compatta non e' cosi' compatta e l'identazione puo' creare confusione come per esempio :

    <? echo $var ?>

    su puo' fare anche

    <?=$var?>

    Che e' piu' compatto e facile da leggere.
    Inoltre convertendo le variabili come ti ho fatto vedere nel ciclo foreach dopo ti deventa moooolto piu' semplice gestirle, invece di fare $_POST[nomevar] fai direttamente $nomevar non e' piu' comodo?

    Inoltre io reputo una cattiva pratica fare
    <?
    if([condizione])
    {
    ?>
    <form>.....</form>
    <?
    }
    else
    .....


    In quanto rischi di perdere di vista il codice che vai a stampare.
    Io di solito prima faccio tutti i controlli del caso quindi inserirsco in foramto stringa l'html in varibili e poi nella pagina stampo le variabili.

    Esempio

    $testi=array();

    $testi[intestazione] = "<meta name=\"robots\" content=\"intestazione di base\">";


    if( [coindizione] )
    $testi[intestazione] = "<meta name=\"robots\" content=\"no follow\">
    <title =\"TITOLO SPECIFICO\">";

    ....


    <html>
    <head>
    <?=$testi[intestazione]?>
    ......</head>



    Cio genera codice e pagine moooolto piu' pulite, facili da modificare e gestire.
    Poi sei libero di fare come vuoi, io ti do questo consiglio visto che mi tocca lavorare mediamente con files da 1500/2000 righe di codice. E se nn faccio cosi' sclero di brutto.

    Ciauz.

  5. #15
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    53
    Originariamente inviato da Virus_101
    Infatti nulla da dire ho detto che nn avevo letto completamete il post ma solo gaurdato il codice e cmq la sua versione compatta non e' cosi' compatta e l'identazione puo' creare confusione come per esempio [...]
    beh dai, sono proprie opinioni, io mi trovo molto meglio a scriverle così, come su programmi veri e propri, scrivendone da circa 2000 righe ciascuno, contando poi che si possono usare anche degli ide molto banali, non si hanno più problemi di questo genere...

  6. #16
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    SI beh vero ognuno scriva come vuole.

    Io ti dico solo di stare attento a come scrivi il php.

    Purtroppo php puo' sembrare un linguaggio come altri ma se nn ci stai attento rischi di incasinarti tanto le cose sulla pagina anche perche' quando lavori in php lavori con piu' di 2 tecnologie e formati diversi.

    1 html
    2 css
    3 php
    4 javascript
    4 flash

    etc.....

    E come vedi bisogna trovare un buon metodo affinche' questi formati nn si incasinino tra loro all'interno della pagina che stai realizzando.

    Inoltre io preferisco tenere sempre separate le cose.

    In primis php, che e' eseguito lato server, a cui delego i contrlli delle var etc e quindi gli faccio generare le eventuali stringhe html.
    Quindi creo la pagina html e solo a questo punto nell'html stampo il valore delle var precedentemente salvate.

    Fidati e' un buon metodo sopratto se poi devi gestire tanti div con stili css elementi dinamici fatti in js(ed eventualmente in ajax), css (statici o dinamici), intestazioni, metatag e quant'altro la pagina richieda.

    Anche perche' e' vero che alla fine funziona ma se poi ci devi mettere le mani sopra per fare alcune modifiche e' sempre meglio avere le cose distinte e separate sia per leggibilita' sia per tempo che ti porta via.

    E' vero che gli ide danno una mano per esempio netbeans per php e' fantastico. Ma gli ide nn fanno tutto, e del codice incasinato ti fa sempre perdere tempo se devi modificarlo. E gli ide nn risolvono sempre i problemi.

    Vedi te.

  7. #17
    Sicuramente risparmi righe di codice facendo una lettura dell'array $_POST in quel modo, ma mi viene un dubbio...
    infatti in quel modo assegni tutte le variabili contenute in $_POST, ma proprio tutte... e allora se un visitatore è un po' stronzo, utilizza un software tipo webScarab, ti blocca le request, le modifica e inizia a definire variabili post a manetta, magari cercando qualcuno tra quei nomi di variabile che spesso i programmatori usano e si portano dietro per tutto il file da 2000 righe, come risultato ottieni che le variabili vengono riscritte e ridefinite e magari si spu**ana tutto.
    Quindi se si vuole usare quel metodo bisognerebbe mettere questa parte di codice
    Codice PHP:
    if( $_POST && count($_POST)>)
    {
        foreach(
    $_POST as $n=>$v)
            $
    $n=$v;

    all'inizio di tutto, prima di ogni altra definizione di variabile, in modo che al limite sono quelle iniettate ad essere sovrascritte...
    Probabilmente, Virus_101 fai proprio così, pero' meglio specificarlo per chi magari non ci pensa:
    assolutamente non bisogna assegnare variabili prima di quella parte di codice, tantomeno includere file php dove si definiscono variabili che poi vengono utilizzate dopo, occhio alla sicurezza informatica!
    Per fare un esempio stupido che non capiterà mai:
    Codice PHP:
    $query "SELECT * FROM tabella WHERE id=5";
    if( 
    $_POST && count($_POST)>)
    {
        foreach(
    $_POST as $n=>$v)
            $
    $n=$v;

    echo 
    $var_post;
    $results funzione_per_query($query);
    foreach(
    $results as $result) {echo $result}; 
    Manipolo i post: query=SELECT password FROM user
    la query che viene eseguita è quella manipolata e stampo tutte le password degli utenti della piattaforma.
    Certo è un esempio elle balle buttato li, comunque è solo per dire che bisogna fare attenzione quando automatizzi la lettura di variabili passate tramite requet, perchè non decidi tu quale leggere e quale no.
    Ciao a tutti
    =======================
    http://www.abidibo.net

  8. #18
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Beh guarda sinceramente nn ti servono tool strani per modificare request basta che ti rifai la form in un pagina html e ti nomini i campi ella form come vuoi per speridre allo script php quello che ti pare.

    Sinceramente nn vedo il problema, ovvio che se le var che poi vado usare finiscono in una query le vado a controllare.

    GUarda che nn e' un grosso problema quello che dici te.
    Io le var le controllo sempre e quelle da post (anche se frogiate dinamicamente) non causa no problemi di sicurezza NEMMENO se poi l'utente spedisce request fatte come vuole lui PENSA :

    1- Effettuo il wrap
    foreach($_POST as $n=>$v)
    $$n=$v;

    2- Definisco tutte le variabili che uso sovrascrivendo i valori di default (Come si faceva nel vecchio C-ansi)
    $controllo = false;
    $indice = 0;
    etc ...

    A questo punto dove sta il problema????????
    ANche se l'utente si fa una form o forgia una request come vuole lui il set di variabili viene sempre filtrato e controllato!!
    Altri tipi di varibili come per esempio quelle riservate alle sessioni le controlli semplicemente nel foeach in modo da ignorare i nomi "sensibili" tipo
    Codice PHP:
    foreach($_POST as $n=>$v)
    {
       if( 
    $n!=="_SESSION"  || $n!="_REQUEST" || $n!="_SERVER" || $n!="_GET" || $n!="_POST"  )
         $
    $n=$v;
    }

    // oppure li controlli con strpos  che e' pure meglio tipo

    if(   strpostrim($n) , "_SESSION" )===false ...... ) 
    A sto punto dimmi dove vedi il problema???
    Se una stringa deve finire in una query la funzione mysql_real_escape_string($string) inoltre controllata in concomitanza con la configurazione delle gpc_magic_quotes del server ti consente di evitare quasi tutti i tipi di injection.
    Per il resto la generazione dinamica non genera assolutamente tutti i problemi che credi, anzi e' comoda ti rende il codice piu' veloce da sviluppare e piu' facile da leggere con qlke minimo accorgimento. Ovviamente se poi usi una struttra OO (Object Oriented) i problemi si dimezzano in quanto usando oggetti i dati finiscono negli attributi delle classi ......

    SInceramente ci sono problemi di sicurezza molto piu' grandi di questo.
    E questa tecnica e' pure usata spesso e fidati che nn crea problemi di sicurezza.
    E poi scusa solo un pazzo scriverebbe il codice che messo te di esempio.

  9. #19
    Stai calmo, non ti scaldare tanto, forse non hai letto bene. Ovvio che se usi tutte le precauzioni che hai citato il codice va benissimo ed è snello. Ho solo scritto quallo che tu ti eri dimenticato di dire, sai, siccome in genere si aiuta gente alle primissime armi con il php, non tutti danno per scontate queste cose, allora se uno arriva e si copia il codice per leggere dinamicamente le variabili e lo sbatte in un punto qualunque dello script senza fare controlli di alcun tipo allora sarai daccordo con me che qualche problema di sicurezza c'è.
    In ogni caso io non sono qui per fare il saccente e se una persona che usa php da due giorni mi chiede cose semplicissime perchè ha bisogno che qualcuno gliele spieghi, allora gli scrivo anche un codice semplice, sicuramente piu' abbordabile per una persona che inizia, poi non credere che nel mio lavoro usi programmare in quel modo. Ma è bene imparare a programmare per passi successivi se hai iniziato ieri.
    =======================
    http://www.abidibo.net

  10. #20
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Boh io nn mi sono mica scaldato.....

    Spero tu nn abbia capito male quello che ho scritto.

    Hai ragione se uno iniza deve provedere per passi nulla da dire.
    Io ho solo scritto come la vedo e come mi trovo comodo io, giustamente te hai precisato di fare attenzione con tale soluzione in quanto potrebbe causare problemi. E io ti ho fatto notare come con un paio di piccoli accorgimenti cio' non succede.

    Non mi sono scaldato e non sto qua nemmeno io a fare il saccente io ho solo proposto una soluzione che a mio avviso e' comoda. E consente di lavorare in tranquillita' con files e forms piccole e grandi.

    In ogni caso io non sono qui per fare il saccente e se una persona che usa php da due giorni mi chiede cose semplicissime perchè ha bisogno che qualcuno gliele spieghi, allora gli scrivo anche un codice semplice, sicuramente piu' abbordabile per una persona che inizia,
    Io infatti sinceramente non voglio spiegare niente a nessuno, quello e' compito dei docenti; ho solo detto come mi sono trovato bene ad affrontare il problema di questo thread. E come di solito trovo comodo operare.

    Poi come scritto piu' e piu' volte fate voi.

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.