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

Langage PHP Discussion :

Formulaire avec checkbox


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut Formulaire avec checkbox
    voila j'ai un formulaire comprenant des checkbox et j'aimerais récupérer toutes les valeur du formulaire y compris TOUS les choix pris dans les checkbox

    et j'ai aussi un autre soucis c est que cela me renvoie tjr sur le "else : problème"

    j'aimerais donc trouver une solution ^^"

    j'ai déjà coder un truc mais je ne suis pas sur que cela soit la manière la plus simple ^^" si quelqu un peut 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
    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
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
     
    <!-- debut du menu -->
     
    <?php
    include('menu.php');
    ?>
    <!-- fin du menu -->
     
    <!-- debut du menu -->
     
    <!-- Déclaration du type de document -->
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>Inscription_user</title>
    		<link rel="stylesheet" type="text/css" href="../../CSS/style_base.css" />
     
    	</head>
    	<body>
    		<div id="fond">
     
     
     
    			<div id="contenu">
    				<table>
     
    					<!-- debut du contenu de la partie sombre -->
    					<?php
    						if (!empty($_POST['nom']) && !empty($_POST['prenom'])&& !empty($_POST['adresse']) && !empty($_POST['bday']) && !empty($_POST['mail']) && !empty($_POST['mot_de_passe']) && !empty($_POST['liste']) && !empty($_POST['sexe'])&& !empty($_POST['os[]'])&& !empty($_POST['genre[]'])) 
    						{
    							// on entre le code pour ecrire les tableaux
     
    							include('experience.php');
    							$nom= $_POST['nom'];
    							$prenom= $_POST['prenom'];
    							$adresse= $_POST['adresse'];
    							$bday= $_POST['bday'];
    							$mail= $_POST['mail'];
    							$mail2= $_POST['mail2'];
    							$mot_de_passe=	$_POST['mot_de_passe'];
    							$mot_de_passe2=	$_POST['mot_de_passe2'];
    							$liste=$_POST['liste'] ;
    							$sexe=$_POST['sexe'];
    							$os=$_POST['os[]'];
     
     
    								for ($i=0;$i<sizeof($os);$i++)
    									{
    										if (isset($os[$i])) 
    											{
     
     
    											// Enregistre le tableau $array dans le fichier os.txt
    												tabtofile($os, "os.txt");
     
    											}
    									}
    									// Récupere le tableau dans le fichier
    								$tableau = filetotab("os.txt");
     
    							$genre=	$_POST['genre[]'];
     
    								for ($i=0;$i<sizeof($genre);$i++)
    									{
    										if (isset($genre[$i])) 
    											{
     
    											// Enregistre le tableau $array dans le fichier genre.txt
    												tabtofile($genre, "genre.txt");
     
    											}
    									}
    																	// Récupere le tableau dans le fichier
    								$tableau2 = filetotab("genre.txt");
     
    								file_put_contents("../../TXT/user.txt", $nom .'|'. $prenon .'|'. $adresse .'|'. $bday .'|'. $mail .'|'. $mot_de_passe .'|'. $liste .'|'. $sexe .'|'. $tableau .'|'. $tableau2 . "\r\n" ,FILE_APPEND);
    								echo '		<TABLE BORDER="0" width= 80% align="center">
    
    								<tbody>
    									<tr align="center" width="1300">
    										<td colspan="2" >
    										<div id="inscription_validation">
    										Votre inscription est validée !</div></br>
    										<input type="button" name="Accueil" value="Accueil" onClick="javascript:document.location.href=\'acceuil.php\'"/>
    										</td>
    									</tr>';
    						}
    						else
    						{
    							echo '		
    								<TABLE BORDER="0" width= 80% align="center">
    
    									<tbody>
    										<tr align="center" width="1300">
    											<td colspan="2" >
    
    												<div>
    													Problème</br>
    												</div>
    												<input type="button" name="Accueil" value="Accueil" onClick="javascript:document.location.href=\'acceuil.php\'"/>
    											</td>
    										</tr>
    								';
    						}
     
    					?>
    				</table>
    				<!-- fin du contenu de la partie sombre -->
     
    			</div>
    		</div>
     
     
     
    	</body>
    </html>
    <!-- debut du footer -->
     
    <?php
    include('footer.php');
    ?>
     
    <!-- fin du footer -->
    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
     
     
    <?php
     
    function tabtostring($tab)
    {
        if (!is_array($tab)) return false;
        $string = "array";
        foreach($tab as $key => $content)
        {
            if(is_array($tab[$key]) && gettype($key)!="object" && gettype($key)!=
    "resource" && gettype($key)!= "unknown")
            {
                $string.="\n".gettype($key)."\n".base64_encode($key)."\n".
    tabtostring($content);    // Récursivité
            }
            else
            {
                if(gettype($key)!="object" && gettype($key)!="resource" && gettype(
    $key)!= "unknown" && gettype($content)!="object" && gettype($content)!=
    "resource" && gettype($content)!= "unknown")
                {
                    $string.="\n".gettype($key)."\n".base64_encode($key)."\n".
    gettype($content)."\n".base64_encode($content);
                }
            }    
        }
        $string.="\nendarray";
        return $string;
    }
     
    function stringtabtotab($stringtab, $begin)
    {
        if (!is_array($stringtab)) return false;
        $i=$begin;
        while($i<(count($stringtab)-1))
        {
            if(@$stringtab[$i+2]=="array")
            {
                $cle = base64_decode($stringtab[$i+1]);
                settype($cle, $stringtab[$i]);
                $tab[$cle]=stringtabtotab($stringtab, $i+3);
                while($stringtab[$i]!="endarray"){ $i++; }
                $i++;
            }
            elseif($stringtab[$i]=="endarray")
            {
                return $tab;
            }
            else
            {
                $cle = base64_decode($stringtab[$i+1]);
                $valeur = base64_decode($stringtab[$i+3]);
                settype($cle, $stringtab[$i]);
                settype($valeur, $stringtab[$i+2]);
                $tab[$cle]=$valeur;
                $i+=4;
            }
        }
        return $tab;
    }
     
    function tabtofile($tab, $filename)
    {
        $donnees = tabtostring($tab);
        if(($fp=fopen($filename, 'w')) && $donnees)
        {
            fwrite($fp, $donnees);
            fclose($fp);
            return true;
        }
        else
        {
            return false;
        }
    }
     
    function filetotab($filename)
    {
        if(!file_exists($filename)) return false;
        $donnees = file($filename);
        foreach($donnees as &$content) $content=trim($content);
        return stringtabtotab($donnees, 1);    
    }
     
     
    ?>

  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
    Si tes checkbox s'appellent name="os[]" tu récupère un tableau $_POST['os'] pas $_POST['os[]'].

    Seules sont renvoyées les valeurs des cases cochées.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    merci , cela a régler le soucis du renvoie vers le 'else: problème'
    par contre le soucis de la chekbox n'est pas résolue :/

    au lieu d obtenir un fichier .txt de ce style

    nom|prenoms|adresse|mots_de_passe|date_de_naissance|os[os1;os2;os3;...]|categorie[categorie1;categorie2....]

    j'obtient un fichier texte de ce style

    lol|lol|lol|2016-04-05|lol@lol.fr|lol|chomeur|homme|Array|Array

    et quand j 'envoie mon formulaire cela m'ecrit cette erreur

    Nom : erreur.jpg
Affichages : 132
Taille : 68,5 Ko

    (le but étant ensuite de voir les cases ayant étaient cocher pour ensuite 'dispatcher' les jeux sur plusieurs page correspondant chacune a une case )
    si tu veux voir a quoi resemble mon formulaire ^^
    Nom : formulaire.jpg
Affichages : 138
Taille : 91,5 Ko

  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
    Il faut que tu debugues : est-ce que $_POST['os'] est conforme à ce que tu attends, est-ce que la fonction tabtostring() donne le résultat attendu avec les données de $_POST['os'] etc.

    Honnetement ce code est une telle usine à gaz que cela ne donne pas envie de le démonter.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    hahahaha ^^ pour cela que je demander aussi si quelqu un connaissait une méthode plus fluide ^^"
    car c est vrai que c est un monstre ce code mdr
    mon soucis etant que je n'est le droit d utiliser que php , javascrype css html et comme 'base de données' des fichier.txt

  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
    mon soucis etant que je n'est le droit d utiliser que php
    Ca tombe bien c'est ton PHP qui est moche. Je suppose que c'est une fonction que tu as recopié ? Tu n'as en tout cas pas besoin de cette artillerie.

    Un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = implode('|', $_POST['os']);
    ferra l'affaire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce n'est pas parce que tu dois coder en PHP que tu es obligé de tout réinventer

    Si tu dois travailler avec des fichiers pour stocker les informations, tu peux utiliser les fonctions natives pour la lecture/écriture : fgetcsv et fputcsv, qui ont l'avantage de gérer toutes seules le découpage sur les séparateurs.

    Pour transformer un tableau de chaines en chaine concaténée, il y a la fonction implode (et son inverse explode)

    Il faut aussi savoir ce que font tes fonctions, parce que honnêtement, ta fonction tabtostring me donne mal à la tête. Tu essayes d'avoir quoi en sortie exactement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    Mon formulaire me servira à ajouter des jeux-vidéos sur un site de vente (qui ne sera jamais publié, c'est pour un devoir de fac).
    Je veux donc qu'a partir des choix mis dans la checkbox, les nouveaux jeux s'affiches uniquement sur les pages correspondantes.
    Par exemple un jeux où l'on auras sélectionné PS4 et xbox ONE devra apparaître sur la page PS4.php et xbox-ONE.php.
    Mais pour faire cela je doit avant tous réussir à récupérer tous les choix sélectionnés :/

  9. #9
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ca tombe bien c'est ton PHP qui est moche. Je suppose que c'est une fonction que tu as recopié ? Tu n'as en tout cas pas besoin de cette artillerie.

    Un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = implode('|', $_POST['os']);
    ferra l'affaire.
    en effet c'est déjà mieux en effet
    Mais un soucis demeure

    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
    <!-- debut du menu -->
     
    <?php
    include('menu.php');
    ?>
    <!-- fin du menu -->
     
    <!-- debut du menu -->
     
    <!-- Déclaration du type de document -->
    <!DOCTYPE HTML>
    <html>
    	<head>
    		<title>Inscription_user</title>
    		<link rel="stylesheet" type="text/css" href="../../CSS/style_base.css" />
     
    	</head>
    	<body>
    		<div id="fond">
     
     
     
    			<div id="contenu">
    				<table>
     
    					<!-- debut du contenu de la partie sombre -->
    					<?php
    						if (!empty($_POST['nom']) && !empty($_POST['prenom'])&& !empty($_POST['adresse']) && !empty($_POST['bday']) && !empty($_POST['mail']) && !empty($_POST['mot_de_passe']) && !empty($_POST['liste']) && !empty($_POST['sexe'])&& !empty($_POST['os'])&& !empty($_POST['genre'])) 
    						{
     
    							$nom= $_POST['nom'];
    							$prenom= $_POST['prenom'];
    							$adresse= $_POST['adresse'];
    							$bday= $_POST['bday'];
    							$mail= $_POST['mail'];
    							$mail2= $_POST['mail2'];
    							$mot_de_passe=	$_POST['mot_de_passe'];
    							$mot_de_passe2=	$_POST['mot_de_passe2'];
    							$liste=$_POST['liste'] ;
    							$sexe=$_POST['sexe'];
    							$os= implode('|', $_POST['os']);
    							$genre= implode('|', $_POST['genre']);
    								file_put_contents("../../TXT/user.txt", $nom .'|'. $prenom .'|'. $adresse .'|'. $bday .'|'. $mail .'|'. $mot_de_passe .'|'. $liste .'|'. $sexe .'|'. $os .'|'. $genre . "\r\n" ,FILE_APPEND);
    								echo '		<TABLE BORDER="0" width= 80% align="center">
    
    								<tbody>
    									<tr align="center" width="1300">
    										<td colspan="2" >
    										<div id="inscription_validation">
    										Votre inscription est validée !</div></br>
    										<input type="button" name="Accueil" value="Accueil" onClick="javascript:document.location.href=\'acceuil.php\'"/>
    										</td>
    									</tr>';
    						}
    						else
    						{
    							echo '		
    								<TABLE BORDER="0" width= 80% align="center">
    
    									<tbody>
    										<tr align="center" width="1300">
    											<td colspan="2" >
    
    												<div>
    													Problème</br>
    												</div>
    												<input type="button" name="Accueil" value="Accueil" onClick="javascript:document.location.href=\'acceuil.php\'"/>
    											</td>
    										</tr>
    								';
    						}
     
    					?>
    				</table>
    				<!-- fin du contenu de la partie sombre -->
     
    			</div>
    		</div>
     
     
     
    	</body>
    </html>
    <!-- debut du footer -->
     
    <?php
    include('footer.php');
    ?>
     
    <!-- fin du footer -->
    je récupère les valeurs de $os mais pas celle de $genre

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    vu qu'on ne voit pas le code de ton formulaire, je suppose que tu as bien des champs name="genre[]" et au moins un de ces champs renseignés/cochés ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    =.=" j avais oublier de mettre les value mdr

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    pensez vous qu'il soit possible, de mettre une condition du style

    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
     
    for ($i=0;$i<sizeof($os);$i++)
    	{
    	       if (isset($os[$i])) 
    		    {
                           if($os[$i]==ps4)
                              {
                                      file_put_contents("../../TXT/ps4.txt", $nom .'|'. $prenom .'|'. $adresse .'|'. $bday .'|'. $mail .'|'. $mot_de_passe .'|'. $liste .'|'. $sexe .'|'. "\r\n" ,FILE_APPEND);
                                }
    	                else  if ($os[$i]==ps3)
                              {
                                       file_put_contents("../../TXT/ps3.txt", $nom .'|'. $prenom .'|'. $adresse .'|'. $bday .'|'. $mail .'|'. $mot_de_passe .'|'. $liste .'|'. $sexe .'|'. "\r\n" ,FILE_APPEND);
                               }
     
    		     }
            }

  13. #13
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $tblOS = array('ps4','ps3');
    foreach ($os as $value) {
         if(in_array($value, $tblOS))     {
                    file_put_contents("../../TXT/" . $value . ".txt", $nom .'|'. $prenom .'|'. $adresse .'|'. $bday .'|'. $mail .'|'. $mot_de_passe .'|'. $liste .'|'. $sexe .'|'. "\r\n" ,FILE_APPEND);
         }            
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    hummm ok ca a l air cool :p
    merci bcp a toi

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    une dernière question :p et j’arrête de te saouler :p
    j'ai vu sur le site un tuto pour télécharger des avatars a partir d'un formulaire

    http://antoine-herault.developpez.co...ls/php/upload/


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    $dossier = 'upload/'; je suppose que c'est le dossier vers lequel on stock temporairement l'image, mais dans ce cas ou est elle 'definitivement stocker ? 
    $fichier = basename($_FILES['avatar']['name']); a quoi correspond basename ? a une base de données ? donc par exemple si moi je voulais mettre un systeme d'avatar dans mon formulaire avec renvoye sur fichier texte je serais bloquer ? 
    
    $extension = strrchr($_FILES['avatar']['name'], '.'); strrchr ? kesako ? 
    
    
         if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier))elle signifie quoi concrètement cette ligne ?  
         {
    
         }
    
    ?>
    pourrais tu me l'expliquer ? car je ne suis pas sur de tout comprendre ^^" ( je n'est laisser que les ligne que je ne comprenaient pas )

    et quand je le teste j'ai cela
    Nom : Sans titre 2.jpg
Affichages : 122
Taille : 32,0 Ko

  16. #16
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    $dossier = 'upload/'; c'est le dossier où vont être stockées les images. Le principe est de conserver les images dans un dossier du serveur et pas dans une base de données (parce que stocker des images dans la base c'est lourd et casse-pied )
    basename($_FILES['avatar']['name']); basename récupère le dernier élément d'un chemin. Là en l’occurrence, on récupère le nom du fichier envoyé.
    $extension = strrchr($_FILES['avatar']['name'], '.'); strrchr récupère tout ce qu'il y a après le dernier '.' (donc l'extension du fichier)
    Et pour tes erreurs, il doit y avoir quelque part dans le code une chaine avatar sans quotes autour...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2016
    Messages : 216
    Par défaut
    ok merci ,
    Par contre, pour mon programme, il n'est pas possible de mettre une image dans le fichier texte, si ?
    pour qu'une fois que je récupère les donnés du fichier texte, je récupère également l'image associée
    désoler je suis pénible ^^" je début en web dynamique ^^" donc je cherche a comprendre , a savoir et a trouver

    Apres je sais l'afficher,

    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
    <thead>
    								<!-- debut de la pagination -->
    								<?php
    									include('../../paggination.php');
    								?>
    								<!-- fin de la pagination -->
     
    								<ol>
    									<center> Les jeux d'aventures </center>
     
    									<div id="genre" >
     
    										<?php
    											// Récupération des informations du fichier blocnote (fichier txt).
    											$data[] = array();                        // Tableau qui contiendra les données de façon structurée.
    											$fileHandle = fopen("../../../txt/Fichiers_produit.txt", "r+");   // Ouverture du fichier "blocnote.txt"
    											if ($fileHandle) {
    												while (($buffer = fgets($fileHandle, 4096)) !== false) {    // Lecture des lignes du fichier, une par une.
    													list($nom_du_jeu,  $date_sortie, $image, $nbr_joueur, $OS, $genre,  $prix, $quant_dispo) = explode(';', $buffer);     // Séparation des données de la ligne en cours en fonction du caractère "|".
    													$data[] = array('image'=>$image, 'nom_du_jeu' => $nom_du_jeu,'date_sortie' => $date_sortie, 'nbr de joueurs' => $nbr_joueur,'prix' => $prix, 'quant_dispo' =>$quant_dispo);  // Ajout d'un tableau dans notre tableau de données contenant le joueur et les prenom_du_jeu.
    												}
    												fclose($fileHandle);                    // fermeture du fichier
    											}
    											?>
     
     
    											<table width="100%">
    											<tbody><tr align="center">
    											<td valign="top"><table style="border-collapse: collapse;" border="1" bordercolor="#CCCCCC" cellpadding="0" cellspacing="0" width="100%">
    											<tbody><tr style="height: 16px" align="center"><td colspan="11" bgcolor="#ffcc99"><div align="center"><span class="font_pbr"></span></div></td></tr>
    											<tr style="height: 16px" align="center">
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>#</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>image</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>nom_du_jeu</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>date_sortie</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>nbr de joueurs</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>prix</b></font></td>
    												<td bgcolor="#cccccc"><font class="font_p" color="#5d8eb3"><b>quant dispo</b></font></td>
     
     
    											</tr>
    										<?php
     
     
    											 $nb_elements = count($data);
    											 $nb_lignes= $nb_elements;
     
    											for ($i = 1; $i <= $nb_lignes; $i ++) 
    											{  // On veut afficher 
    												$position = $i;         // Définition de la position à afficher
     
    												?>
    												<tr style="height: 16px" align="center" bgcolor="#dddddd">
    													<td><?php echo $position; ?></td>
    													<td><?php echo isset($data[$i]['image']) ? "<img src=\"".$data[$i]['image']."\">" : ''; ?></td>	
    													<td><?php echo isset($data[$i]['nom_du_jeu']) ? $data[$i]['nom_du_jeu'] : ''; ?></td>
    													<td><?php echo isset($data[$i]['date_sortie']) ? $data[$i]['date_sortie'] : ''; ?></td>
    												<!--  <td><?php echo isset($data[$i]['OS']) ? $data[$i]['OS'] : ''; ?></td>   -->	
    													<td><?php echo isset($data[$i]['nbr de joueurs']) ? $data[$i]['nbr de joueurs'] : ''; ?></td>
    												<!--      <td><?php echo isset($data[$i]['genre']) ? $data[$i]['genre'] : ''; ?></td>  -->	
    													<td><?php echo isset($data[$i]['prix']) ? $data[$i]['prix'] : ''; ?></td>
    													<td><?php echo isset($data[$i]['quant_dipo']) ? $data[$i]['quant_dipo'] : ''; ?></td>
     
    												</tr>
    											<?php
    											} // Fin de la boucle for
    											?>
    									</div>
    								</ol>
    						</thead>
    en partant d'un fichier texte du style:

    MdeS_game ; Janvier 3025 ; https://scontent.xx.fbcdn.net/hprofi...8438528_n.jpg? oh=c16a3c84417df84205baa7936c4b5f23&oe=5775733F ; 1001 ; '011100110' ; '110001100' ; 10000$ ; 1
    mais je ne sais pas trop comment enregistrer les données de l'image de cette façons

    je pensais a une chose de ce genre cela est il possible ?

    $photo= array('.$taille'.'.$extension.') avec les autre info de l'image, par contre je ne sais pas trop comment gérer l'adresse de l'image

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

Discussions similaires

  1. Problème d'envoi formulaire avec checkboxes
    Par neospirit dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2011, 11h14
  2. problème formulaire avec checkbox
    Par toinou62 dans le forum Langage
    Réponses: 1
    Dernier message: 30/09/2007, 14h07
  3. [MySQL] Modifier un formulaire avec checkbox
    Par isa150183 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/01/2007, 21h32
  4. Timeout sur POST formulaire avec checkbox
    Par shyangel dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 12h59
  5. Pb validation formulaire avec checkbox
    Par wolfe dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/12/2005, 08h50

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