• User Attivo

    ricaricare pagina cambiando include

    Ciao a tutti!
    Io ho la mia pagina "principale".

    Questa con il comando include ha internamente :

    • pagina1
    • pagina2.

    Pagina 2 ha un form.... una volta cliccato è mantenere caricata la pagina "principale"

    • pagina1
    • e al posto di pagina2 si carica pagina3?

  • ModSenior

    Ciao pettedemon,

    E' sufficiente che sostituisci:
    [php]
    include('pagina2.php');
    [/php]

    In:

    [php]
    if(isset($_POST['nome']))
    include('pagina3.php');
    else
    include('pagina2.php');
    [/php]

    Che verifica se l'input è del form è stato inviato, se viene inviato include la pagina 3 invece della pagina 2.


  • User Attivo

    Pagina principale
    [php]<?php
    if(isset($_POST['nome']))
    include("dj/inviato.php");
    else
    include("dj/form_ciccio.php");
    ?>[/php]

    Pagina form_ciccio.php
    [php]<link href="css/form_dj.css" rel="stylesheet" type="text/css" />

    <!-- da togliere il div contenitore dj perchè la pagina sarà inclusa -->
    <div id="contenitore_form_dj" style="background-image: url(images/scrivia/scriviafabio.png)">
    <form method="post" action="dj/dj_email_send.php">
    <table width="830" height="169" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="89" height="24"> </td>
    <td width="286"> </td>
    <td width="256"> </td>
    <td width="92"> </td>
    <td width="107"> </td>
    </tr>
    <tr>
    <td height="28"> </td>
    <td><input name="nome" type="text" class="testo_form" style="float: left;
    border:0px;
    background: none;
    vertical-align: center;
    margin-left: 10px;
    vertical-align:middle;
    height: 12px;
    width: 130px;" /></td>
    <td><input name="mail" type="text" class="testo_form" style="float: left;
    border:0px;
    background: none;
    vertical-align: center;
    margin-left: 10px;
    vertical-align:middle;
    height: 12px;
    width: 180px;" /></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td colspan="3" rowspan="2">
    <textarea name="messaggio" label="messaggio" cols="110" rows="4" class="testo_form" style="float: left;
    border:0px;
    background: none;
    vertical-align: center;
    margin-left: 10px;
    margin-top:10px;
    height: 50px;
    width: 600px;"></textarea></td>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td> </td>
    <td><input type="image" src="../images/djs/send_bt.png" style="padding-top:40px"/></td>
    </tr>
    </table>
    <input type="hidden" name="djemail" id="djemail" value="[email protected]">
    <input type="hidden" name="djname" id="djname" value="Fabiois">
    </form>
    <!-- da togliere il div contenitore dj perchè la pagina sarà inclusa -->
    </div>
    [/php]Pagina dj_email_send.php
    [php]<?

    // Risposta automatica per l'utente
    $timestamp = time();
    $data = date("d.m.Y",$timestamp);
    $ora = date("H:i",$timestamp);
    // Testo per l'E-mail automatica di risposta
    $vtext="Ciao ".$nome."\n\nGrazie per avermi scritto! \n\nTi rispondero' appena possibile!\n\nA presto!\n\n".$djname."\n\nMITTENTE\n\n\n\n\nLa tua email del ".$data." alle ".$ora.": \n\n".$messaggio;

    $risposta="Grazie per la tua e-mail";
    $text=str_replace("\"",""", $messaggio);
    $text=str_replace("'","'", $messaggio);
    urlencode ($text);
    $text=str_replace("%0D","\n", $messaggio);
    $titolo="E-mail da MITTENTE da parte di ".$nome;

    //invio mail al dj
    mail($djemail, $titolo, $messaggio, "From: ". $mail);
    //invio mail al mittente
    mail($mail, $risposta, $vtext, "From: ".$djemail);

    //carico la pagina di conferma invio mail
    header("Location: dj_mailsent.html");
    ?>[/php]Dove sbaglio ?


  • ModSenior

    Al posto di nome, devi inserire il nome di un campo di input inviato dal form.
    Comunque se la pagina viene elaborata da un'altra pagina, non ti è sufficiente fare un redirect ad file che ti includa la pagina 3?


  • User Attivo

    Nome infatti è un campo passato....
    Ho provato a cambiare nella pagina dj_mail_send.php
    [php]header("Location: dj_mailsent.html"); [/php]con

    [php]header("Location: principale.php"); [/php]
    Ma mi carica la pagina di partenza...

    Mi sembra sia un po' piu' complicato fare il redirect considerando che dentro al comando include non posso mettere una variabile... o sbaglio ?


  • ModSenior

    Fai un redirect a

    [php]
    header("Location: file.php");
    [/php]

    Ed in file.php metti tutto come la pagina principale ma includi pagina 3.
    Altrimenti passi una variabile GET, e nel princiaple da quella variabile stabilisci quale file includere.


  • User Attivo

    Passando la variabile GET quindi potrei inserire un link dentro ad un include dinamico ?

    Potrei quindi fare:

    include ('$nome"_dj.php"')?


  • ModSenior

    Ciao pettedemon,

    Ti sconsiglio include dinamici per motivi di sicurezza, ma usare sempre dei controlli per non ritrovarsi valori inaspettati nella variabile


  • User Attivo

    Come posso fare per avere include dinamico col il GET e un controllo allora ?

    C'è qualche esempio ?

    Grazieeeeee.


  • ModSenior

    [php]
    if($_GET['nome'] == 'pagina3')
    include('pagina3.php');
    else
    include('pagina1.php');
    [/php]


  • User Attivo

    Mi sto perdendo....credo che il mio prolema sia nella pagina che mi invia la mail e che mi restituisce la nuova pagina da caricare....

    [php]header("Location: ../inviata.php");[/php]
    Il problema è che lo devo fare per 20 persone quindi fare i redirect è un po' macchinoso quindi forse è fantascienza ma vorrei una variabile su principale:
    $campi = ciccio;

    Questa variabile negli include mi carica i nomi e le foto.

    Una volta completato il form vorrei quindi che mi caricasse la pagina principale che sarebbe $campi.php con l'include della pagina inviata....

    E' fantascienza o si puo' fare ?
    Sempre se mi son spiegato. :mmm:


  • ModSenior

    Beh per mostrare cose differenti da utente ad utente devi usare un database, non 1 pagina per ogni utente (sarebbe assurdo)


  • User Attivo

    Si lo so.... infatti sto iniziando a capirmi adesso con php e quindi cerco di recuperare qualche scorciatoia.....