Visualizzazione dei risultati da 1 a 6 su 6

Discussione: controllo dati post

  1. #1

    controllo dati post

    ho un controllo che mi sta facendo dannare

    codice:
    echo ($post==true)?$indirizzo:"non esiste";
    if ($post==true && ($indirizzo=="" || $indirizzo=="inserire l'indirizzo")){
      echo "
    \nhai dimenticato di specificare l'indirizzo";
      $err=true;
    }

    il problema è che il primo echo funziona correttamente e mi scrive "inserire l'indirizzo" ma invece non mi entra nel secondo! perché? all'inizio pensavo fosse un problema di apici, e quindi ho aggiunto anche uno slash, ma poi l'ho scartato perché i dati li ricevo attraverso un post e li ricavo in questo modo:

    codice:
    if ($_POST['imageField_x'] && $_POST['imageField_x']){
      $post=true;
      foreach($_POST as $key=>$value){
      $$key=trim(htmlentities(stripslashes($_POST[$key]), ENT_QUOTES));
      }
    }

    avete qualche idea del perché non entri mai nel secondo if, nonstante il primo mi scriva un valore contemplato nella clausola? :master:



    Grazie per qualsiasi tipo di aiuto!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    mettiamoci una pietra sopra e diciamo che sono un cretino

    utilizzando l'htmlentities e passando il parametro ENT_QUOTES era logico che dovevo usare il corrispondente valore convertito dell'apostrofo, quindi & #039; (senza spazi).

    Ed infatti così facendo funziona. Chiedo venia per la richiesta inutile che ho fatto
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Occhio che l'echo non visualizza caratteri speciali come \n ed affini. Fai un controllo con strlen per assicurarti che il problema non sia questo

    edit: eheh è vero.. beh non avevo fatto caso neppure io a quell'htmlentities cmq ti conviene sempre racchiudere l'output di echo in un contenitore tipo echo '[',$var,']' e guardare sempre i sorgenti o modificare l'header in modo da passare i contenuti come documento di testo
    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

  4. #4
    terrò conto dei tuoi suggerimenti! Grazie mille!


    p.s. io di solito passo il contenuto di echo anche attraverso le graffe: echo "{$var}"; che differenza c'è con l'esempio che hai fatto tu?
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Nel tuo caso le graffe vengono prese come come un inserimento di variabile e quindi non vanno in output.
    Scrivere echo "{$var}" o scrivere echo $var è la stessa cosa.
    Nel mio caso se var='ciao' va in output '[ciao]'.
    La cosa è utile perchè per esempio nel tuo caso potrebbe esserci stata una \n nella stringa o un altro carattere speciale, anche non visualizzabile.
    Quelli visualizzabili se racchiudi la stringa in un [] li vedi subito perchè se per esempio la stringa fosse stata 'test\t' avresti visualizzato [test ].
    Per assicurarti cmq che non ci siano caratteri al di fuori di quello che vedi dovresti usare un strlen o meglio ancora sfruttando le funzioni precostituite un var_dump.
    Normalmente quando vedi qualcosa di inatteso dovresti andarci con i piedi di piombo. Echo e print sono funzioncine sceme per l'output ma per il debug è molto meglio usare var_dump() e se possibile abbinare un tipo di documento neutro come Content-type: text/plain; all'output (questo avrebbe forzato il browser a visualizzare & senza interpretarlo)

    Lungo le due rive del fiume gelato si stendeva la cupa e tetra foresta di abeti, dai quali il vento aveva appena spazzato il manto di brina. Nella luce crepuscolare quegli abeti neri e sinistri sembravano inclinarsi l'uno verso l'altro. Un silenzio minaccioso incombeva sul paesaggio, privo di qualsiasi segno di vita o di movimento, e desolato e freddo al punto da non poter ispirare che un solo sentimento: quello della più triste malinconia. E nello stesso tempo pareva che da quel paesaggio trapelasse una specie di riso, un riso ben più spaventoso di qualsiasi malinconia o tristezza, un riso tragico, come quello di una sfinge, un riso agghiacciante più della brina e che rammendava l'incombere minaccioso dell'ineluttabile. Era la saggezza potente e impenetrabile dell'eternità che irrideva alla vita, alla sua futilità e agli sforzi degli uomini.

  6. #6
    non potevo ricevere risposta migliore e più dettagliata di questa


    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.