[PHP] problema con l'utilizzo di Header

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno,
Panorama:
Database di ricette, suddivise su diverse tabelle (informazioni generali, ingredienti, procedimenti, foto).
Ho sistemato tutta la parte di inserimento e va tutto bene.
Ora sto affrontando le variazioni (se devo cambiare un titolo, un procedimento, un ingrediente eccetera).
Per fare questo ho scritto questa semplice paginetta:
PHP:
<?php
session_start();
//se non c'è la sessione registrata
mb_internal_encoding('UTF-8');
if (!$_SESSION['autorizzato']) {
  echo "<h1>Area riservata, accesso negato.</h1>";
  echo "Per effettuare il login clicca <a href='index.php'><font color='blue'>qui</font></a>";
  die;
}
 
//Altrimenti Prelevo il codice identificatico dell'utente loggato

$cod = $_SESSION['cod']; //id cod recuperato nel file di verifica


?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Variazione date lezioni di cucina</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />



</head>

<body>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<p>Inserisci il numero della ricetta: <input type="text" name="codicericetta"></p>

<hr>
Vuoi variare:<br><br>

<p><input type="radio" id="datigenerali" name="varia" value="1"><label for="datigenerali">Generali</label></p>
<p><input type="radio" id="ingredienti" name="varia" value="2"><llabel for="ingredienti">Ingredienti</label></p>
<p><input type="radio" id="procedimento" name="varia" value="3"><label for="procedimento">Procedimento</label></p>

<input type="submit" name="vai" value="Modifica">

</form>



<?

if (isset($_POST['vai'])){
scegli();
}


function scegli() {
    if ($varia === "1") {
        header("location: /aggiorna_ricette.php");
    }
    if ($varia === "2") {
        header("location: /aggiorna_ingredienti.php");
    }
    if ($varia === "3") {
        header("location: /aggiorna_procedimento.php");
    }
}



?>




</body>
</html>

Fino a che inviavo direttamente a una delle pagine (azione del form: aggiorna_ricette.php) tutto andava bene.
Poi, visto che l'esposizione dei dati da variare cambia parecchio, ho pensato di fare tre pagine diverse per la variazione di "Informazioni generali", "Ingredienti" e "Procedimenti" quindi di cambiare l'azione del form come la vedete adesso nella pagina postata sopra.

Quando clicco sul pulsante "Modifica" però non succede nulla... o meglio pare che si ricarichi sempre questa pagina.

Come mai? Forse l'utilizzo della funzione header non è adatto?

Domanda a margine: per non tediarvi con domande ogni 5 minuti, esiste la possibilità di "vedere" cosa succede quando clicco su un pulsante per esempio? Un aiuto nel debugging, insomma... Così magari nel frattempo imparo anche qualcosa :-)

Grazie per ogni suggerimento
 
Non so se è questo il problema, ma sembra che ti manchi la riga
PHP:
$varia = $_POST['varia'];
per ottenere il valore dell'input
 
rileggi bene il codice php..
ti sei dimenticato di passare i valori delle radio.... se controlli i log troverai scritto che $varia non è valorizzata.

PHP:
<?php
if (isset($_POST['vai'])){
scegli($_POST['varia']);  // <--- valore passato dal form e inviato alla funzione
}


function scegli($varia) {   // <---- recupero il valore passato dal form
    if ($varia === "1") {
        header("location: /aggiorna_ricette.php");
    }
    if ($varia === "2") {
        header("location: /aggiorna_ingredienti.php");
    }
    if ($varia === "3") {
        header("location: /aggiorna_procedimento.php");
    }
}
?>
 
accidenti...
grazie!!!
Mi sa che di venerdì sono un po' fuso. Adesso ovviamente succede quello che mi aspettavo.
Alla prossima
 

Discussioni simili