Esercizio su sessione php

di il
2 risposte

Esercizio su sessione php

Ciao  a tutti sto riscontrando qualche difficoltà a capire un esercizio php sull'utilizzo delle sessioni, praticamente l'esercizio mi chiede di gestire una serie di prenotazioni per un dato evento, se si inserisce lo stesso evento nella stessa sessione il numero di prenotazioni viene cumulato. L'inserimento dei dati avviene tramite un semplicissimo form html

<html>
	<head>
	<title>Prenotazione eventi</title>
	</head>
	<body>
		<form action="prenotazione.php" method="get">
			Evento<input type="text" name="evento"/><br />
			Persone<input type="text" name="num" /><br />
			<input type="submit" value="Aggiungi" />
		</form>
	/body>
</html>

Nella pagina prenotazione.php ho questa riga di codice che non ho capito:

<?php
  session_start();
  $_SESSION["prenotazioni"][$_REQUEST["evento"]] += $_REQUEST["num"]; 
?>

L'array di sessione memorizza i dati passati tramite form però non ho capito la sintassi, l'array associativo $_SESSION è un array multidimensionale in questo caso? Non ho capito praticamente questa sintassi, cioè per l'array $_SESSION la chiave dell'array in questo caso è: “prenotazioni”, ed “evento” è il valore che viene inserito ?

Avrei potuto anche fare?

<?php
	session_start();
	$evento = $_REQUEST["evento"];
	$numero = $_REQUEST["num"];
	$_SESSION["prenotazioni"][$evento]] += $numero; 
?>

2 Risposte

  • Re: Esercizio su sessione php

    L'indice di array è un contenitore (talvolta di tipo intero anziché stringa).

    Array a più di una dimensione (multidimensionali) significa che sono da due o più indici.

    Il codice non cerca se è già valorizzata la variabile, ti propongo questa modifica.

    <?php
    
      session_start();
      $prenotazioni = '0';
      if(isset($_REQUEST['evento'], $_REQUEST['num'])) {
      $evento = $_REQUEST['evento'];
      if(isset($_SESSION['prenotazioni'][$evento]) && !is_array($_SESSION['prenotazioni'][$evento])) {
      
      $num = $_REQUEST['num'];
      if(is_array($num)) {
      $num = '0';
      }
      $prenotazioni = $_SESSION['prenotazioni'][$evento];
      }
      $_SESSION['prenotazioni'][$evento] = $prenotazioni + $num);
      }
    
    ?>
  • Re: Esercizio su sessione php

    Ciao grazie credo di aver capito la logica ! ????

Devi accedere o registrarti per scrivere nel forum
2 risposte