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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Comment obliger les inscriptions dans phpfreechat


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut Comment obliger les inscriptions dans phpfreechat
    Bonsoir, j'utilise phpfreechat sur mon site et il me plait bien, mais dans ces 2 jours je suis confronté à un problème d'utilisateur mal intentionné qui ne respect pas mes chartes et impossible de les bannir par ip car il utilise surement des proxi.
    Alors je voudrais savoir si quelqu'un peut me montrer comment rendre les inscription obligés dans phpfreechat de sorte à pouvoir bannir un pseudo et supprimer son compte pour qu'il ne puisse plus rentrer dans le chat.
    Je m'explique
    Tu arrive sur le chat, ça te demande un user et mot de passe, avec un lien qui permet de s'inscrire sans trop demander d'info juste un user, mot de passe et mail à l’inscription.
    Une fois inscrit une validation de ton compte par mail et tu te connecte à phpfreechat avec tes identifiants.
    Comme pour éjecter quelqu'un, je supprime son compte simplement.
    --------------------------------------
    J'avais penser à un truc de ce genre:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    if (isset($_POST['code'])) { 
      $tab_mdp = array("user1", "user2", "user3");
      if (in_array($_POST['code'], $tab_mdp)) {
    ?>
    <?php
    require_once dirname(__FILE__)."/src/phpfreechat.class.php";
    $params["serverid"]      = md5(__FILE__); // calculate a unique id for this chat
    $params["language"]      = "fr_FR";
    $params["max_privmsg"]    = 1; // limit the number of private message tab to 1
    $params["max_channels"]   = 1;  // limit the number of joined channels tab to 3
    $params["shownotice"]     = 0; // 0 = nothing, 1 = just nickname changes, 2 = connect/quit, 3 = nick + connect/quit
    $params["theme"]      = "msn";
    $params["title"]      = "Tchat général";
    $params["channels"]      = array("Débat Général");
    $params["timeout"]      = 990000;
    $params["admins"]      = array("admin" => "admin");
    $params["max_displayed_lines"] = 500;
    $params["max_msg"] = 900;
    $params["height"] = "700px";
    $params["shownotice"] = 1;
    $chat = new phpFreeChat( $params );
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html>
    <head>
    <?php $chat->printJavascript(); ?>
    <?php $chat->printStyle(); ?>
    <title>
    Chat 
    </title>
    </head>
    <body>
    <?php $chat->printChat(); ?>
    </body>
    </html>
    <?php
        } else { 
            ?>   
     
        <p><font color="#000000" size="4"><font color="red"><p> Mauvais mot de passe </p></font></font></p>
            <form action="#" method="post"> 
            <font color="#000000"
    size="4">Taper un bon mot de passe:</font> 
            <input type="text" name="code" value="" id="idInput" />
    		<script language="javascript">
       document.getElementById('idInput').focus();
    		</script>
            <input type="submit" /> 
            </form> </center>       
            <?php
        } 
     
    } else { 
        ?>      
    <p><font color="#000000" size="4">Taper votre mot de passe avant de rentrer sur le chat</font></p>
    <br/> 
            </font> 
     
            <form action="#" method="post"> 
            <font color="#000000" size="4">Tapez votre mot de passe ici: 
            <input type="text" name="code" value="" id="idInput" />
    		<script language="javascript">
       document.getElementById('idInput').focus();
    		</script>
            <input type="submit"> </font>
            </form> 
    <?php
    } 
    ?>
    Mais cela ne marche pas car je ne sais pas comment faire pour que php free chat recupère le pseudo qui sera dans mon Si au moins j'arrivais à faire ça je supprimerai manuellement le user mal intentionné de mon array et il ne pourra plus se connecter.
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne vois rien dans ton code qui permette de saisir un pseudo pour commencer.

    Entre nous, cela n'empechera pas ton utilisateur de s'inscrire de multiples fois avec des emails différents s'il le souhaite.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Merci pour la réponse.
    Je fais saisir le pseudo dans ce input
    <input type="text" name="code" value="" id="idInput" />.
    Au moins si j'arrive à supprimer les pseudos que je veux les réinscription avec d'autres mails pourront découragé la personne mal intentionné. En plus je pourrais choisir de tarder dans la validation des inscriptions étant donné que mon chat n'est pas aussi grand que ça.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le input "code" placé derrière "veuillez saisir votre mot de passe" c'est le login ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Oui en effets c'est ça mon login en quelques sortes. Je pourrais le changer en entrée votre pseudo. Et le récupérer avec un $post sur phpfreechat mais dans ce cas si je supprime un pseudo fautif et que la personne a lu le pseudo d'une autre personne il lui suiffi de revenir avec ça.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je ne te comprends pas.
    Tu dis que tu veux un login et un mot de passe, il faut alors un champ login et un champs mot de passe non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    En effet il me faut un champ mot de passe pour pouvoir interdire de se connecter juste en connaissant le pseudo de quelqu'un, mais malheureusement je m'arrive pas créer un script php qui vas faire correspondre les user et les mots de passe et les récupérer dans le post en faisant liée uniquement le user pour le chat.
    Si j'arrive à faire correspondre les user et les mots de passe je tenterai dans mon formulaire d'inscription de faire remplir automatiquement un fichier texte contenant le user et le mot de passe de chaque inscrit. Et si après je veux enlever quelqu'un je rentre dans le fichier texte pour enlever son user et son mot de passe.
    Exemple voulu dans le fichier texte
    User1=>mot de passe1
    User2=>mot de passe2
    Ect.
    Comment faire dans mon formulaire de connexion ?
    Mes connaissances en php étant juste faire des includes seulement !!

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme je te dis, la première étape est d'écrire le formulaire de connexion en HTML.
    Après malheureusement ça devient plus compliqué puisqu'il va falloir gérer les inscriptions dans une base de données, valider les authentifications des utilisateurs déjà créés etc. et qu’évidemment un système de sécurité mal écrit ça ne sert plus à rien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Coté formulaire, j'avais pensez à ça:
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php
     
    if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
    else
    $ip=$_SERVER['REMOTE_ADDR'];
    //echo $ip;
     
    if (isset($_POST["envoyer"])){ // Si le formulaire a été soumis
    	$etat = "erreur"; // On initialise notre etat à erreur, il sera changé à "ok" si la vérification du formulaire est un succès, sinon il reste à erreur
     
    	// On récupère les champs du formulaire, et on arrange leur mise en forme
    	if (isset($_POST["son_pseudo"])) $_POST["son_pseudo"]=trim(stripslashes($_POST["son_pseudo"])); // trim()  enlève les espaces en début et fin de chaine
     
    	if (isset($_POST["son_email6ht"])) $_POST["son_email6ht"]=trim(stripslashes($_POST["son_email6ht"])); // stripslashes()  retire les backslashes ==> \' devient '
     
     
     
     
    	// Après la mise en forme, on vérifie la validité des champs
    	if (empty($_POST["son_pseudo"])) { // L'utilisateur n'a pas rempli le champ pseudo
    		$erreur="Vous n'avez pas entr&eacute; votre pseudo..."; // On met dans erreur le message qui sera affiché
    	}
    	elseif (empty($_POST["son_email6ht"])) { // L'utilisateur n'a pas rempli le champ email
    		$erreur="Nous avons besoin de votre e-mail pour vous r&eacute;pondre...";
    	}
    	elseif (!preg_match("$[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["son_email6ht"])){ // On vérifie si l'email est bien de la forme messagerie@domaine.tld (cf cours d'expressions régulières)
    		$erreur="Votre adresse e-mail n'est pas valide...";
    	}
     
     
    	else { // Si tous les champs sont valides, on change l'état à ok
    		$etat="ok";
    	}
    }
    else { // Sinon le formulaire n'a pas été soumis
    	$etat="attente"; // On passe donc dans l'état attente
    }
     
    if ($etat!="ok"){ // Le formulaire a été soumis mais il y a des erreurs (etat=erreur) OU le formulaire n'a pas été soumis (etat=attente)
    	if ($etat=="erreur"){ // Cas où le formulaire a été soumis mais il y a des erreurs
    		echo "<span style=\"color:red\">".$erreur."</span><br /><br />\n"; // On affiche le message correspondant à l'erreur
    	}
    	?>
     
    	<!-- Formulaire HTML qu'on affiche dans l'état attente ou erreur -->
    	<center><form method="post" action="#">
    <p align="center"><font size="5"><strong>Pour vous inscrire saisissez votre Pseudo et adress Email</strong></font></p>
    	<!-- Les données du formulaire seront récupérée avec la méthode POST, et action correspond à la page contenant le formulaire -->
    	<p style="text-align:center">
    	<label for="son_pseudo">Pseudo *</label><br /> <!-- Intitulé du champ pseudo -->
    	<input type="text" size="40" name="son_pseudo" id="son_pseudo" value="<?php
    		if (!empty($_POST["son_pseudo"])) {
    		// le pseudo de l'expéditeur a été saisi --> le réafficher
    		echo htmlspecialchars($_POST["son_pseudo"],ENT_QUOTES); // htmlspecialchars() convertit les caractères spéciaux en leurs code html, exemple : & devient &amp;
    		}
    		?>" />
     
    	<br />
     
    	<label for="son_email6ht">Adresse E-mail *</label><br /> <!-- Intitulé du champ e-mail -->
    	<input type="text" size="40" name="son_email6ht" id="son_email6ht" value="<?php
    		if (!empty($_POST["son_email6ht"])) {
    		// l'e-mail de l'expéditeur a été saisi --> le réafficher
    		echo htmlspecialchars($_POST["son_email6ht"],ENT_QUOTES);
    		}
    		?>" />
     
     
    	</p><br/>
    	<button type="submit" name="envoyer" value="Envoyer" style="width : 105px; height: 45px;" ><img src="send.png" width="25px" align="absmiddle" hspace="5" /> Envoyer</button> 
    	<button type="reset" name="reset" value="Effacer" style="width: 80px; height: 35px;" ><img src="bouton_envoyer.png" width="25px" align="absmiddle" hspace="5" /></button>
     
    	</form></center>
    	<!-- FIN du formulaire HTML -->
     
    	<?php
    }
    else { // Sinon l'état est ok donc on envoie le mail
    	$son_pseudo = $_POST["son_pseudo"]; // On stocke les variables récupérées du formulaire
    	$son_email6ht = $_POST["son_email6ht"];
     
    	$my_emailzj = "xx@xy.fr"; // Mise en forme du message que vous recevrez
    	$mon_pseudo = "TEST";
    	$mon_url = "http://";
    	$la_page="Chat";
    	$son_objet="Inscription au chat";
    	$msg_pour_moi = "- Mail venant de La page : $la_page \n
    	- Son pseudo : $son_pseudo \n
    	- Son IP : $ip \n
    	- Son E-mail : $son_email6ht \n";
     
     
     
     
    	// Envoie du mail
    	$entete = "From:".$son_email6ht."\n"; // On prépare l'entête du message
    	$entete .='Content-Type: text/plain; charset="utf-8"'."\n"; 
    	$entete .='Content-Transfer-Encoding: 8bit';
     
    	if (@mail($my_emailzj,$son_objet,$msg_pour_moi,$entete)){ // Si le mail a été envoyé
    		echo "<p><font color=\"#004000\" size=\"4\"><strong>Votre demande a été
    envoyé.</strong></font></p>
    <br /><br /> 
    	<p align=\"center\"><A HREF=\"javascript:history.go(-2)\"><font size=\"6\">Retour</font></a></p>\n";// On affiche un message de confirmation
    	}
    	else { // Sinon il y a eu une erreur lors de l'envoi
    		echo "<p style=\"text-align:center\">Un probl&egrave;me s'est produit lors de l'envoi du message.
    	<p align=\"center\"><A HREF=\"javascript:history.go(-2)\"><font size=\"6\">Retour</font></a></p>\n";
    	}
    }
    ?>
    Il faudra maintenant ajouter un champ mot de passe et au lieu de recevoir les données par mail pour les inscrire manuellement dans mon script, il me faut trouver un moyen de les récolter automatiquement soit dans un fichier texte à chaque inscription ou dans une base de données comme vous l'avez dit. Mais j’avoue que je ne sais pas comment m'y prendre ni pour un fichier texte ni pour une base de données.

Discussions similaires

  1. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 17h11
  2. [ClassPath]Comment inclure les librairies dans un .BAT
    Par Kyti dans le forum Général Java
    Réponses: 2
    Dernier message: 26/03/2005, 08h07
  3. Comment tuer les processus dans l'état sleeping sans EM ?
    Par David Guillouet dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/02/2005, 09h42
  4. Comment afficher les toolTipText dans une zone de statut ?
    Par nicok01 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/01/2005, 13h32
  5. Comment éviter les doublons dans ma table
    Par einegel dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/11/2004, 12h18

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