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

    Problemi confronto nome campo $POST e stringa

    Ragazzi, da un ciclo Foreach devo escludere il campo "submit", ho provato così ma non lo esclude:

    codice:
    foreach ($_POST as $campo => $valore){
      if ($campo != "submit"){
        $email_message .= "".$campo.": ".$valore."
    ";
      }
    }
    nella variabile $email_message mi passa anche il campo submit, come mai?

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453

    Re: Problemi confronto nome campo $POST e stringa

    Originariamente inviato da lapiadina
    Ragazzi, da un ciclo Foreach devo escludere il campo "submit", ho provato così ma non lo esclude:

    codice:
    foreach ($_POST as $campo => $valore){
      if ($campo != "submit"){
        $email_message .= "".$campo.": ".$valore."
    ";
      }
    }
    nella variabile $email_message mi passa anche il campo submit, come mai?
    Posta il form e vediamo

    per ora potresti provare una cosa del genere
    Codice PHP:
    if(end($_POST)!=$valore

  3. #3
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    prima del ciclo foreach potresti provare a mettere
    codice:
    unset($_POST['submit']);
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  4. #4
    Ciao ragazzi,
    grazie per il vostro aiuto, ho utilizzato la funziona unset() proposta da lucky, in quanto oltre al submit ho deciso di togliere anche il campo "oggetto", quindi ho anteposto al ciclo foreach:
    codice:
    unset($_POST['submit'],$_POST['oggetto']);
    domanda, ma perchè il confronto $campo != "submit" non esclude il $_POST['submit']? forse perchè "submit" è una stringa e "$campo" è un array.. ho detto una boiata?

  5. #5
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    In questo momento non posso fare dei test ma la prima cosa che mi viene in mente è che al momento del foreach non sia possibile (per qualche motivo, non saprei) risalire al nome del campo

    i test che farei io sono:
    mettere un
    codice:
    print_r($_POST); oppure var_dump($_POST);
    prima del foreach. questa funzione ti stampa la struttura dell'array e vedi effettivamente se è strutturata nel modo 'submit'=>'valore' o se magari ci sono sotto-array

    se vuoi fare lo stesso test 'in diretta' aggiungi dentro il foreach
    codice:
    echo 'Sto facendo il controllo '.$campo.' == submit ?';
    Anche in questo modo controlli ad ogni giro del foreach il valore effettivo di $campo in modo da capire cosa c'è che non va

    ultima prova (che mi pare assurda ma ce la mettiamo lo stesso) fai un cast al momento dell'if:
    codice:
    if((string)$campo != 'submit') {
    eventualmente abbina questa cosa alla seconda soluzione che ti ho dato, ma ripeto non credo sia questo il problema.

    Poi fammi sapere che sono curioso!
    Ti rivedrò in un'altra vita…quando saremo tutti e due gatti...

  6. #6
    Ciao Lucky,
    grazie per i tuoi spunti... allora, avevo già provato anch'io con
    codice:
    if((string)$campo != 'submit')
    ma non avevo risolto niente, poi ho fatto i test che mi hai suggerito:
    codice:
    print_r($_POST);
    da questo risultato:
    codice:
    Array ( [oggetto] => Richiesta informazioni [nome] => mionome [indirizzo] => Indirizzo [cap] => Codice Postale [citta] => Città [email] => miaemail [telefono] => 123456789 [messaggio] => Messaggio [privacy] => [submit] => Invia )
    mentre
    codice:
    echo 'Sto facendo il controllo '.$campo.' == submit ?';
    da questo:
    codice:
    Sto facendo il controllo oggetto == submit ?Sto facendo il controllo nome == submit ?Sto facendo il controllo indirizzo == submit ?Sto facendo il controllo cap == submit ?Sto facendo il controllo citta == submit ?Sto facendo il controllo email == submit ?Sto facendo il controllo telefono == submit ?Sto facendo il controllo messaggio == submit ?Sto facendo il controllo privacy == submit ?Sto facendo il controllo submit == submit ?
    quindi "submit == submit" e perciò $campo != "submit" dovrebbe escludere dal ciclo foreach il submit... ma non è così...

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.