[PHP] Problema if else

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
Buongiorno,

premetto che sono un principiante con html e php.

Mi sto cimentando con la creazione di un form, tipo POST, ho un problema nella pagina php con le istruzioni if ed else. Vorrei che all'invio dell'email (condizione) si aprisse una pagina del sito (.html) altrimenti (else) se ne aprisse un'altra. Tutti i tutorial che ho trovato spiegano solo come far scrivere una frase (echo) e tutti i tentativi che ho fatto per rimandare ad una pagina non mi funzionano. Qualcuno è così gentile da indicarmi che istruzioni devo inserire?
Di seguito il codice:
PHP:
<?php
   $headers = $_POST ['email'];
   $nome = $_POST ['nome'];
   $cognome = $_POST ['cognome'];
   $citta = $_POST ['citta'];
   $tel = $_POST ['tel'];
   $email = $_POST ['email'];
   $textarea = $_POST ['textarea'];
   $checkbox = $_POST ['checkbox'];

           $to = '[email protected]';

       $contenuto = "Nome: " . $nome . "\r\n" . "Cognome: " . $cognome . "\r\n" . "Città: " . $citta . "\r\n" . "Telefono: " . $tel . "\r\n" . "Email: " . $email . "\r\n" . "Privacy: " . $checkbox . "\r\n" . "Messaggio: " . $textarea;

       $success = mail( $to, $headers, $contenuto );

       if ($success) { header("Location: http://www.miosito.html"); } else { echo "KO"; }

?>

Grazie
Luciano
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Ciao Luciano,
scusa la domanda banale, il form per l'input dei dati punta sullo script php postato sopra?
HTML:
<form action="pagina.php" method="post">

Nella pagina.php dovresti implementare il codice di cui sopra, e dovrebbe funzionare...
Un consiglio, prima di assegnare direttamente le variabili conviene effettuare il test di esistenza dell'input, tipo
PHP:
if(isset($_POST['nome'))$nome=$_POST['nome'];
else $nome='';
altrimenti potresti inciampare in errori...

Dovresti puntare su http://www.miosito.it/pagina_che_gestisce_gli_input.php

Spero sia utile.
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
Ciao,
certamente l'action del form è corretto, infatti le email arrivano correttamente, ma dopo l'invio dell'email si apre una pagina vuota con l'indirizzo del php. non riesco a capire come indicare nel php la pagina da aprirsi al verificarsi della condizione di invio email. Nel codice che ho postato ho provato a mettere nell'if l'attributo header con l'indirizzo della pagina di destinazione ma non funziona. Ci sarà un altro modo per scriverlo.
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Probabilmente se non funziona header_location ha iniziato a costruire l'output, quindi prima di verificare il cambio della pagina abilita gli errori sullo script che gestisce i dati e vedi cosa dice, probabilmente la
PHP:
$success = mail( $to, $headers, $contenuto );
non è di tipo bool e stampa a video dei dati.... controlla facendo un var_dump della variabile success
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
$headers = $_POST ['email'];
$nome = $_POST ['nome'];
$cognome = $_POST ['cognome'];
$citta = $_POST ['citta'];
$tel = $_POST ['tel'];
$email = $_POST ['email'];
$textarea = $_POST ['textarea'];
$checkbox = $_POST ['checkbox'];

$to = '[email protected]';

$contenuto = "Nome: " . $nome . "\r\n" . "Cognome: " . $cognome . "\r\n" . "Città: " . $citta . "\r\n" . "Telefono: " . $tel . "\r\n" . "Email: " . $email . "\r\n" . "Privacy: " . $checkbox . "\r\n" . "Messaggio: " . $textarea;

$success = mail( $to, $headers, $contenuto );
var_dump($success);die;
//if (
$success) { header("Location: http://www.miosito.html"); } else { echo "KO"; }
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
PHP:
  if ($success) { header("location: http://www.miosito.it/pagina.html"); } else { echo "KO"; }
Nel caso posta il codice!
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
si si, l'indirizzo della pagina nella location è corretto, se lo metto nel brouser si apre correttamente.
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
ma non si apre quando compili il form e invii. Si apre una pagina vuota con indirizzo del php
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
In sostanza non indirizza alla pagina, forse occorre usare src ? ma non so come scriverlo
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Scusa Luciano, potresti postare sia la pagina con il form che la pagina per elaborare i dati?
Grazie
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Pagina 1: a_.php
Pagina 2: b_.php
Pagina 3: pagina_redir.php

Pagina 1 contentente il form
HTML:
<form method="post" action="b_.php">

Email <input type="text" name="mail" ><br>
Redir <input type="checkbox" name="redir">

<button type="submit">
    INIVA
</button>
</form>


pagina 2 - elaborazione dati
PHP:
if(isset($_POST['mail'])){

    //fai qualcosa
    if(isset($_POST['redir'])){
        header('location:pagina_redir.php');
    }else{
        echo 'KO';
    }
}

pagina 3 - redirect in caso di success
PHP:
echo 'PAGINA REDIR';
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
HTML:
<html>
<head>
<meta charset=utf-8" />
<title>Modulo di contatto</title>
</head>
<body>
<form action="conferma.php" method="POST">
<fieldset>
<div>
   
    <input type="text" id="nome" name="nome" placeholder="Il tuo nome" required />
   
    <input type="text" id="cognome" name="cognome" placeholder="Il tuo cognome" required />
</div>
<br>
<div>
   
    <input type="text" id="citta" name="citta" placeholder="La città di residenza" required />
   
    <input type="text" id="tel" name="tel" placeholder="Il tuo numero di telefono" required />
</div>
<br>
<div>
   
    <input type="text" id="email" name="email" placeholder="La tua email principale" required />
</div>
<br>
<div>
    <label for="textarea">Eventuale messaggio</label><br>
    <textarea id="textarea" name="textarea" cols="50" rows="10"></textarea>
</div>
<br>
<div>
    <input type="checkbox" id="checkbox" name="checkbox" required />
    <label for="checkbox">Privacy</label>
    <input type="submit" value="Clicca per un contatto">
</div>
</fieldset>
</form>
</body>
</html>

PHP:
<?php
    $headers = $_POST ['email'];
    $nome = $_POST ['nome'];
    $cognome = $_POST ['cognome'];
    $citta = $_POST ['citta'];
    $tel = $_POST ['tel'];
    $email = $_POST ['email'];
    $textarea = $_POST ['textarea'];
    $checkbox = $_POST ['checkbox'];
       
    $to = '[email protected]';
   
    $contenuto = "Nome: " . $nome . "\r\n" . "Cognome: " . $cognome . "\r\n" . "Città: " . $citta . "\r\n" . "Telefono: " . $tel . "\r\n" . "Email: " . $email . "\r\n" . "Privacy: " . $checkbox . "\r\n" . "Messaggio: " . $textarea;
   
    $success = mail( $to, $headers, $contenuto );
   
    if ($success) { header( "http://www.miosito.it/pagina.html"); } else { echo "KO"; }
       
   
?>
 

macus_adi

Utente Attivo
5 Dic 2017
1.333
91
48
IT/SW
Allora, come ti avevo anticipato, probabilmente la funzione mail effettua qualche echo e print di qualche eccezione perchè senza l'invio email funziona.... prova togliere l'invio email e vedi se l'app si comporta come da te sperato.
 

xLuciano

Nuovo Utente
17 Feb 2018
15
0
1
Ok, faccio tutte le prove che mi suggerisci, purtroppo ora devo assentarmi dal pc. Ti ringrazio molto, dopo le prove posto l'esito.
Grazie ancora
 
Discussioni simili
Autore Titolo Forum Risposte Data
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
A [PHP] Problema query insert [RISOLTO] PHP 14
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
M [PHP] Problema search form PHP 3
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
trattorino [PHP] problema entrata immagini insert PHP 1
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
MattiaBL [PHP] Problema ciclo while PHP 3
dvdscr [PHP] Problema malfunzionamento Wordpress WordPress 13
O [PHP] Problema Button in form PHP 1
C [PHP] problema con un esercizio PHP 2
P [PHP] Problema con accenti ed apostrofi PHP 0

Discussioni simili