Aide redirection et formulaire

Petit nouveau ! | 6 Messages

28 juin 2007, 02:01

Bonjour, je débute en php et je souhaite créer un concours par sms pour gagner un maillot de foot.
J'ai installé un formulaire allopass sur le site web et je souhaiterai par exemple que tous les 100 sms une personne gagne. J'aimerai donc que si la personne gagne qu'une page apparaisse pour l'informe qu'elle a gagné et avec un formulaire pour y mettre ses coordonnés.
Si la personne ne gagne pas, je souhaiterai qu'une page apparaisse en lui indiquant le nombre de sms avant le prochain gagnant (il y a un gagnant tous les 100 sms)

Quelqu'un peux m'aider à faire ce code et me précisant ce que je dois modifier si je veux changer les paramètres
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 juin 2007, 10:51

Voici une suggestion de ce que tu peux faire : à chaque sms envoyé, tu vas incrémenter un compteur dans une base de données afin de savoir combien de sms ont été envoyés (tu peux vérifier la valeur précédente et éventuellement la remettre à 0 à chaque fois qu'il atteint 100, ce qui te simplifiera les calculs :))

Quand l'utilisateur arrive sur ta page, tu consultes le nombre de sms comptabilisé avec une requête de type SELECT. Si tu laisses le compteur s'incrémenter de manière automatique, on va vérifier que la valeur est multiple de 100. Pour cela, il suffit de diviser par 100 et de vérifier que le reste de la division est égal à 0. On utilise pour cela l'opérateur modulo qui s'écrit "%" :

Code : Tout sélectionner

$compteur % 100 = reste de la division ($compteur / 100)
En fonction du résultat tu vas pouvoir rediriger l'utilisateur avec la fonction header(). Il te suffit donc de mettre en place une simple structure conditionnelle : SI le résultat du modulo est 0, alors redirection vers la page des gagnants, SINON redirection vers la page des perdants.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 451 Messages

28 juin 2007, 12:00

Bonjour,

La réponse de Ryle est tout à fait complète.

Je réponds juste pour faire une remarque, il n'est peut être pas nécessaire d'implémenter la fonction header() (attention, elle est chatouilleuse : elle ne marche que si rien, pas même un espace ni une ligne vide, n'a été envoyé avant qu'on l'appelle) pour faire une redirection.
Arrivé au test comme te l'a expliqué Ryle, tu peux utiliser ta condition pour afficher directement dans la même page :
- soit le nombre de sms restants
- soit le formulaire
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Petit nouveau ! | 6 Messages

28 juin 2007, 19:33

MErci de votre aide, je vais essayer de mettre en pratique ces conseils, mais je pense que je reviendrai vite vers vous, car c'est la première fois que j'utilise le php
Quelqu'un peut me donner des liens de tutoriaux à consulter pour m'aider à débuter et à faire ce que je voudrai mettre en place

Eléphant du PHP | 451 Messages

28 juin 2007, 22:44

Hum,

http://www.phpdebutant.org/
http://www.siteduzero.com/

Après, si tu as une question spécifique, tu cherches dans ce forum ou avec google.

Bonne continuation,
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Petit nouveau ! | 6 Messages

29 juin 2007, 14:28

ME revoilà, j'ai fait ça à l'aide d'un copain et je l'ai envoyé sur mon site avec un fichier nb.txt vide.
Le problème est que le nombre de sms se descends pas, comment faire

<?php

$fichier = fopen('nb.txt','r+');

$nb_sms = fgets($fichier);

if (!isset($nb_sms) OR $nb_sms == 100)
{
$nb_sms = 0;
}

$nb_sms++;

fseek($fichier, 0);
fputs($fichier, $nb_sms);
fclose($fichier);

$nb_sms_restant = 100 - $nb_sms;

echo '<p><h2>Bravo !</h2></p>

<p>Il reste '.$nb_sms_restant.' SMS.</p>';
?>