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

PHP & Base de données Discussion :

Fonctionnement strlen non reconnu


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut Fonctionnement strlen non reconnu
    bonjour à tous !

    Voilà mon soucis c'est que je n'arrive pas a faire fonctionner strlen sur une variable $_POST , cette variable est le nom du dossier créer écrit dans un input, qui sera ajouter dans ma table, l'information stocké est de 22 caractères maximun et un dossier sera créer. En effet je veux vérifier le nombre de caractère de ma variable en PHP, Si la variable dépasse les 22 caractère un message et envoyer et le dossier n'est pas créer.

    Pour l'instant le dossier et créer même en dépassant le nombre de caractère et le message n'apparait pas.

    Merci beaucoup de prendre le temps de m'aider.


    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
     
    <?php
     
    if(isset($_POST['formCreateFolderSubmit']))
     
    {
    	$folder = $_POST['add_name_folder'];
     
    	if((isset($folder)) && (!empty($folder)))
    	{
    		if((strlen($folder)) > 22)
    		{ 
                         // Vérifier de la longeur du nom du dossier      
                         $message_add_folder = 'Le nom du dossier et trop long !';
                    } 
    .........

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 319
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 319
    Billets dans le blog
    17
    Par défaut
    Salut !

    Il faudrait voir toute la gestion de la création du répertoire, jusqu'au mkdir().



    Point annexe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	$folder = $_POST['add_name_folder'];
     
    	if((isset($folder)) && (!empty($folder)))
    Il faut faire le isset() directement sur $_POST et pas sur $folder, autrement tu auras un warning s'il n'existe pas
    empty() est un faux-ami, il retourne TRUE également si la chaîne est "0", ce qui n'est pas le comportement attendu je pense

  3. #3
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut envoie de l'ensemble du code
    Du coup j'ai déjà changer

    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
     
     
    <?php
     
    if(isset($_POST['formCreateFolderSubmit']))
     
    {
    	if((isset($_POST['add_name_folder'])) && (!empty($_POST['add_name_folder'])))
    	{
     
    		$folder = $_POST['add_name_folder'];
     
    		if((strlen($folder)) > 22)
    		{ // Vérifier de la longeur du nom du dossier       
                            $message_add_folder = 'Le nom du dossier et trop long !';
                     } 
     
                    // Connexion à la base de donnée 
     
    		$mysqli = new mysqli('localhost', 'root', '', 'rangement_images');
    		$mysqli->set_charset("utf8"); //encodage utf8
     
    		// Vérification de la connexion
     
    		if($mysqli->connect_errno)
     
    		{
     
    			printf("Echec de la connexion %s\n", $mysqli->connect_error);
    			exit();
    		}
     
    		 // On formate le nom du dossier
                     $special = array(' ', '\'', '(', '~', '&', '#', ',', '\'', '{', '(', '[', '|', '`', '\\', '^', '@', ')', ']', '°', '+', '=', '}', '$', '£', '¤', '%', '§', ':', ';', '?', ',', ';', '/', ':', '!', '*', 'µ', '<', '>',
                'À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ'); 
                      $normal = array('_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
     
                     $folder = str_replace($special, $normal, $folder); //remplacement des caractères en cas de caractères spécial
     
    		$result=$mysqli->query('SELECT name FROM folder WHERE name ="' . $folder . '"');
    		$row = $result->fetch_array();
     
    		if(!$row) // Si le dossier n'existe pas déjà dans la table folder
    		{
     
    			$mysqli->query('INSERT INTO folder (name) VALUES ( "' . $folder . '")');
     
    			mkdir(''.IMAGE_DIR_PATH . $folder . '');	// Création du dossier
     
    			$message_add_folder = 'le répertoire à été créer';
    		}
     
    		else
    		{
    			$message_add_folder = 'le répertoire existe déjà';
    		}
     
    	$mysqli->close();
     
    	}
    	else
    	{
    		$message_add_folder = 'Merci de remplir le champ';
    	}
     
    }

  4. #4
    Membre averti Avatar de XAVIERV
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 53
    Par défaut résolution du problème
    En effet j'ai simplement mis le reste dans un else et cela marche

    Voici mon code complet

    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
     
     
    <?php
     
    if(isset($_POST['formCreateFolderSubmit']))
     
    {
     
    	if((isset($_POST['add_name_folder'])) && (!empty($_POST['add_name_folder'])))
    	{
     
    		$folder = trim($_POST['add_name_folder']);
     
    		if((strlen((string)$folder)) > 22) // Vérifier de la longeur du nom du dossier
    		{     
                        $message_add_folder = 'Le nom du dossier et trop long !';
                    } 
     
                   else
                    {
     
    	        // Connexion à la base de donnée 
     
    			$mysqli = new mysqli('localhost', 'root', '', 'rangement_images');
    			$mysqli->set_charset("utf8"); //encodage utf8
     
    			// Vérification de la connexion
     
    			if($mysqli->connect_errno)
     
    			{
     
    				printf("Echec de la connexion %s\n", $mysqli->connect_error);
    				exit();
    			}
     
    			 // On formate le nom du dossier
    	        $special = array(' ', '\'', '(', '~', '&', '#', ',', '\'', '{', '(', '[', '|', '`', '\\', '^', '@', ')', ']', '°', '+', '=', '}', '$', '£', '¤', '%', '§', ':', ';', '?', ',', ';', '/', ':', '!', '*', 'µ', '<', '>',
    	            'À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ'); 
    	        $normal = array('_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', 'A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
     
    	                $folder = str_replace($special, $normal, $folder); //remplacement des caractères en cas de caractères spécial
     
    			$result=$mysqli->query('SELECT name FROM folder WHERE name ="' . $folder . '"');
    			$row = $result->fetch_array();
     
    			if(!$row) // Si le dossier n'existe pas déjà dans la table folder
    			{
     
    				$mysqli->query('INSERT INTO folder (name) VALUES ( "' . $folder . '")');
     
    				mkdir(''.IMAGE_DIR_PATH . $folder . '');	// Création du dossier
     
    				$message_add_folder = 'le répertoire à été créer';
    			}
     
    			else
    			{
    				$message_add_folder = 'le répertoire existe déjà';
    			}
     
     
    	                $mysqli->close();
     
    		}
     
    	}
     
    	else
    	{
    		$message_add_folder = 'Merci de remplir le champ';
    	}
     
    }
     
    ?>

    Merci beaucoup de la petit solution apporter a mon script bonne continuation, encore merci de l'aide apporter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème SendKeys non reconnue
    Par ali_tmg dans le forum Général VBA
    Réponses: 1
    Dernier message: 08/04/2014, 09h02
  2. Problème define non reconnu
    Par quidimi dans le forum Débuter
    Réponses: 2
    Dernier message: 22/05/2010, 19h58
  3. Problème sata non reconnu
    Par rorod dans le forum Windows XP
    Réponses: 5
    Dernier message: 19/11/2007, 18h46
  4. Problème de disque dur non reconnu sous WIN98
    Par kalash_jako dans le forum Composants
    Réponses: 5
    Dernier message: 12/05/2006, 14h28
  5. strlen et strcpy non reconnu avec string.h
    Par wolflinger dans le forum C++
    Réponses: 17
    Dernier message: 21/02/2006, 13h44

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