Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Passare array tramite $_SESSION

    Ragazzi ho un problema. Devo creare un contapunteggio per dei giocatori di carte.
    Nella prima pagina c'è una text box dove inserire il nome di un giocatore e 2 tasti: il primo ricarica la pagina e attraverso uno script php avevo pensato di fargli salvare ogni nome che l'utente inserisce in un array $giocatori[]; il secondo invece deve andare in un'altra pagina che recupera l'array $giocatori[] e stampa in una tabella ogni nome giocatore, il punteggio totale (inizializzato a 0), una textbox dove inserire ogni punteggio parziale e un tasto che aggiorna il punteggio
    La prima pagina lo strutturata così ma c'è sicuramente un'errore nella creazione dell'array giocatori da passare tramite $_SESSION:
    Codice PHP:
    <?php session_start();
     if (isset (
    $_REQUEST['giocatore'])){
     
    $giocatori[]=$_REQUEST['giocatore'];
     
    $_SERVER['giocatori']=$giocatori[]+$_SERVER['giocatori']; }
     
    ?> 
    <body>
     <form action="<?php print ($_SERVER['PHP_SELF']); ?>" method="get"> 
    <h3>Inserisci i giocatori.</h3> 


    Nome giocatore: <input type="text" name="giocatore"> 

    <input type="submit" value="Inserisci"><input type="submit" value="Inizia partita!" onclick="this.form.action='partita.php'"> 
    </form> 
    </body>
     </html>
    la seconda pagina invece così ma è ancora molto abbozzata:
    Codice PHP:
    <?php session_start(); 
    if (isset (
    $_REQUEST['giocatore'])){ 
    $giocatori[]=$_REQUEST['giocatore']; 
    $_SERVER['giocatori']=$giocatori[]+$_SERVER['giocatori']; }
     
    ?> 
    <body> 
    <table border="1"> 
    <caption> Tabella Partita </caption> 
    <?php foreach ($_SERVER['giocatori'] as $giocatore){
     
    $punteggio=0
    print(
    "<tr>"); 
    print(
    "<td>"); 
    print(
    $giocatore); 
    print(
    "</td>");
    print(
    "<td>");
    print(
    $punteggio); 
    print(
    "</td>"); 
    print(
    "<td>"); 
    print(
    "<input type=\"submit\" value=\"aggiorna punteggio\""); }
     
    ?> 
    </body> 
    </html>

  2. #2
    Ciao,

    un problema sta di sicuro nella seguenteistruzione :
    $_SERVER['giocatori']=$giocatori[]+$_SERVER['giocatori'];
    cambiala in:
    $_SERVER['giocatori']=$giocatori+$_SERVER['giocatori'];

    Io personalmente però utilizzerei la funzione array_merge() che serve proprie per unire uno o più array.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Nella prima pagina ho risolto cosi:
    <?php
    session_start();
    if (isset ($_REQUEST['giocatore'])){
    $giocatore=array($_REQUEST['giocatore']=>0);
    $partita=array();
    $partita[]=array_merge($partita,$giocatore);
    $_SESSION['partita']=$partita;
    }
    ?>
    e a quanto pare funziona.
    Nella seconda pagina invece ho risolto così
    <?php
    session_start();
    if (isset ($_REQUEST['giocatore'])){
    $giocatore=array($_REQUEST['giocatore']=>0);
    $partita=array();
    $partita[]=array_merge($partita,$giocatore);
    $_SESSION['partita']=$partita;
    }
    ?>
    <body>
    <form action="<?php print ($_SERVER['PHP_SELF']); ?>" method="get">
    <table border="1">
    <caption>
    Tabella Partita
    </caption>
    <?php
    foreach($_SESSION['partita'] as $giocatore => $punteggio){
    print("<tr>");
    print("<td>");
    print($giocatore);
    print("</td>");
    print("<td>");
    if (isset ($_REQUEST['punteggio[$giocatore]'])){
    $puteggio=$_REQUEST['punteggio[$giocatore]']+$punteggio;
    }
    print($punteggio);
    print("</td>");
    print("<td>");
    print("<input type=\"text\" name=\"punteggio[$giocatore]\"");
    print("</td>");
    }
    ?>
    </table>
    </form>
    </body>
    <html>

    ma mi visualizza una tabella con 1 riga e tre colonne (rispettivamente:0,Array, e una textbox) invece secondo i miei calcoli è tutto diverso. Forse c'è qualche casino negli array

  4. #4
    quando salvi in sessione fai così:

    $_SESSION['partita'][]=$partita;

    così ti ritrovi nella variabili 'partita' una array con tutte le partite.
    Stedda cosa per i giocatori.

  5. #5
    Ho rivoluzionato un po il progetto perchè il mio professore è un idiota e così non gli va bene.

    Sto cercando di farlo più semplice. Ho risolto così:

    Nella prima pagina ho cambiato la parte php così:
    <?php
    session_start();
    if (isset ($_REQUEST['giocatore'])){
    $_SESSION['giocatori'][]=$_GET['giocatore'];
    }
    ?>

    La seconda invece l'ho organizzata così ma stampa la tabella a caso.

    <?php
    session_start();
    if (isset ($_REQUEST['giocatore'])){
    $_SESSION['giocatori'][]=$_GET['giocatore'];
    }

    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
    </head>

    <body>
    <form action="<?php print ($_SERVER['PHP_SELF']); ?>" method="get">
    <table border="1">
    <caption>
    Tabella Partita
    </caption>
    <?php
    foreach($_SESSION['giocatori'] as $giocatore){
    print("<td>");
    print("<tr>");
    print($giocatore);
    print("</tr>");
    print("<tr>");
    if (isset ($_REQUEST['pPart'])){
    $_SESSION['pTot']=$_SESSION['pTot']+$_REQUEST['pPart'];

    }
    else
    {
    $_SESSION['pTot']=0;
    }
    print( $_SESSION['pTot']);
    print("</tr>");
    print("<tr>");
    print("<input type=\"text\" name=\"pPart\">");
    print("</tr>");
    }
    ?>
    </table>
    </form>
    </body>
    </html>


    Sto uscendo pazzo!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.