ciao
no non credo che tu voglia la pappa pronta, ma vedo che stai cercando di imparare, quindi ti dò la soluzione, evidenziando gli errori e qualche piccolo consiglio.
da quello che vedo tu fai un'unica pagina php chiamata 2.php (giusto? non sono due una php e una html col form?) come sarebbe giusto fare data la semplicità dello script.
quindi vuoi che l'action del form punti alla pagina stessa per fare che il form punti sempre alla pagina stessa anche se gli cambi nome è meglio usare la variabile globale
$_SERVER quindi l'else non ti serve e se cambi nome alla pag non devi andare a corregere il valore di $act che non ti serve più.
essendo agli inizi, anche se in certi casi non necessarie usa negli if le parentesi graffe, ti accorgerai in seguito come leggerai meglio quello che hai fatto.
metti un if di controllo del submit,
poi un errore dovuto all'inesperienza: l'istruzione header deve venire prima di qualsiasi output html (anche un semplicissimo spazio che non vedi)
quindi o la sostituisci con un meta o devi dire allo scrip di modificare il flusso con ob_start() ob_end_flush() posti uno all'inizio e uno alla fine
impara poi ad usare la funzione var_dump() MOLTO utile in fase di debag per capire cosa non funzia, ti restituisce il tipo di variabile e il suo valore
ultimo non usare gli shorttag <? sono deprecati usa sempre <?php
PHP:
<?php
ob_start();
if(isset($_POST['confirm'])){
var_dump($_POST['opzioni']);
if($_POST['opzioni'] == 1){
header('Location: 3.php');
}elseif ($_POST['opzioni'] == 2){
header('Location: sbagliata.php');
}
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
<input style="WIDTH: 106px; HEIGHT: 129px" value="1" name="opzioni" size="106" type="radio">
<input style="WIDTH: 106px; HEIGHT: 129px" value="2" name="opzioni" size="106" type="radio">
<input type="submit" value="conferma" name="confirm">
</form>
<?php
ob_end_flush();
?>