Espace m

Petit nouveau ! | 2 Messages

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.';
        }
}
?>

Mammouth du PHP | 688 Messages

31 janv. 2015, 03:19

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

Mammouth du PHP | 2278 Messages

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)
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Petit nouveau ! | 2 Messages

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

Mammouth du PHP | 2278 Messages

31 janv. 2015, 18:15

Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD