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

    Script php per contact forum su hosting server linux

    Salve ragazzi ho un piccolo problema che non sto riuscendo a risolvere un spelice script in php per il forum ma non ne vuole sapere nulla di funzionare su hosting linux qualcuno di voi può spiegarmi come posso risolvere sono alle prime armi in php.
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    E' impossibile aiutarti senza alcuna indicazione.
    Mostra il codice che usi e spiega in cosa consiste il "non funziona": errori? Comportamento errato (quale)? Altro?

    Leggi il regolamento della sezione per avere indicazioni su come chiedere aiuto in modo da avere più probabilità di ricevere una risposta valida.

  3. #3
    si il problema e che quando invio la mail dal forum la mail arriva vuota, i campi di input che compilo nel forum cioè nome,cognome,mail e messaggio non ci sono li metto l'immagine della mail che mi arriva .


    Script mail php

    codice:
    $default = [
       'name' => '',
       'email' => '',
       'message' => '',
       'address' => '',
       'url' => '',
       // Qui aggiungerai tutti gli altri valori di default
    ];
    
    $_POST = array_replace( $default, $_POST );
    
    
    $field_name = $_POST['name'];
    $field_email = $_POST['email'];
    $field_message = $_POST['message'];
    $field_address = $_POST['address'];
    $url = $_POST['url'];
    
    $delay = "4";
    $url = "https://www.google.com";
    
    
    
    if(!$field_name || !$field_email || !$field_message || $field_address) {
      echo 'Tutti i campi del modulo sono obblicatori';
    }
    elseif(!filter_var($field_email, FILTER_VALIDATE_EMAIL)){
      echo 'email corretta';
    }
    
    //Mail_to below sends the email to the person's email designated on next line
    $mail_to = 'info@cesko-italskava.com';
    $mail_from = 'Email_From_Website';
    $subject = 'Message from visitor '.$field_name;
    
    //The email content:
    $body_message = 'From: '.$field_name."\n";
    $body_message .= 'E-mail: '.$field_email."\n";
    $body_message .= 'Address: '.$field_address."\n";
    $body_message .= 'Message: '.$field_message;
    $headers = 'From: '.$mail_from."\r\n";
    $headers .= 'Reply-To: '.$field_email."\r\n";
    
    
    // var_dump($mail_to, $subject, $body_message, $headers)
    
    
    mail($mail_to, $subject, $body_message, $headers);


    form html
    codice:
    <section id="feature">
        <div class="wrapper">
    
          <!-- ################################################################################################ -->
          <div class="center btmspace-80">
            <div class="conta_formu">
              <h2 class=" big-text" id="title_forum"></h2>
              <p class="text_forum"> </p>
              <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" >
                  <label for="name">Nome:</label>
                  <input type="text" name="name" id="name" required="true">
                  <label for="address">Cognome:</label>
                  <input type="text" name="address" id="subject" required="true">
                  <label for="email">E-mail:</label>
                  <input type="email" name="email" id="email" required="true">
    <labelfor="message">Messaggio</label>
                  <textarea name="message" cols="30" rows="10"placeholder="..."></textarea>
                  <input class="zoom" id="invia" type="submit" value="invia">
              </form>
            </div>
          </div>
        </div>
      </section>

  4. #4
    img.jpg




    immagine della mail che arriiva

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ci sono diverse cose che non vanno.
    1) Prima di tutto, visto che il contenuto del form viene inviato alla pagina stessa in cui il form è contenuto, la prima volta che accedi alla pagina tutto il codice PHP all'inizio viene eseguito e non ha senso che lo sia, non ci sono dati da usare.
    Il problema è che dovresti verificare se l'array $_POST è inizializzato, solo in tal caso devi eseguire il codice PHP, perché se non lo fosse vorrebbe dire che non è ancora stato fatto il submit del form. Devi mettere un if all'inizio che verifichi questa situazione ed eseguire l'invio solo se $_POST ha dei dati.

    2)
    Codice PHP:
    $default = [
    'name' => '',
    'email' => '',
    'message' => '',
    'address' => '',
    'url' => '',
    // Qui aggiungerai tutti gli altri valori di default
    ];

    $_POST array_replace$default$_POST ); 
    Questo codice è inutile, visto che poi $default non lo usi da nessuna parte

    3)
    Codice PHP:
    $field_name $_POST['name'];
    $field_email $_POST['email'];
    $field_message $_POST['message'];
    $field_address $_POST['address'];
    $url $_POST['url']; 
    Anche questo codice è inutile, dato che assegni i valori di $_POST['...'] senza manipolarli in alcun modo hai solo variabili duplicate contenenti gli stessi identici valori, puoi usare direttamente $_POST['name'] ecc... dove ora usi $field_name ecc...

    4)
    Codice PHP:
    $delay "4";
    $url "https://www.google.com"
    Queste sono altre variabili inutili che non usi.

    Comincia col fare un po' di pulizia, avrai meno della metà del codice.

  6. #6
    Buongiorno e grazie per l'aiuto, dovrei fare un
    if(isset($_POST['invia'])){

    qui tutto lo script php

    }




  7. #7
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445

  8. #8
    Ti ringrazio infinitamente dell'aiuto dato ora funziona tutto. Grazie ancora

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 © 2024 vBulletin Solutions, Inc. All rights reserved.