Script en php ne fonctionne plus

Résolu/Fermé
MisterGreen - 30 juil. 2009 à 17:43
 mars77 - 2 sept. 2015 à 22:56
Bonjour,

J'utilise depuis plusieurs année un scripts de quizz en php (My_quiz_php, créé par Stéphane Kupecky).
je l'ai très légérement adapté à l'époque où je touchait un peu à la programmation php (un peu je précise et mes obligation depuis deux ans font que je deviens de moins en moins performants si tant est que je l'ai été).

Depuis quelques semaines, il ne fonctionne plus alors que je n'ai à priori rien touché dans son code.

Je cherche depuis quelques semaines mais sans résultats.

Quelqu'un aurait-il une idée ? Y-a-t-il eu des modifications ces dernières semaines qui pourrait expliquer ce brusque bug ?

Sur mon script de quizz que l'on retrouve à l'adresse suivante : http://www.riposteverte.com/quizz/ on ne peut plus s'inscrire.
Dès que l'on essaie de se loger, il est répondu, vous avez déjà participer aujourd'hui et cela quelque soit le login que l'on utilise !!!

Voici le début du code

<form name="formaffiche" action="quizz_verif.php" method="POST">
<?php
include("../configbdd.php");
include("../configquizz.php");
// Vérifier si le visiteur a déjà participé au quizz le même jour.
$datej=date("Y-m-j");
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like'$Nom_visiteur' AND date='$datej' ";
$res=mysql_db_query($bdd, $sql);
$row = mysql_fetch_array($res);
if ($nbparticip=='faux'){
$row[0]='tototatatriti';
}
if ($row[0]==$Nom_visiteur){
print ("Désolé $Nom_visiteur, vous avez déjà participé aujourd'hui, retentez votre chance demain");
}




merci d'avance

V Hergott
A voir également:

20 réponses

roussos Messages postés 221 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 décembre 2014 8
30 juil. 2009 à 17:47
bonjour,
regarde cette ligne
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like'$Nom_visiteur' AND
ou bien il ya autre chose?
0
Bonjour Roussos,

Non il n'y a rien d'autre que les lignes de scripts que j'ai posté dans mon message
0
roussos Messages postés 221 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 décembre 2014 8
30 juil. 2009 à 18:12
ok donc l'erreur est à cette ligne like'$Nom_visiteur' AND
elle devrait plutot etre like='$Nom_visiteur' AND
0
en rajoutant le = entre like et '$Nom_visiteur', cela me crée une erreur (ci dessous) et cela me dit toujours que j'ai déjà joué
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /quizz/quizz.php on line 133
Désolé , vous avez déjà participé aujourd'hui, retentez votre chance demain
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
30 juil. 2009 à 18:30
Bonjour,

Il te manque un espace :)

$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like '$Nom_visiteur' AND date='$datej' ";
0
J'ai rajouté l'espace mais cela ne change rien
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like '$Nom_visiteur' AND date='$datej' ";
0
roussos Messages postés 221 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 17 décembre 2014 8
30 juil. 2009 à 18:39
enleve le like et mes "="
0
J'avais essayé et je viens de le refaire
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur='$Nom_visiteur' AND date='$datej' ";

mais cela ne change rien
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 18:39
où prends tu cette variable ? $Nom_visiteur

$Nom_visiteur=$_POST['Nom_visiteur'];
0
On la prend dans le formulaire de départ je pense

<form name="formaffiche" action="quizz.php" method="POST">
<tr>
<td class="quizztitre">   Entrez votre nom/pseudo :   </td>
<td class="quizztitre">
<input type="text" name="Nom_visiteur" size="25">
</td>
</tr>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 18:53
On le tape dans ce formulaire qui est envoyer à quizz.php

dans quizz.php tu le récupères comment ?

par $Nom_visiteur=$_POST['Nom_visiteur'];

ou tu as une ligne du genre extract($_POST);
0
Sur la page quizz, cela commence par ca :
<form name="formaffiche" action="quizz_verif.php" method="POST">
<?php
include("../configbdd.php");
include("../configquizz.php");
// Vérifier si le visiteur a déjà participé au quizz le même jour.
$datej=date("Y-m-j");
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like '$Nom_visiteur' AND date='$datej' ";
$res=mysql_db_query($bdd, $sql);
$row = mysql_fetch_array($res);
if ($nbparticip=='faux'){
$row[0]='tototatatriti';
}
if ($row[0]==$Nom_visiteur){
print ("Désolé $Nom_visiteur, vous avez déjà participé aujourd'hui, retentez votre chance demain");
}
else{
// Selectionner les questions

Donc il n'y a pas de $_post

Par contre dans la page quizz-verif.php, cela commence par :
<?php
include("../configbdd.php");
include("../configquizz.php");
// Afficher les coordonnées du participant
print "<b>";
print $HTTP_POST_VARS["Nom_visiteur"];
print "</b><br>";
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 19:08
C'est bien ce que je pensait les valeurs ne sont pas récupérées ton hebergeur a du modifier le fichier de config de php, et REGISTER_GLOBAL est mis à OFF (pour des raisons de sécurité)

conséquence:

avant quand un formulaire t'envoyait un <input name="Nom_visiteur"

tu avait sa valeur directement dans la variable $Nom_visiteur

maintenant il faut la "récupérer" dans la globale $_POST
$Nom_visiteur=$_POST['Nom_visiteur'];

sécurité: tu maintrises les variables que tu souhaites recevoir alors qu'avant un filou pouvait envoyer n'importe quoi.

donc modifes:

Sur la page quizz, cela commence par ca :
<form name="formaffiche" action="quizz_verif.php" method="POST">
<?php
include("../configbdd.php");
include("../configquizz.php");
// Vérifier si le visiteur a déjà participé au quizz le même jour.
$datej=date("Y-m-j");
$Nom_visiteur=mysql_escape_string($_POST['Nom_visiteur']);
// + une petite sécurisation en passant
$sql="Select nomvisiteur, date FROM quizz_visiteur WHERE nomvisiteur like '$Nom_visiteur' AND date='$datej' "; 

etc.....
0
Alain tta remarque me parait logique et effectivement on avance
Il ne me dit plus que j'ai déjà joué mais par contre il ne m'envoie plus les question du script
voir : http://www.riposteverte.com/quizz/quizz.php

Désolé je dois m'absenter quelques temps pour m'occuper de mes enfants. je reviens plus tard dans la soirée
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 20:11
if ($nbparticip=='faux'){
$row[0]='tototatatriti';
}
if ($row[0]==$Nom_visiteur){
print ("Désolé $Nom_visiteur, vous avez déjà participé aujourd'hui, retentez votre chance demain");
}
else{


d'où vient cette variable $nbparticip ?
0
Me revoilà pour écouter vos conseils avisés.

la variable $nbparticip, je la retrouve uniquement dans un fichier configquizz dont voici le contenu

?
//include("configbdd.php");
$sql="SELECT * FROM quizz_config";
$res=mysql_db_query($bdd, $sql);

// Définir les variables de configuration
$row = @mysql_fetch_Array($res);
$titre=$row[titre];
$nbquestion=$row[nbquestion];
$mode=$row[mode];
$image=$row[image];
$reponse_aff=$row[reponse];
$nbparticip=$row[nbparticip];
$nbtop=$row[nbtop];
$mailadmin=$row[mailadmin];
$mailparticip=$row[mailparticip];
$adresseadmin=$row[adresseadmin];
$sujetmail=$row[sujetmail];
$entetemail=$row[entetemail];
$hebergeur=$row[hebergeur];
$categorie=$row[categorie];
$score=$row[score];
$cumul=$row[cumul];
$mono=$row[mono];
$multi=$row[multi];
?>
0
j'oubliai pour information, le site est hébergé chez Online.net
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 21:38
et le config_quizz.php ?
0
le fichier se nomme configquizz.php
A l'intérieur, on retrouve


?
//include("configbdd.php");
$sql="SELECT * FROM quizz_config";
$res=mysql_db_query($bdd, $sql);

// Définir les variables de configuration
$row = @mysql_fetch_Array($res);
$titre=$row[titre];
$nbquestion=$row[nbquestion];
$mode=$row[mode];
$image=$row[image];
$reponse_aff=$row[reponse];
$nbparticip=$row[nbparticip];
$nbtop=$row[nbtop];
$mailadmin=$row[mailadmin];
$mailparticip=$row[mailparticip];
$adresseadmin=$row[adresseadmin];
$sujetmail=$row[sujetmail];
$entetemail=$row[entetemail];
$hebergeur=$row[hebergeur];
$categorie=$row[categorie];
$score=$row[score];
$cumul=$row[cumul];
$mono=$row[mono];
$multi=$row[multi];
?>
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 21:51
Ok c'est le fichier qui permet de recuperer les parm de config qui sont stockés dans une table de la BDD

par contre

qu'y a-t-il après le else de
if ($row[0]==$Nom_visiteur){
print ("Désolé $Nom_visiteur, vous avez déjà participé aujourd'hui, retentez votre chance demain");
}
else{


si tu veux tu m'envoie en MP

concernant Online.net j'ai jeté un oeil sur leur site

en php4 Register_global est à on

en php5 elle est a off, donc tu dois passer surement sur php5
0
MP, c'est quoi, message privé ??
Quelle est la marche à suivre pour MP.

Comment fait on pour passer en php5.
J'ai un peu perdu la main c'est dernier temps.

Je comprends mieux pourquoi tout déconne sur mes script depuis quelques temps.
Là je regarde de mon côté et la page admin ne fonctionne plus, les données d'administration ne s'enregistrent pas dans la base et donc c'est pour cela que je n'avais pas mes questions affichées après le pseudo
Mais comme la page admin ne fonctionne plus, je suis en train de le faire directement sur phpmyadmin ce qui contourne le pb mais ne le résous pas
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 22:09
oui MP c'est message privé

tu cliques sur mon pseudo et la tu as lui ecrire un message

ça évite de laisser trainer sur le forum des codes un peu "confidentiels"

dans ton cas il faudrait essayer de forcer ton site à utiliser php4 sur le serveur de online.net

je vais essayer de voir ça
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 22:17
sur leur site j'ai trouvé ça:

Online vous propose deux versions de PHP:

*
la version 4 qui est utilisée par défaut pour les fichiers nommés .php3 et .php
*
la version 5 qui est utilisée par défaut pour les fichiers nommés .php5

Pour personnaliser la version de php de votre site, il faut placer en racine /www un fichier texte nommé .htaccess comprenant la ligne de commande suivante :

# Pour faire parser les fichiers ".php" par PHP5
AddType application/x-httpd-php5 .php


donc a la lecture de ça tu devrait être en php4 ou alors tu as un fichier .htaccess qui fait la modif vers php5 ?

pour voir quelle version rajoutes cette ligne

echo "version de php :".phpversion();

après
<?php
include("../configbdd.php");
include("../configquizz.php");
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 22:26
J'ai donc déjà la modif vers php5.

Je l'avais mis il y a quelque mois mais impossible de me rappeler pourquoi. Un script qui ne marchait plus mais lequel ?
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 22:23
En .htacces, voilà ce que j'ai

ErrorDocument 404 http://www.riposteverte.com/erreur/index.php

# Pour faire parser les fichiers ".php" par PHP5
AddType application/x-httpd-php5 .php
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 22:25
donc tu es bien sur php5
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 22:30
Il faut donc que je revienne à du php4 et que j'enleve cela de .htaccess ?
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 23:04
Je me rappelle maintenant à quel moment j'ai rajouté


# Pour faire parser les fichiers ".php" par PHP5
AddType application/x-httpd-php5 .php


J'ai un script wanewsletter (pour envoyer en nombre des infos) qui ne marchait plus. Et qui marche avec ce rajout

Donc si je passe en php5, wanewsletter marche mais le quizz, un formulaire de contact et un un script pour afficher des images en nombre ne marchen plus

Si je reste en php5, c'est l'inverse, tout fonctionne sauf wanewsletter

mais j'ai besoin de tous mes scripts

Aurais tu une idée Alain ?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 23:05
en revenant au php4 donc en otant la ligne concernée du htaccess ça resoudrait pas mal de problème
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 23:10
C'est sur qu'en php4 j'ai plus de script qui fonctionne et un seul qui ne fonctionne pas mais celui ci je l'utilise bcp et j'en ai besoin. Dur dur

je n'avais pas vu ta réponse en MP
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 23:17
ha ok je suppose que ce script utilise une fonction qui n'existe pas en php4

si tu retses en php5 pour eviter de rechercher toutes les variables qui coincent tu peux mettre tout au début de chaque page php

juste après <?php

extract($_POST,EXTR_OVERWRITE);

ça fera le boulot automatiquement pour toutes
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
30 juil. 2009 à 23:39
je suis en train de tester.
je laisse le php5 et je mets extract($_POST,EXTR_OVERWRITE);
Ca a l'air de régler certains probleme mais peut etre pas tous. Je continue.

Merci pour tous tes conseils
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
30 juil. 2009 à 23:50
n'oublies pas de le mettre sur toutes les pages .php
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
31 juil. 2009 à 00:02
A priori, ca régle le pb sur le quizz. C'est le principal
Ca marche également sur le formulaire de contact
mais ca ne marche pas sur une petit script pour mettre afficher des vignettes que l'on peut ensuite agrandir
0
MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009 > MisterGreen1 Messages postés 8 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 31 juillet 2009
31 juil. 2009 à 00:20
Ca ne marche pas sur ce script de galerie de photo mais ce n'est pas urgent.
J'ai enlevé le script et j'affiche les photos autrement. Ca ira pour le moment.
Je pars en vacances dimanche et je tacherai de régler ce problème à mon retour fin août.

Merci pour tout à Alain_42

MisterGreen
0
Bonjour,

Vos messages datent mais j'ai également des pbs avec ce script qui marchait avant . Comment avez vous réglé vos problèmes exactement ? Les variables ne semblent pas passer ds le script de verif
0