[RESOLU] session php débutant help

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] session php débutant help

Re: session php débutant help

par nolan3009 » 04 nov. 2014, 16:21

Bonjour,
La fonction réalise tirage doit généré un tirage automatique, et comparer la grille cochée par la personne avec ce tirage. Doivent ensuite s'afficher le message, vous avez tiré 2 bon numéros, si deux numeros sont identique dans chaque grille. Je n'arrive pas à réaliser cette partie, ni bloquer le nombre de numéros cliquables, car sur la grille de jeu on doit pouvoir cocher uniquement 6 numéros par session... les autres ne se transforment plus en croix.

merci d'avance pour votre aide

Re: session php débutant help

par nolan3009 » 25 oct. 2014, 15:50

Bonjour

Effectivement j'ai dejà poser la question mais je n'ai pas eu de réponse. C'est un problème sur un forum d'aide de poser plusieurs questions?
C'est limité à 1?
Un grand Merci à ceux qui m'ont répondu :-)
Concernant le code, il est clair que l'on peut faire plus simple mais le devoir impliquait de passer par ça...

Re: session php débutant help

par sirakawa » 24 oct. 2014, 08:46

C'est un problème qui a été posé déjà plusieurs fois par la même personne. A chaque fois, survient une nouvelle question ou un UP!!!!

Re: session php débutant help

par Nestecha » 24 oct. 2014, 03:07

<html>
<head>
    <title>grille loto</title>
</head>
<body>

<?Php

session_start();

define ( "NBL", 7); //nombre de lignes
define ("NBC", 7); //nombre de colonnes 

/* Création du tableau */
$tab = array();
$tab[0] = range (1, 7, 1);
$tab[1] = range (8, 14, 1);
$tab[2] = range (15, 21, 1);
$tab[3] = range (22, 28, 1);
$tab[4] = range (29, 35, 1);
$tab[5] = range (36, 42, 1);
$tab[6] = range (43, 49, 1);

if (isset($_GET['session'])) {
    if ($_GET['session'] == 'reset') {
        unset($_SESSION['id']);
        unset($_SESSION['winningNumber']);
    }
}

if (isset($_GET['numero'])) {
    $_SESSION['id'][$_GET['numero']] = $_GET['numero'];
}
if (!isset($_SESSION['winningNumber'])) {
    $_SESSION['winningNumber'] = rand(1,49);
}

function affiche_grille($tab)
{
    echo "
<br><br><br><br>
<table border = '1', align='center', cellpadding='6', textalign='center'>";
// On parcours toutes les lignes du tableau 

    for ($i = 0; $i< NBL ; $i++)
    {
        echo "<tr>";
// On parcours toutes les colonnes de la ligne
        for ($j = 0; $j < NBC; $j++)
        {
            $value = $tab[$i][$j];
            if (isset($_SESSION['id'][$value])) {
                if ($_SESSION['id'][$value] == $_SESSION['winningNumber']) {
                    echo '<td style="color: red;">X</td>';
                } else {
                    echo '<td>X</td>';
                }
            } else {
                echo '<td><a href="?numero=',$value,'">',$value,'</td>';
// nouveau numero cliquable qui renvoie une variable $_GET['numero']
            }
        }

        '</tr>';
    }
    '</table>';
    {
        echo "<br>
<table align='center', textalign='center'>";
        $new = 'Nouveau tirage';
        echo '<br><br><br><td><a href="index.php?session=reset">',$new,'</td>';
// nouveau numero cliquable qui renvoie une variable $_GET['numero'] 
    }}



function realise_tirage() {
    $tab = array();
    $busy = false; //numéro unique

    for ($i=0; $i<6; $i++) {
        do {
            $nb = rand(1,49);
            foreach ($tab as $val) {
                if ($busy = ($val == $nb))
                    break;
            }
        } while ($busy);
        $tab[] = $nb;
    }
    return $tab;
}
var_dump($_SESSION);
affiche_grille($tab);

?>

</body>
</html>
Je te conseille vraiment beaucoup de refaire tout ton code, du début à la fin.

Déjà, une fonction ne doit rien afficher, elle devrait retourner un résultat, rien d'autre. Ensuite ta fonction realise_tirage est inutile. Fais ton code plus "simplement", plus efficacement, c'est vraiment très faisable.

Re: session php débutant help

par moogli » 23 oct. 2014, 23:45

salut,

il est regrettable que dans le sujet il n'y ai pas d'indiquer que les formules de politesses ne sot pas de veine chose lorsque l'on demande quelque chose.

je t'invite donc à relire le règlement que tu as accepté en postant afin de t'y conformer.

si tu ne comprend pas le fonctionnement du système de session voici un tuto http://www.lephpfacile.com/cours/18-les-sessions

quand reste une simple boucle for de 1 à 49, une césure (utilise l'opérateur modulo) et un if permet de faire ce que tu veux.
sauvegarde simplement les numéro cliqué pas besoin d'avoir la grille en entier.

sinon ton prof / formateur pourra certainement t'aider.

@+

session php débutant help

par nolan3009 » 22 oct. 2014, 21:57

Je dois créer un loto en php. voila ce que j'ai fait mais je n'arrive pas a transformer les nombres cliqués par des croix...en plus de dois ajouter une session :
"On utilisera également une session, contenant essentiellement un tableau à deux dimensions appelé grille. Ainsi, la variable $_SESSION['grille'] contiendra au départ les entiers 1 à 49.
Quand une case sera cochée, on pourra par exemple changer le signe de sa valeur (exemple : 10 deviendra -10). Les nombres négatifs seront affichés sous forme d'une croix (caractère « X » non cliquable) lors de l'affichage de la grille à l'écran.
D'autres variables de session seront sans doute utiles pour réaliser cette application, comme par exemple un entier comptant le nombre de cases cochées."
<html>
<head>
<title>grille loto</title>
</head>
<body>

<?Php	

define ( "NBL", 7); //nombre de lignes
define ("NBC", 7); //nombre de colonnes 

/* Création du tableau */
$tab = array();
$tab[0] = range (1, 7, 1);
$tab[1] = range (8, 14, 1);
$tab[2] = range (15, 21, 1);
$tab[3] = range (22, 28, 1);
$tab[4] = range (29, 35, 1);
$tab[5] = range (36, 42, 1);
$tab[6] = range (43, 49, 1);
return affiche_grille($tab);


function affiche_grille($tab) 
{
echo "
<br><br><br><br>
<table border = '1', align='center', cellpadding='6', textalign='center'>";
// On parcours toutes les lignes du tableau 

for ($i = 0; $i< NBL ; $i++) 
{
echo "<tr>"; 
// On parcours toutes les colonnes de la ligne
for ($j = 0; $j < NBC; $j++)
{
$value = $tab[$i][$j];
echo '<td><a href="?numero=',$value,'">',$value,'</td>'; 
// nouveau numero cliquable qui renvoie une variable $_GET['numero']
}

'</tr>'; 
}
'</table>';
{
echo "<br>
<table align='center', textalign='center'>";
$new = 'Nouveau tirage';
echo '<br><br><br><td><a href="index.php">',$new,'</td>'; 
// nouveau numero cliquable qui renvoie une variable $_GET['numero'] 
}}



function realise_tirage() {
$tab = array();
$busy = false; //numéro unique

for ($i=0; $i<6; $i++) {
do {
$nb = rand(1,49);
foreach ($tab as $val) {
if ($busy = ($val == $nb))
break;
}
} while ($busy);
$tab[] = $nb;
}
return $tab;
}

?>

</body>
</html>