Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. [Risolto] [php]Pagina di invio non visibile
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • P
      pikadilly Super User • ultima modifica di

      [Risolto] [php]Pagina di invio non visibile

      Salve,
      mi trovo di nuovo senza programmatore(attualmente in vacanza, beato lui) e così mi sono di nuovo affacciata alla programmazione semplice...
      Io per inviare una mail da un sito utilizzavo Asp...adesso sono passata al php(prova)
      Tutto funziona, la mail arriva perfetta, l'unica nota dolente è che se dal browser si vuole accedere alla pagina di conferma che chiameremo "invio.php" ci si accede tranquillamente e ovviamente a me arriva una mail vuota.
      Ho reso i campi della form obbligatori ma il problema non è questo.
      lo script in php è riportato di seguito e si trova appunto in Invio.php.

      <?php
      $to = "[email protected]";
      $subject = $_POST['object'];
      $body = $_POST['body'];
      $headers = "From: " . $_POST['mail'] . "\n";
      mail($to,$object,$body,$headers);
      ?>
      ```Con asp non avevo problemi perchè se dal browser provavo ad accedere ad" invio.asp" ricevevo un messaggio di errore...con php non so dove sbattere la testa.
      Ringrazio come sempre in anticipo chi saprà aiutarmi
      :)
      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • shad
        shad Moderatore • ultima modifica di

        Ciao pikadilly,
        hai provato ad inserire un controllo? Qualcosa tipo questo:

        if (($_POST['object'] = "") || ($_POST['body'] = "")) {
        $to = "[email protected]";
        $subject = $_POST['object'];
        $body = $_POST['body'];
        $headers = "From: " . $_POST['mail'] . "\n";
        mail($to,$object,$body,$headers);
        }
        else {
        echo "Errore, devi compilare il modulo per inviare una mail";
        }

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • P
          pikadilly Super User • ultima modifica di

          Ho inserito nei campi della form l'obbligo di digitare ad esempio e mail e oggetto della mail.
          Ma nel documento invio no...solo il codice che ho scritto...
          Ovviamente parlo di due documenti distinti:uno per la form e l'altro che ho chiamato appunto Invio.php.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • shad
            shad Moderatore • ultima modifica di

            Ecco, spostando il controllo nel file di invio ti risparmi anche il controllo in quello con il form (probabilmente fatto in jkavascript).
            Prova e fammi sapere.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • P
              pikadilly Super User • ultima modifica di

              No Probabilemente...è javascript....ehehehe...
              ok, adesso ci provo e aggiorno.
              Grazie mille!

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • G
                giuseppe8383 User Attivo • ultima modifica di

                Se me lo permettete...
                aggiungerei che il controllo sui cambi obbligatori (e non solo), se implementato solo con javascript non è sicuro...
                Se mai potrebbe essere un qualcosa in più per avvisare l'utente di un' errata compilazione del form prima di tentare l'invio...
                Ti suggerirei anche di controllare i dati che vengono immessi nel form, specialmente se vengono salvati in un database, onde evitare sql injection.
                Ciao!

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • P
                  pikadilly Super User • ultima modifica di

                  10 minuti dopo.

                  Credo che non faccia quello che deve o di sicuro l'ho messo male io ...
                  Ho messo quello che mi hai scritto al posto dello script che ho scritto io...ogni volta che invio mi dice che la form nn è stata compilata...anche se la compilo...
                  bua...

                  Per ora niente database...Grazie di avermelo detto.:)

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • shad
                    shad Moderatore • ultima modifica di

                    Ehm...errore mio. Prova a cambiare l'if con questo (o cmq a manovrarci un pò):

                    if (!($_POST['object'] = "") && !($_POST['body'] = ""))

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • P
                      pikadilly Super User • ultima modifica di

                      Vediamo vediamo..

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • P
                        pikadilly Super User • ultima modifica di

                        Bua...non va...mi da sempre il messaggio...

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • D
                          digital.daigor User Attivo • ultima modifica di

                          da quanto ho capito vuoi limitare l'entrata in una pagina solo a che è passato dal form?
                          se si, prova questo:
                          if($_SERVER['HTTP_REFERER'] != "http://www.iltuosito.com/latuapagina.php")
                          {
                          echo "<script>
                          setTimeout('location.href="http://www.iltuosito.com/latuapagina.php"',1);
                          </script>
                          ";
                          die();
                          }

                          tutto questo deve essere aggiunto al controllo sul input in php che, come già detto è poco sicuro

                          fatemi sapere!

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • P
                            pikadilly Super User • ultima modifica di

                            Grazie mille, provo e ti faccio sapere.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • P
                              pikadilly Super User • ultima modifica di

                              Nullla...bua...
                              Se digito www.miosito.it/invio.php che + la pag dove si trova la conferma dell'invio...senza passare dal form che è in contatti mi spedisce una mail vuota...

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • U
                                ublogtoo User • ultima modifica di

                                io modificherei l'ultimo if di SHAD da
                                if (!($_POST['object'] = "") && !($_POST['body'] = "")){
                                }

                                in

                                if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) {
                                $to = "[email protected]";
                                $subject = $_POST['object'];
                                $body = $_POST['body'];
                                $headers = "From: " . $_POST['mail'] . "\n";
                                mail($to,$object,$body,$headers);
                                }
                                else {
                                echo "Errore, devi compilare il modulo per inviare una mail";
                                }

                                facci sapere
                                bye bye

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • P
                                  pikadilly Super User • ultima modifica di

                                  Ehehhehe...adesso indico un concorso,
                                  grazie di tutti i suggerimenti...provo anche quest ultimo.
                                  Grazie mille...
                                  VI faccio sapere si!

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • U
                                    ublogtoo User • ultima modifica di

                                    Pikadilly credo che sia più corretto vedere se la variabile $_POST sia settata, in quanto se il pb è se viene chiamata
                                    o il file direttamente senza form allora $_POST non è neanche impostata quindi basta fare if (isset($_POST)) {invia} else {qualcosaltro}

                                    bye bye

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • P
                                      pikadilly Super User • ultima modifica di

                                      Riporto up la discussione perchè ad un mese e mezzo dal primo post ho capito dove sbagliavo.
                                      Il codice
                                      <?php
                                      if ((trim($_POST['object']) != "") && (trim($_POST['body']) != "")) {
                                      $to = "[email protected]";
                                      $subject = $_POST['object'];
                                      $body = $_POST['body'];
                                      $headers = "From: " . $_POST['mail'] . "\n";
                                      mail($to,$object,$body,$headers);
                                      echo"La mail è stata inviata correttamente";
                                      }
                                      else {
                                      echo "Errore, devi compilare il modulo per inviare una mail";
                                      }
                                      ?>
                                      Lo mettevo in cima alla pagina, prima del doctype, in verità lo script che mi mi avete suggeito ha sempre funzionato solo che la pagina era nera e quando dal browser accedevo a invio.php la scritta di errore non appariva (sono da ricovero).
                                      Ho messo tutto nel body ed ora è perfetto.
                                      Vi ringrazio immensamente.
                                      🙂

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • M
                                        mz User Attivo • ultima modifica di

                                        Grazie pikadilly per aver condiviso la soluzione del problema. 😉

                                        Segnalo come risolto

                                        :ciauz:

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • P
                                          pikadilly Super User • ultima modifica di

                                          E' lo scopo del forum.:)
                                          Mi dispiace solo di averci messo tanto, è vero che per un pò ho abbandonato il problema usando asp, ma poi mi sono detta che asp mi sta antipatico e che non potevo non capire il punto.
                                          Grazie ancora.
                                          🙂

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          Caricamento altri post
                                          Rispondi
                                          • Topic risposta
                                          Effettua l'accesso per rispondere
                                          • Da Vecchi a Nuovi
                                          • Da Nuovi a Vecchi
                                          • Più Voti