Condition if

[Résolu]
Signaler
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007
-
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
-
Bonjour tous le monde,
Jai un espace membre qui est controlé par une "interface administrateur"

Depuis celle ci, il y a une section ou si je le souhaite qui peut fermer les inscriptions

A partir de la, tous marche correctement, je coche fermer les inscriptions dans la partie admin. la requete ce fait dans la base de donnée (off --> fermé ) (on -->ouvrir )
or je souhaiterai a présent aller dans le fichier inscription.php
pour ajouter cette fonction qui va me permettre de consulter la base en disant que si dans la table inscriptionok par rapport au champ inscriptionok = off dans lid 1
redirection vers index.php ou sinon inscription.php

J'ai commencé a codé, bien entendu étant actuellement encore un noob. je bloque.

Je remercie tous le monde de corriger mon erreur et faire le plus simple possible pour que je comprenne la structure ;)

---------
<?
include("config.php");



@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");


$requete = "SELECT inscriptionok FROM inscriptionok".
" WHERE id='1'";
$resultat = mysql_query($requete);


$ligne = mysql_fetch_array($resultat, MYSQL_ASSOC);

if ($ligne = "off"){
header("Location: index.php");
die();
}

?>
-------

17 réponses

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Ah oui, c'est mieux d'utiliser <?php plutot que <? car <? peut
provoquer des problèmes de compatibilité sur certains serveurs...



Et, ' ' sont plus rapides que " " car, dans le deuxième cas, la chaîne est interprêtée....



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!

Tu devrais tester:

$ligne['inscriptionok'] et pas $ligne



En plus, c'est bien de tester si la requête s'est effectuée
convenablement ( pas utiliser mysql_fetch_array si une erreur s'est
produite ) :

$resultat = mysql_query($requete) or die('Erreur MySQL');


A la place de die(), tu peux mettre un simple exit;



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

ok jai tous compris sauf :
---
"citation :
Salut!
Tu devrais tester:
$ligne['inscriptionok'] et pas $ligne " ( fin de citation)
--------------------------------
Jai pas compris :s
en ce qui concerne le reste je fai les modifs
est il possible de bien me le taper, car je ne sais pas ou je dois mettre
$ligne['inscriptionok']

ps : dans la table il y a 2 champ un champ id (1) et un champ inscriptionok (on) qui peut etre modifier par (off)
merci encore
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!

Alors, quand tu fais un SELECT et que tu utilises
mysql_fetch_array($resultat, MYSQL_ASSOC); , la fonction
mysql_fetch_array te renvoie un tableau. Dans ce cas, tu accède à
chaque colone récupérée par $ligne['nom_de_la_colonne']



A part ca, tu n'est pas obligé de faire une table juste pour ton
histoire d'inscriptions. Tu pourrais faire une table de configuration
contenant deux champs: le premier étant le nom du paramètre et le
second sa valeur. Dans ton cas, un enregistrement serait:

inscriptionok et sa valeur serait on ou off



C'est clair ou je m'explique mal? :D



@++



R@f


www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

c'est clair, le hic c que je ne sais pas le taper pour faire la condition dans le fichier inscription en debut de page.
J'aurai pensé que tu aurais fais un copie coller de mon script et remplacer ce qui va pas automatiquement. a partir de la jaurai apercu ce qui nallait pas avec ce que javai fait a la base.
Merci a toi encore de m'avoir répondu aussi rapidement
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Et simplement ceci?

if ( $ligne['inscriptionok'] = 'off')

{

header("Location: index.php");

exit;

}



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Récapitulatif :

<?
include("config.php");



@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");


$requete = "SELECT inscriptionok FROM inscriptionok";


$resultat = mysql_query($requete) or die('Erreur MySQL');



if ( $ligne['inscriptionok'] = 'off')
{
header("Location: inscription2.php");
exit;
}

---
Pour une simple histoire comme ca je met deux heures :s c fou :s

Erreur lors du test :

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\bhaf\inscription.php:2) in c:\program files\easyphp1-8\www\bhaf\inscription.php on line 18
Messages postés
388
Date d'inscription
lundi 7 juillet 2003
Statut
Webmaster
Dernière intervention
10 février 2009

as tu des caractères affichés (espace et retour saut de ligne compris) dans ton code avant l'envoi du header()?

"They are 10 sorts of persons whose understand binary and whose not"
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Non je ne pense pas, ce code ce trouve en haut de page. tout en haut.
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
En fait, le fonction header('location: page.php') ne peut être utilisée
que si aucune sortie n'a été faite. Par sortie, j'entends: echo, code
html, ...



@++



R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Ok quest ce que je peux mettre a la place ? alors ? et moi je ve mettre juste cette fonction sur la page pour indiquer uniquement que les inscriptions sont ouvert ou non c'est tous...
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

ha ca marche avec un echo ! c cool !
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

nan ca marche pas en fait parce quand je remet sur on ! c toujours fermé
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Apres quelques heures de recherches, j'affiche le Résultat que jai trouvé ;)
Pour les interessés :

<?
include("config.php");



@mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
or die("Impossible de se connecter au serveur de bases de données.");
@mysql_select_db($BD_base)
or die("Impossible de se connecter à la base de données.");


$requete = "SELECT inscriptionok FROM inscriptionok ";


$resultat = mysql_query($requete) or die('Erreur MySQL');


$resultat = mysql_fetch_array($resultat);

if ($resultat['inscriptionok'] == 'off'){


echo '<meta http-equiv="refresh" content="0;URL=inscription2.php">';
}
elseif ($resultat['inscriptionok'] == 'on') {


echo '<meta http-equiv="refresh" content="0;URL=inscription3.php">';
}
?>
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesud

Pour un problème de header voir la function ob_start() http://fr.php.net/manual/fr/function.ob-start.php

Vilhjálms Sigurðsdóttir aka Frëyjá
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,



plutôt que de passer par mysql (ce qui bouffe des perfs), pourquoi ne pas faire ceci :



dans ton fichier inscription.php, tu mets une variable en haut :



<?php

$activer=1;



//code

?>



bref ensuite les inscriptions ne seront actives que lorsque cette
variable vaudra 1 (il ne faut pas qu'une autre variable ait le même
nom).



Ensuite dans ton interface d'admin tu ouvres le fichier 'inscription.php' :



$fichier=file_get_contents('inscription.php');



tu va ensuite rechercher via une expression régulière la valeur de la variable $activer :



$valeur=preg_replace('`(.*)\$activer=(0|1);(.*)`sim','$2',$fichier);



si la valeur=0 tu affiches une case décochée :



echo '';



sinon une cochée :



echo '';



ensuite pour gérer la modification si tu veux que les inscriptions soient activées, tu fais ceci dans ton interface d'admin :



$fichier=file_get_contents('inscription.php');

$fichier=preg_replace('`\$activer=(0|1);`','\$activer=1;',$fichier);



et pour désactiver les inscriptions :



$fichier=file_get_contents('inscription.php');


$fichier=preg_replace('`\$activer=(0|1);`','\$activer=0;',$fichier);



ensuite il faut sauvegarder le fichier inscription.php modifié :



$fp=fopen('inscription.php','w+');

fputs($fp,$fichier);

fclose($fp);



bon si t'as besoin de détails supplémentaires n'hésite pas, mais je
pense que ça t'évitera de passer par une base mysql inutilement ;-)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesud

C'est pas con après cela dépend de l'utilisation complète prévue ...

Vilhjálms Sigurðsdóttir aka Frëyjá