Espace m

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Espace m

Re: Espace m

par sirakawa » 31 janv. 2015, 18:15

Re: Espace m

par kelownie » 31 janv. 2015, 15:01

J'ai pas mal avancés et il me manque plus que 2/3 trucs

quelqu'uns auraient le code php en 2/3 ligne pour verifier si un pseudo ou un mail est déja dans la base de donné pour empecher l'inscription ? merci

Re: Espace m

par sirakawa » 31 janv. 2015, 10:09

Ca ne resout rien mais:
<?php
header('Content-type: text/html; charset=UTF-8');
$message = null;


//doc http://php.net/manual/fr/filter.filters.sanitize.php
filter.default = full_special_chars
filter.default_flags = 0*
$pseudo = filter_input(INPUT_POST, 'pseudo');
$pass = filter_input(INPUT_POST, 'pass');

if (isset($pseudo,$pass))
{  
    $pseudo = trim($pseudo) != '' ? $pseudo : null;
    $pass = trim($pass) != '' ? $pass : null;


 //il faudrait filtrer ici  
$pseudo =  filter_input(INPUT_POST, 'pseudo', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
 $pseudo =  filter_input(INPUT_POST, 'pseudo', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);  


        if(isset($pass) && isset($pseudo)) //déjà testé
Pour utf8 il ne suffit pas de mettre ?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />
et
mb_internal_encoding ( 'UTF-8' );

Enfin
print "On est à resultat";
var_dump($resultat);die();
if (!$resultat)

Re: Espace m

par tof73 » 31 janv. 2015, 03:19

si date_enregistrement est une date, alors c'est curdate() qu'il faut utiliser.

Espace m

par kelownie » 31 janv. 2015, 02:24

Oui je sais, encore quelques choses sur les espaces membres.. j'en suis désolé.

Bonsoir, c'est la première fois que fais un sujet je suis plutôt débrouillard normalement, je n'ai pas trop besoin des autres, si je suis bloqué, je cherche sur internet..
Mais la je suis bloqué, bloqué. Aussi faut dire que je suis débutant en la matiere et que cela fait 4 jours quasi h24 que je cherche *sifflote*

bon : voici mon code : erreur ---> utf8 désactivé, en gros, plus d'accents
deuxieme erreur ----> probleme lors de la requet d'insertion. je vous laisse admirer. Moi faut que j'aille dormir, j'en ai besoin.
Aidez moi. ( en plus tout ma partie connexion marche du tonnere, mais j'ai pas envie de devoir remplir tout ma bdd a la main :p )
<?php
header('Content-type: text/html; charset=UTF-8');
$message = null;

$pseudo = filter_input(INPUT_POST, 'pseudo');
$pass = filter_input(INPUT_POST, 'pass');

if (isset($pseudo,$pass)) 
{   
    $pseudo = trim($pseudo) != '' ? $pseudo : null;
    $pass = trim($pass) != '' ? $pass : null;
	
        if(isset($pass) && isset($pseudo))
    {
                $hostname = "localhost";
                $database = "test";
                $username = "root";
                $password = "";
                
                $pdo_options[PDO::ATTR_EMULATE_PREPARES] = false;
                $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
                $pdo_options[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES utf8";

                try
                {
                        $connect = new PDO('mysql:host='.$hostname.';dbname='.$database, $username, $password, $pdo_options);
                }
                catch (PDOException $e)
                {
                        exit('problème de connexion à la base');
                }
                                
                $requete = "SELECT count(*) FROM membres WHERE pseudo = :pseudo";
                try
                {
                        $req_prep = $connect->prepare($requete);
                        $req_prep->execute(array('pseudo'=> $pseudo));
                        $resultat = $req_prep->fetchcolumn();
                        
                        if (!$resultat) 
                      
                        {
                                $insertion = "INSERT INTO membres(pseudo,pass,date_enregistrement) VALUES(:nom, :password, NOW())";
                                $insert_prep = $connect->prepare($insertion);
                                $inser_exec = $insert_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
								
								
                                if (!$inser_exec)
                                {
                                        if (!session_id())
										{
											session_start();
											$_SESSION['login'] = $pseudo;
											$insert_prep = $connect->prepare($insertion);
											$inser_exec = $insert_prep->execute(array(':nom'=>$pseudo,':password'=>$pass));
											$message = 'Votre inscription est enregistrée.';
										}
                                }   
                        }
                        else
                        {  
                                $message = 'Ce pseudo est déjà utilisé, changez-le.';
								echo $resultat;
                        }
                }
                catch (PDOException $e)
                {
                        $message = 'Problème dans la requête d\'insertion';
                }       
        }
        else 
        {  
                $message = 'Les champs Pseudo et Mot de passe doivent être remplis.';
        }
}
?>