Condition if

Résolu
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 22 juil. 2005 à 16:51
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 - 22 juil. 2005 à 21:02
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

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
22 juil. 2005 à 17:03
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???"
3
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
22 juil. 2005 à 17:00
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???"
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:04
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
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
22 juil. 2005 à 17:08
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???"
0

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

Posez votre question
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:12
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
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
22 juil. 2005 à 17:18
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???"
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:21
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
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
22 juil. 2005 à 17:26
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"
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:28
Non je ne pense pas, ce code ce trouve en haut de page. tout en haut.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 3
22 juil. 2005 à 17:29
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???"
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:32
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...
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:34
ha ca marche avec un echo ! c cool !
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 17:36
nan ca marche pas en fait parce quand je remet sur on ! c toujours fermé
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
22 juil. 2005 à 19:40
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">';
}
?>
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
22 juil. 2005 à 20:00
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á
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 9
22 juil. 2005 à 20:50
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>
0
vilhjalms Messages postés 591 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 16 juillet 2009 2
22 juil. 2005 à 21:02
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á
0