IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Afficher deux messages différent


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut Afficher deux messages différent
    Bonjour.

    Je suis sur la conception d'un site internet, et je coince sur l'étape la plus importante de mon site...

    Voici le script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    if (isset($_POST['code']) AND !empty($_POST['code']))
    {
       //Code de sécurité allopass :D pas afficher sur le fofo biensurs
     
       $aleatoire = mt_rand(1,20);
       if ($aleatoire == 1)
       {
        echo 'vous avez gagné 10€ félicitation ';
       }
       else
       {
        echo 'Vous avez perdu retentez votre chance !!';
       }
    }
    else
    {
    ?>
    <p>Merci de marquer votre code :</p>
    <form method="post"><P>
    <label>Code : <input type="text" name="code" /></label>
    <label><input type="submit" name="Envoyer" value="Envoyer" />
    </p></form>
    <?php
    }
    ?>
    La personne entre son code allopass, et il à 1 chance sur 20 de gagner 10€.

    Si 1 il à le message et si 2 il à l'autre message.

    Le problème je trouve pas sa très sécurisé et pas très pratique et sa ne marche pas.

    Il n'y aurai pas moyen de faire un formulaire qui marche avec un base de donné MySQL et que chaque envois de CODE BON cela rajoute ID 2, ID 3 dans la bdd et que dès que c'est ID 10 - 20 - 30 - 40 cela affiche le message gagnant ?

    Merci votre aide précieuse

    Cordialement Alexandre.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 214
    Par défaut
    En gros avant de gagner, il devra obligatoirement perdre 9 fois...? Ou est l'aléatoire dans tout ça ? Impossible de gagner du premier coup... Ça n'a rien d'un jeux...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    En gros oui.

    9 personnes vont perdre pour faire gagner 1 personnes.
    Genre, Julie à 1 chance sur 20 de gagner les 10 € (il faut bien que se système soit rentable des deux côtés).

    Enfin bref, avez-vous une solution ? Je lis plusieurs cours et tutoriels PHP mais la je vois vraiment pas comment faire ça.

    -Le joueur paye
    -Il accède sur une page lui indiquant : Vous avez perdu, il reste x appel pour gagner cette somme
    -Si il gagne, il accède à un formulaire pour les coordonnées d'envoi du chèque.

    Le système de paiement, et de formulaire sa c'est bon, mais c'est l'accès sur la page -_-.

    Merci de votre aide

  4. #4
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Citation Envoyé par alex5512 Voir le message
    La personne entre son code allopass, et il à 1 chance sur 20 de gagner 10€.
    Salut

    Le code allopass saisi par l'utilisateur, est-il limité à un accés unique, ou bien valable dans la durée d'acces ?

    Je te pose la question car dans le second cas, il est sûr de gagner à tous les coups ou presque.
    Pour celà l'utilisateur se deconnecte et se reconnecte dans la foulée et il pourra le faire tant qu'il n'a pas gagné.
    Statistiquement 1 chance sur 20.

    A l'inverse et dans le premier cas ( code pour 1 accés), tu pourrais gérer celà avec une table complémentaire.
    Independamment de ton code aléatoire, tu pourrais incrémenter "ton champ" par +1, chaque fois qu'un code allopass est renseigné.
    Ainsi qu'une requête complémentaire permettant de vérifier si "ce champ" incrémenté est égal à 20.
    Auquel cas, bingo.

    Et enfin si "tonchamp" est egal à 20, tu vides la table pour réinitialiser le tout.

  5. #5
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Complément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $aleatoire = mt_rand(1,20);
       if ($aleatoire == 1)
       { ........
    Puis attention à ton idée.
    Le chiffre aleatoire "1" peut sortir plusieurs fois sur 20 essais, tout comme il pourrait ne pas sortir.
    Aléatoire ne veut pas dire structuré.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Je viens de me rendre compte d'une erreur dans mon script

    Le voila corrigé ^^.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
    if (isset($_POST['code[]']))
    {
       //Code de sécurité allopass :D pas afficher sur le fofo biensurs
     
       $aleatoire = mt_rand(1,10);
       if ($aleatoire == 1)
       {
        echo "vous avez gagne 10€ félicitation ";
       }
       else
       {
        echo "Vous avez perdu retentez votre chance !";
       }
    }
    else
    {
    ?>
    <p>Merci de marquer votre code :</p>
    <form name="APform" action="http://payment.allopass.com/acte/access.apu"><P>
    <input name="ids" value="XXXXXX" type="hidden">
    <input name="idd" value="XXXXXX" type="hidden">
    <input name="lang" value="fr" type="hidden">
    <label>Code : <input type="text" name="code[]" /></label>
    <label><input type="submit" name="Envoyer" value="Envoyer" />
    </p></form>
    <?php
    }
    ?>
    Oui je compte faire un code pour un accès

    Le +1 vraiment sympa comme idée.

    Si cela marche avec la bdd donc je dois créer un fichier de connexion à ma bdd la pas de problème.

    Par contre, quoi mettre dans le formulaire pour que cela rajoute +1 dans le champ, on va prendre pour exemple le champ lot1.

    Merci de votre aide.

  7. #7
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Trés shématiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
    
    if (isset($_POST['code[]']))
    
    {
    
    1 - Tu fais une requête "SELECT lot1 FROM ta_table..."
    
    
    
    2 -         
            if($lot1==20)
            {
            // Ok c'est gagné, ou ce que tu veux
            // Tu vides la table pour une nouvelle aventure
            }
    
            elseif($lot1<=20)
            { 
            // Ben là, c'est perdu, ou ce que tu veux
            // Et on incrémente :
            $new_lot1=($lot1 + 1);
            // On met à jour :
            // Tu fais une requête "UPDATE ta_table SET lot1='$new_lot1'..."
            }
    
    }
    Enfin, c'est juste une arborescence, à toi de l'adapter comme tu veux.
    Dans ce cas précis, plus besoin d'utiliser un code aléatoire.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Bien j'ai créé ma table allo_lot et mon champs lot1.

    Voici après quelques modifications mon script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php if (isset($_SUBMIT['Envoyer']))
    {
     
    mysql_connect("XXXXXXX", "XXXXXXX", "XXXXXXX");
    mysql_select_db("XXXXXXX");
    SELECT * FROM allo_lot
     
    //Code de sécurité allopass :D pas afficher sur le fofo biensurs
     
    if($lot1==20)
    {
    echo "vous avez gagné 10€; félicitation ";
    TRUNCATE lot1 * FROM TABLE 'allo_lot1';
    mysql_close();
    }
    else
    {
    echo "Vous avez perdu retentez votre chance !";
    $allo_lot1 = ($lot1 + 1);
    UPDATE allo_lot SET lot1 = '$allo_lot';
    mysql_close();
    }
    }
    else
    {
    ?>
     
    <p>Merci de marquer votre code :</p>
    <form name="APform" action="http://payment.allopass.com/acte/access.apu"><p>
    <input name="ids" value="XXXXXX" type="hidden">
    <input name="idd" value="XXXXXX" type="hidden">
    <input name="lang" value="fr" type="hidden">
    <label>Code : <input name="code[]" type="text"></label>
    <label><input name="Envoyer" value="Envoyer" type="submit">
    </label></p></form>
     
    <?php }
    ?>
    Le problème je viens de le tester, il marche pas...
    Je devrais au moins réussir à faire marcher ce script, c'est pas si compliqué pourtant .

    Merci encore de l'aide.

  9. #9
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    C'était juste une idée de fond à developper et non pas le code source definitif.
    Si celà ne fonctione pas, normal aussi puisque tu ne respectes pas les syntaxes SQL.
    C'est pas une requête ça :
    Tu signales un champ + all
    Tu crées aussi une variable ($allo_lot1) à l'identique du nom de table, ce qui n'est pas trés prudent.
    Et apparemment, ton formulaire ne renvoie pas vers cette page de traitement.
    Avec tout ça, tu n'as rien de garanti.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    <?php
    mysql_connect("XXXXXXX", "XXXXXXX", "XXXXXXX");
    mysql_select_db("XXXXXXX");
     
    if (isset($_SUBMIT['Envoyer']))
    {
     
    $results = mysql_query("SELECT lot1 FROM allo_lot");
    while ($produit = mysql_fetch_array($results))
    	{
    	$lot1 = $produit["lot1"];
    	}
     
     
           if($lot1==20)
           {
           echo "vous avez gagné 10€; félicitation ";
     
           $sql = "UPDATE allo_lot SET lot1='0'";
           mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
           }
           elseif($lot1<=20)
           { 
           echo "Vous avez perdu retentez votre chance !";
     
           $new_lot1=($lot1 + 1);
     
           $sql = "UPDATE allo_lot SET lot1='$new_lot1'";
           mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
           } 
    }
    else
    {
    //Ton formulaire qui doit renvoyer vers cette même page (action=".....")
     
    }
     
    mysql_close();
    ?>

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    C'est bien pour ça que je viens ^^.

    Bon tout marche sur le script, maintenant faut juste que je trouve comment faire pour config le champs lot1 pour pouvoirs subir des changements de chiffres....

    Voila à quoi sa ressemble

    Champ Type Attributs Null Défaut Extra Action
    lot1 char(0) Non

    Merci encore.

  11. #11
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Citation Envoyé par alex5512 Voir le message

    char(0)
    Un char à 0 ?
    Allons, réfléchis

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    Erf, je suis désolé, mais j'ai beau changer le chiffre, cela ne change rien...

    Je suis pas doué faut l'avouer ^^

  13. #13
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Je comprends, le probléme Alex, donner des pistes, orienter vers des suggestions ou détecter des anomalies dans une application, ok parfait, mais on ne peut pas faire tout le bouleau non plus.
    Ce n'est pas la destination d'un tel forum.
    Il faut en amont et de la part de l'intervenant, un minimum de recherche et de travail effectué avant d'exposer son propre souci.
    Il y a de trés nombreux tutos sur PHP/SQL, google en foisonne, sans oublier ceux de qualité et à disposition sur le site de developpez, il y a aussi de nombreux ouvrages.
    Autrement dit, un minimum de connaissance avant de se lancer dans l'aventure.
    On est tout plein de bonne volonté mais nous avons aussi nos limites.
    Ceci dit, sans agressivité aucune.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 62
    Par défaut
    J'avoue, sinon merci encore de ton aide précieuse qui n'a fait qu'avancer mon projet

    Cordialement Alexandre

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/05/2015, 11h41
  2. [MySQL] Afficher deux articles différent par ligne
    Par Blueyes50 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/05/2012, 11h20
  3. Afficher deux bureaux différents
    Par DolomatS dans le forum Périphériques
    Réponses: 4
    Dernier message: 02/05/2008, 09h49
  4. Message de confirm qui s'affiche deux fois
    Par Lolie11 dans le forum Langage
    Réponses: 17
    Dernier message: 07/06/2007, 11h00
  5. Message de confirm qui s'affiche deux fois
    Par Lolie11 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 05/06/2007, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo