PDA

View Full Version : [PHP] C'è modo di passare parametri via $_POST ad altra pagina senza form?


Matrixbob
09-01-2011, 16:02
Si usano queste? :confused: :mbe:

http://www.php.net/manual/en/function.http-post-data.php
http://www.php.net/manual/en/function.http-post-fields.php

Praticamente sto utilizzando la tecnica di selfsubmition con $PHP_SELF ma ad un certo punto inizio ad avere un paginone e vorrei mandare le mie variabili via $_POST ad un'altra pagina dalla quale ripartire pulito pulito l'elaborazione.

Ho reso l'idea? :stordita: :fagiano:

Matrixbob
09-01-2011, 16:03
Ovvero ad un certo punto sclero e non ho voglia di spezzettare con gli include.
Il gol che voglio è spedirmi in POST le varabili in un'altra pagina PHP, magari dopo la SELF_SUBMITION per la validazione degli input. :O


...
>SNIP<
...
<?php
if(isset($sub1)){
if(isset($tipo_cliente)){
?>
<h4 align="left" class="titolomissione">Gentile <?php print("$tipo_cliente"); ?> completa i restanti campi</h4>
<div align="left" class="missionlog">
<form action="<?php print("$PHP_SELF"); ?>" method="post" enctype="multipart/form-data" name="azienda_form">
<br />CONSIZIONI GENERALI DI VENDITA E PRIVACY<br />
<input type="checkbox" name="vendita_privacy" value="1" />Accetto i termini e le condizioni generali<br />
<br />DATI DELL'ACQUIRENTE<br />
<?php
if($tipo_cliente=='privato'){
print("<label>Nome</label><input name=\"nome\" type=\"text\" /><br />");
print("<label>Cognome</label><input name=\"cognome\" type=\"text\" /><br />");
}
if($tipo_cliente=='societa\'' || $tipo_cliente=='impresa_individuale'){
print("<label>Ragione sociale</label><input name=\"ragione_sociale\" type=\"text\" /><br />");
print("<label>Partita IVA</label><input name=\"partita_iva\" type=\"text\" /><br />");
}
if($tipo_cliente=='impresa_individuale' || $tipo_cliente=='privato')
print("<label>CF</label><input name=\"cf\" type=\"text\" /><br />");
?>
<label>Telefono</label><input name="telefono" type="text" /><br />
<label>Email</label><input name="email" type="text" /><br />
<br />REPERIMENTO ORDINE<br />
<label><input type="radio" name="reperimento" value="ritiro" />Ritiro e pagamento presso Tacchino</label>
<label><input type="radio" name="reperimento" value="spedizione" />Spedizione e pagamento online</label>
<br /><br /><br />
<input name="ripristina" type="reset" value="Ripristina" />
<input name="invia" type="submit" value="Invia" />
<input name="tipo_cliente" type="hidden" value="<?php print("$tipo_cliente"); ?>" />
<input name="sub2" type="hidden" value="true" />
</form>
</div>
</fieldset>
</div>
<?php
}
}
?>

<h4 align="left" class="titolomissione">Che tipo di cliente sei?</h4>
<div align="left" class="missionlog">
<form action="<?php print("$PHP_SELF"); ?>" method="post" enctype="multipart/form-data" name="cliente_form">
<label><input type="radio" name="tipo_cliente" value="impresa_individuale" />Impresa individuale</label>
<label><input type="radio" name="tipo_cliente" value="societa'" />Societa'</label>
<label><input type="radio" name="tipo_cliente" value="privato" />Privato</label>
<br /><br />
<input name="ripristina" type="reset" value="Ripristina" />
<input name="invia" type="submit" value="Invia" />
<input name="sub1" type="hidden" value="true" />
</form>
</div>
<br /><br /><br /><br />
</fieldset>
</div>
...
>SNIP<
...

:help: :doh: :help: :doh: :help:

Supdario
09-01-2011, 16:39
Postresti usare le sessioni. :D

http://www.php.net/manual/en/function.session-start.php

Matrixbob
09-01-2011, 20:58
Postresti usare le sessioni. :D

http://www.php.net/manual/en/function.session-start.php
Ma come faccio ad uscire dal circolo vizioso?
Sottometto una volta e mi registro in $_SESSION quello che mi serve e poi come procedo in un'altra pagina?
Per esempio se volessi raccogliere qualche altro dato per la spedizione o il pagamento?

[PS]
Ho editato il file sopra per compattare.

Supdario
09-01-2011, 23:05
Beh, la tua domanda si risponde da sola. :D
Nell'altra pagina ti basterà prelevare il valore da $_SESSION, che PHP metterà automaticamente lì.

Piccolo esempio:

Pagina 1:
<?php
session_start();
$_SESSION['lol'] = 'Ciao!';
echo '<a href="pagina2.php">Vai a pagina 2</a>';
?>

Pagina 2:
<?php
session_start();
echo $_SESSION['lol'];
?>
Output: Ciao!

In poche parole il sistema setta un cookie all'utente, e gestisce il tutto facendo ricondurre una sessione ad esso.

Matrixbob
10-01-2011, 13:21
Mi hai aperto gli occhi!
... e io che accumulavo variabili hidden ...