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 :

Upload d'image, Une pour profil les autres pour archive


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut Upload d'image, Une pour profil les autres pour archive
    Salut.
    Bon j'essai de modifier un fichier pour uploader des images.
    Une image sera pour la presentation du produit puis les autres images c'est pour voir ce que c'est. Le tous avec un bouton.
    Mais je bute sur le 2eme.
    J'arrive pas a modifier mon code de maniere a uploader les autres images.
    Une aide exterieur est bienvenue.

    J'ai user_image qui sert a presenter le produit. puis dans //2nd upload product_image pour uploader le reste.
    Le code arrive a uploader la premiere image de profil mais n'upload pas les autres.

    Autre chose, Si j'arrivai a uploader le reste des images je voulais qu'il mette l'id correspondant du produit d'ou le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt = $DB_con->prepare('INSERT INTO pics (id_catalogue, file_name) VALUES ((SELECT id FROM catalog WHERE id=LAST_INSERT_ID()), :ufile_name)');
    Est ce correct ?
    Merci de votre aide.

    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
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    <?php
     
    	error_reporting( ~E_NOTICE ); // avoid notice
     
    	require_once 'dbconfig.php';
     
    	if(isset($_POST['btnsave']))
    	{
    		$catalogname = $_POST['catalog_name'];// user name
    		$catalogmaker = $_POST['catalog_maker'];// user email
    		$catalogtypes = $_POST['catalog_types'];// user email
    		$catalogscale = $_POST['catalog_scale'];// user email
    		$catalogedition = $_POST['catalog_edition'];// user email
     
    		$imgFile = $_FILES['user_image']['name'];
    		$tmp_dir = $_FILES['user_image']['tmp_name'];
    		$imgSize = $_FILES['user_image']['size'];
     
     
    		//2nd upload
    		for ($i=0; $i < count ($_FILES['product_image']['name']); $i++)
    		{
    		$imgFile_Product = $_FILES['product_image']['name'][$i];
    		$tmp_dir_Product = $_FILES['product_image']['tmp_name'][$i];
    		$imgSize_Product = $_FILES['product_image']['size'][$i];
    		}
    		//2nd upload
    		if(empty($catalogname))
    		{
    			$errMSG = "Please Enter Username.";
    		}
    		        else if(empty($catalogmaker)){
    			$errMSG = "Please Enter a Maker.";
    		}
    				else if(empty($catalogtypes)){
    			$errMSG = "Please Enter a Types.";
    		}
    				else if(empty($catalogscale)){
    			$errMSG = "Please Enter a Scale.";
    		}
    				else if(empty($catalogedition)){
    			$errMSG = "Please Enter a Edition.";
    		}
    		        else if(empty($imgFile)){
    			$errMSG = "Please Select Image File.";
    		}
    		        else if(empty($imgFile_Product)){
    			$errMSG = "Please Select Image File(s) Product.";
    		}
    		else
    		{
    			$upload_dir = 'user_images/'; // upload directory
    			$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
    			// valid image extensions
    			$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
    			// rename uploading image
    			$userpic = rand(1000,1000000).".".$imgExt;
    			// allow valid image file formats
    			if(in_array($imgExt, $valid_extensions))
    			{			
    				// Check file size '5MB'
    				if($imgSize < 5000000)				{
    					move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    				}
    				else{
    					$errMSG = "Sorry, your file is too large.";
    				}
    			}
    			else{
    				$errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";		
    			}
    		}
     
     
     
     
    		// if no error occured, continue ....
    		if(!isset($errMSG))
    		{
    			$stmt = $DB_con->prepare('INSERT INTO catalog(name,maker,types,scale,edition,pic) VALUES(:uname, :umaker, :utypes, :uscale, :uedition, :upic)');
    			$stmt->bindParam(':uname',$catalogname);
    			$stmt->bindParam(':umaker',$catalogmaker);
    			$stmt->bindParam(':utypes',$catalogtypes);
    			$stmt->bindParam(':uscale',$catalogscale);
    			$stmt->bindParam(':uedition',$catalogedition);
    			$stmt->bindParam(':upic',$userpic);
     
     
    		    //2nd upload
                //$stmt = $DB_con->prepare('INSERT INTO pics (id_catalogue, file_name) VALUES ((SELECT id FROM catalog WHERE id=LAST_INSERT_ID()), :ufile_name)');
                //$stmt->bindParam(':ufile_name',$productpic);
    		    //2nd upload
     
    			if($stmt->execute())
     
    			{
    				$successMSG = "new record succesfully inserted ...";
    				header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    				//$last_id = $DB_con->lastInsertId();
                    //echo "New record created successfully. Last inserted ID is: " . $last_id;
    			}
    			else
    			{
    				$errMSG = "error while inserting....";
    			}
    		}
    	}
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
     
    <!-- Optional theme -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
     
    </head>
    <body>
     
     
     
    <div class="container">
    	<div class="page-header">
        	<h1 class="h2">add new user. <a class="btn btn-default" href="index.php"> <span class="glyphicon glyphicon-eye-open"></span> &nbsp; view all </a></h1>
        </div>
    	<?php
    	if(isset($errMSG)){
    			?>
                <div class="alert alert-danger">
                	<span class="glyphicon glyphicon-info-sign"></span> <strong><?php echo $errMSG; ?></strong>
                </div>
                <?php
    	}
    	else if(isset($successMSG)){
    		?>
            <div class="alert alert-success">
                  <strong><span class="glyphicon glyphicon-info-sign"></span> <?php echo $successMSG; ?></strong>
            </div>
            <?php
    	}
    	?>   
     
    <form method="post" enctype="multipart/form-data" class="form-horizontal">
     
    	<table class="table table-bordered table-responsive">
     
        <tr>
        	<td><label class="control-label">Product Name.</label></td>
            <td><input class="form-control" type="text" name="catalog_name" placeholder="Enter Product Name" value="<?php echo $catalogname; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Maker.</label></td>
            <td><input class="form-control" type="text" name="catalog_maker" placeholder="Maker of the Product" value="<?php echo $catalogmaker; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Types.</label></td>
            <td><input class="form-control" type="text" name="catalog_types" placeholder="Types of the Product" value="<?php echo $catalogtypes; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Scale.</label></td>
            <td><input class="form-control" type="text" name="catalog_scale" placeholder="Scale of the Product" value="<?php echo $catalogscale; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Edition.</label></td>
            <td><input class="form-control" type="text" name="catalog_edition" placeholder="Edition of the Product" value="<?php echo $catalogedition; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Profile Img.</label></td>
            <td><input class="input-group" type="file" name="user_image" accept="image/*" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Upload Pics.</label></td>
            <td><input class="input-group" type="file" name="product_image" multiple accept="image/*" /></td>
        </tr>
     
        <tr>
            <td colspan="2"><button type="submit" name="btnsave" class="btn btn-default">
            <span class="glyphicon glyphicon-save"></span> &nbsp; save
            </button>
            </td>
        </tr>
     
        </table>
     
    </form>
     
     
    </div>
     
     
     
     
     
     
    <!-- Latest compiled and minified JavaScript -->
    <script src="bootstrap/js/bootstrap.min.js"></script>
     
     
    </body>
    </html>

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    L'upload de fichiers c'est un chantier, entre les erreurs de script et les erreurs dépendant du dépassement des paramètres serveurs...

    Tu peux utiliser ce module d'upload. Il possède de très nombreuses fonctionnalités et est prévu pour répondre à quasiment tous les besoins tout en surpassant les principales limitations serveur. Son avantage est aussi de proposer une quinzaine d'exemples prêt à l'emploi, directement fonctionnels avec php côté serveur. Suffit de dézipper le dossier puis de le placer sur ton serveur pour faire les premiers tests.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Ok, cool merci pour ce tuyau. Je vais tester cel de suite.......

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Bon sans quelques difficultés j'ai réussi sauf que maintenant je rencontre un autre problème. Ceci est du surement dû avec les if, else et else if.

    Je m'explique, j'ai bien mes deux bouton pour sélectionner mes images.
    Un pour le profile (une seul image à choisir) et l'autre pour pour les images (plusieurs fichiers à la fois).

    Quand je renseigne le formulaire et pour éviter les erreurs, je veux que si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    else if(empty($imgFile)){
    		    $errMSG = "Please Select Image File.";
    	    }
    	    else if(empty($imgFileProduct)){
    	        $errMSG = "Please Select Image File(s).";
    	    }
    		else {
    	    {
    ou bien l'un ou l'autre n'est pas vide il ne fasse rien(pas d'upload).

    Mon problème au moment de tester est que si "$imgFile" a une image sélectionné et "$imgFileProduct" est vide -> il upload "$imgFile" (et je veux pas ça, car y'a rien dans "$imgFileProduct")
    - si "$imgFile" une image est vide et "$imgFileProduct" est rempli, il upload m'affiche "Select Image File." -> ce qui est correct puisqu'il y a rien dans "$imgFile".
    - si "$imgFile" une image est rempli et "$imgFileProduct" est rempli -> il upload, comme je souhaite.

    Bref, cela doit faire deux jours que je fais motif sur motif et rien. Une aide serai bienvenue.
    Je laisse mon code si quelqu'un vois l'erreur car moi je nage.........

    Merci.

    le php
    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
    124
    125
    126
    127
     
    <?php
    	error_reporting( ~E_NOTICE );
    	require_once 'dbconfig.php';
    	if(isset($_POST['btnsave']))
    	{
        $catalogname = $_POST['catalog_name'];
        $catalogmaker = $_POST['catalog_maker'];
        $catalogtypes = $_POST['catalog_types'];
        $catalogscale = $_POST['catalog_scale'];
        $catalogedition = $_POST['catalog_edition'];
        $imgFile = $_FILES['profile_image']['name'];
        $tmp_dir = $_FILES['profile_image']['tmp_name'];
        $imgSize = $_FILES['profile_image']['size'];
        $imgFileProduct = $_FILES['product_image']['name'];
        $imgSizeProduct = $_FILES['product_image']['tmp_name'];
        $tmp_dirProduct = $_FILES['product_image']['size'];
    	if(empty($catalogname)){
    	    $errMSG = "Please Enter Product Name.";
    		}
    		else if(empty($catalogmaker)){
    		    $errMSG = "Please Enter a Maker.";
    		}
    		else if(empty($catalogtypes)){
    		    $errMSG = "Please Enter a Types.";
    		}
    		else if(empty($catalogscale)){
    		    $errMSG = "Please Enter a Scale.";
    		}
    		else if(empty($catalogedition)){
    		    $errMSG = "Please Enter a Edition.";
            }
    		else if(empty($imgFile)){
    		    $errMSG = "Please Select Image File.";
    	    }
    	    else if(empty($imgFileProduct)){
    	        $errMSG = "Please Select Image File(s).";
    	    }
    		else {
    	    {
    	        $upload_dir = 'product_images/'; // upload directory
    	        $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION));
    	        $valid_extensions = array('jpeg', 'jpg', 'png', 'gif');
    	        $userpic= rand(1000,1000000).".".$imgExt;
    	        if(in_array($imgExt, $valid_extensions)){
    	            if($imgSize < 5000000){
    	                move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    	            }
    	            else{
    	                $errMSG = "Sorry, your file is too large.";
     
    	            }
     
    	        }
    	        else{
    	            $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed3.";
     
    	        }
     
    	    }
    	    if(!isset($errMSG)){
    	        $stmt = $DB_con->prepare('INSERT INTO id_catalog(name,maker,types,scale,edition,pic) VALUES(:uname, :umaker, :utypes, :uscale, :uedition, :upic)');
    	        $stmt->bindParam(':uname',$catalogname);
    	        $stmt->bindParam(':umaker',$catalogmaker);
    	        $stmt->bindParam(':utypes',$catalogtypes);
    	        $stmt->bindParam(':uscale',$catalogscale);
    	        $stmt->bindParam(':uedition',$catalogedition);
    	        $stmt->bindParam(':upic',$userpic);
    	        if($stmt->execute()){
    	            $successMSG = "new record succesfully inserted ...";
    	            header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    	            $last_id = $DB_con->lastInsertId();
    	            echo "New record created successfully. Last inserted ID is: " . $last_id;
     
    	        }
    	        else{
    	            $errMSG = "error while inserting....";
     
    	        }
     
    	    }
    	    foreach($_FILES['product_image']['tmp_name'] as $key => $tmp_dirProduct ){
    	        $imgFileProduct = $key.$_FILES['product_image']['name'][$key];
    	        $imgSizeProduct =$_FILES['product_image']['size'][$key];
    	        $tmp_dirProduct =$_FILES['product_image']['tmp_name'][$key];
    	        $upload_dirProduct = 'product_images/';
    	        $imgExtProduct = strtolower(pathinfo($imgFileProduct,PATHINFO_EXTENSION));
    	        $valid_extensionsProduct = array('jpeg', 'jpg', 'png', 'gif');
    	        $productpic= rand(1000,1000000).".".$imgExtProduct;
    	        if(in_array($imgExtProduct, $valid_extensionsProduct)){
    	            if($imgSizeProduct < 5000000){
    	                move_uploaded_file($tmp_dirProduct,$upload_dirProduct.$productpic);
     
    	            }
    	            else{
    	                $errMSG = "Sorry, your file is too large.";
     
    	            }
     
    	        }
    	        else{
    	            $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed2.";	
     
    	        }
    	        if(!isset($errMSG)){
    	            $stmt1 = $DB_con->prepare('INSERT INTO id_images(name_pic) VALUES(:uproductpic)');
    	            $stmt1->bindParam(':uproductpic',$productpic);
    	            if($stmt1->execute()){
    	                $successMSG = "new record succesfully inserted ...";
    	                header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    	                $last_id = $DB_con->lastInsertId();
    	                echo "New record created successfully. Last inserted ID is: " . $last_id;
     
    	            }
    	            else{
    	                $errMSG = "error while inserting....";
     
    	            }
     
    	        }
     
    	    }
     
    		}
     
    	}
    ?>
    le html

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Upload, Insert, Update, Delete an Image using PHP MySQL - Coding Cage</title>
     
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
     
    <!-- Optional theme -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap-theme.min.css">
     
    </head>
    <body>
     
    <div class="navbar navbar-default navbar-static-top" role="navigation">
        <div class="container">
     
            <div class="navbar-header">
                <a class="navbar-brand" href="http://www.codingcage.com" title='Programming Blog'>Coding Cage</a>
                <a class="navbar-brand" href="http://www.codingcage.com/search/label/CRUD">CRUD</a>
                <a class="navbar-brand" href="http://www.codingcage.com/search/label/PDO">PDO</a>
                <a class="navbar-brand" href="http://www.codingcage.com/search/label/jQuery">jQuery</a>
            </div>
     
        </div>
    </div>
     
    <div class="container">
    	<div class="page-header">
        	<h1 class="h2">add new user. <a class="btn btn-default" href="index.php"> <span class="glyphicon glyphicon-eye-open"></span> &nbsp; view all </a></h1>
        </div>
    	<?php
    	if(isset($errMSG)){
    			?>
                <div class="alert alert-danger">
                	<span class="glyphicon glyphicon-info-sign"></span> <strong><?php echo $errMSG; ?></strong>
                </div>
                <?php
    	}
    	else if(isset($successMSG)){
    		?>
            <div class="alert alert-success">
                  <strong><span class="glyphicon glyphicon-info-sign"></span> <?php echo $successMSG; ?></strong>
            </div>
            <?php
    	}
     
    	?>   
     
    <form method="post" enctype="multipart/form-data" class="form-horizontal">
     
    	<table class="table table-bordered table-responsive">
     
        <tr>
        	<td><label class="control-label">Product Name.</label></td>
            <td><input class="form-control" type="text" name="catalog_name" placeholder="Enter Product Name" value="<?php echo $catalogname; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Maker.</label></td>
            <td><input class="form-control" type="text" name="catalog_maker" placeholder="Maker of the Product" value="<?php echo $catalogmaker; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Types.</label></td>
            <td><input class="form-control" type="text" name="catalog_types" placeholder="Types of the Product" value="<?php echo $catalogtypes; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Scale.</label></td>
            <td><input class="form-control" type="text" name="catalog_scale" placeholder="Scale of the Product" value="<?php echo $catalogscale; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Edition.</label></td>
            <td><input class="form-control" type="text" name="catalog_edition" placeholder="Edition of the Product" value="<?php echo $catalogedition; ?>" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Profile Img.</label></td>
            <td><input class="input-group" type="file" name="profile_image" accept="image/*" /></td>
        </tr>
     
        <tr>
        	<td><label class="control-label">Upload Pics.</label></td>
            <td><input class="input-group" type="file" name="product_image[]" multiple accept="image/*" /></td>
        </tr>
     
     
     
     
     
        <tr>
            <td colspan="2"><button type="submit" name="btnsave" class="btn btn-default">
            <span class="glyphicon glyphicon-save"></span> &nbsp; save
            </button>
            </td>
        </tr>
     
        </table>
     
    </form>
     
     
     
    <div class="alert alert-info">
        <strong>tutorial link !</strong> <a href="http://www.codingcage.com/2016/02/upload-insert-update-delete-image-using.html">Coding Cage</a>!
    </div>
     
     
    </div>
     
     
     
     
     
     
    <!-- Latest compiled and minified JavaScript -->
    <script src="bootstrap/js/bootstrap.min.js"></script>
     
     
    </body>
    </html>

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Salut,

    1/ Pourquoi fais-tu des "else if" pour enregistrer tes messages d'erreur ? Utilises un tableau pour tout enregistrer sinon le visiteur n'aura les messages d'erreur qu'un par un et c'est très pénible. Autant retourner toutes les erreurs. Aussi on utilise souvent l'opérateur ternaire pour une meilleure lisibilité pour des tests simples. Par exemple :

    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
    //...
    $errMSG = [];
     
    trim($catalogmaker) == '' ? $errMSG[] = "Please Enter a Maker." : '';
     
    trim($catalogtypes) == '' ? $errMSG[] = "Please Enter a Types." : ''; 
     
    trim(($catalogscale) == '' ? $errMSG[] = "Please Enter a Scale." : ''; 
     
    //...
     
    if(count($errMSG) == 0)
    {
    // pas d'erreurs on peut poursuivre
    }
    else
    {
    // on affiche les erreurs
    }
    Tu devrais y voir plus clair avec ce genre de structure. J'ai utilisé trim plutôt que empty pour éviter que le champ puisse être validé simplement avec un espace vide.

    2/ N'utilise pas rand pour définir un nom de fichier car forcément un jour tu auras un doublon et le nouveau fichier va écraser l'ancien. Utilise plutôt uniqid.

    3/ Attention, si le total du formulaire dépasse la valeur post_max_size du serveur les variables $_POST et $_FILES seront vides et tel quel ton code renverra une page blanche sans message d'erreur.

    4/ Il faut faire les vérifications également en javascript avant l'envoi du formulaire sinon le visiteur ne voit les erreurs qu'après avoir valider le formulaire et doit re sélectionner ses images en cas de problème.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    323
    Détails du profil
    Informations personnelles :
    Localisation : Espagne

    Informations forums :
    Inscription : Juillet 2003
    Messages : 323
    Points : 112
    Points
    112
    Par défaut
    Merci d'avoir répondu.......

    Merci pour l'astuce de unique. Cela est bien meilleur que rand....

    Par contre pour trim, je pense avoir compris mais je ne sais pas pourquoi j'ai une erreur "Array".
    Quelque soit ce que j'oublie de renseigner dans le formulaire. Donc je sais pas si c'est bien comme cela que devrai être mon code.
    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
    	error_reporting( ~E_NOTICE );
    	require_once 'dbconfig.php';
    	if(isset($_POST['btnsave']))
    	{
        $catalogname = $_POST['catalog_name'];
        $catalogmaker = $_POST['catalog_maker'];
        $catalogtypes = $_POST['catalog_types'];
        $catalogscale = $_POST['catalog_scale'];
        $catalogedition = $_POST['catalog_edition'];
        $imgFile = $_FILES['profile_image']['name'];
        $tmp_dir = $_FILES['profile_image']['tmp_name'];
        $imgSize = $_FILES['profile_image']['size'];
        $imgFileProduct = $_FILES['product_image']['name'];
        $imgSizeProduct = $_FILES['product_image']['tmp_name'];
        $tmp_dirProduct = $_FILES['product_image']['size'];
     
     
        $errMSG = [];
        trim($catalogmaker) == '' ? $errMSG[] = "Please Enter a Maker." : '';
        trim($catalogtypes) == '' ? $errMSG[] = "Please Enter a Types." : ''; 
        trim($catalogscale) == '' ? $errMSG[] = "Please Enter a Scale." : ''; 
     
    		if(count($errMSG) == 0){
    	    {
    	        $upload_dir = 'product_images/'; // upload directory
    	        $imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION));
    	        $valid_extensions = array('jpeg', 'jpg', 'png', 'gif');
    	        $userpic= uniqid(1000,1000000).".".$imgExt;
    	        if(in_array($imgExt, $valid_extensions)){
    	            if($imgSize < 5000000){
    	                move_uploaded_file($tmp_dir,$upload_dir.$userpic);
    	            }
    	            else{
    	                $errMSG = "Sorry, your file is too large.";
     
    	            }
     
    	        }
    	        else{
    	            $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed3.";
     
    	        }
     
    	    }
    	    if(count($errMSG) == 0){
    	        $stmt = $DB_con->prepare('INSERT INTO id_catalog(name,maker,types,scale,edition,pic) VALUES(:uname, :umaker, :utypes, :uscale, :uedition, :upic)');
    	        $stmt->bindParam(':uname',$catalogname);
    	        $stmt->bindParam(':umaker',$catalogmaker);
    	        $stmt->bindParam(':utypes',$catalogtypes);
    	        $stmt->bindParam(':uscale',$catalogscale);
    	        $stmt->bindParam(':uedition',$catalogedition);
    	        $stmt->bindParam(':upic',$userpic);
    	        if($stmt->execute()){
    	            $successMSG = "new record succesfully inserted ...";
    	            header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    	            $last_id = $DB_con->lastInsertId();
    	            echo "New record created successfully. Last inserted ID is: " . $last_id;
     
    	        }
    	        else{
    	            $errMSG = "error while inserting....";
     
    	        }
     
    	    }
    	    foreach($_FILES['product_image']['tmp_name'] as $key => $tmp_dirProduct ){
    	        $imgFileProduct = $key.$_FILES['product_image']['name'][$key];
    	        $imgSizeProduct =$_FILES['product_image']['size'][$key];
    	        $tmp_dirProduct =$_FILES['product_image']['tmp_name'][$key];
    	        $upload_dirProduct = 'product_images/';
    	        $imgExtProduct = strtolower(pathinfo($imgFileProduct,PATHINFO_EXTENSION));
    	        $valid_extensionsProduct = array('jpeg', 'jpg', 'png', 'gif');
    	        $productpic= uniqid(1000,1000000).".".$imgExtProduct;
    	        if(in_array($imgExtProduct, $valid_extensionsProduct)){
    	            if($imgSizeProduct < 5000000){
    	                move_uploaded_file($tmp_dirProduct,$upload_dirProduct.$productpic);
     
    	            }
    	            else{
    	                $errMSG = "Sorry, your file is too large.";
     
    	            }
     
    	        }
    	        else{
    	            $errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed2.";	
     
    	        }
    	        if(count($errMSG) == 0){
    	            $stmt1 = $DB_con->prepare('INSERT INTO id_images(name_pic) VALUES(:uproductpic)');
    	            $stmt1->bindParam(':uproductpic',$productpic);
    	            if($stmt1->execute()){
    	                $successMSG = "new record succesfully inserted ...";
    	                header("refresh:5;index.php"); // redirects image view page after 5 seconds.
    	                $last_id = $DB_con->lastInsertId();
    	                echo "New record created successfully. Last inserted ID is: " . $last_id;
     
    	            }
    	            else{
    	                $errMSG = "error while inserting....";
     
    	            }
     
    	        }
     
    	    }
     
    		}
     
    	}
    ?>

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Si tu utilise un tableau pour enregistrer les erreurs tu dois être cohérent et faire partout pareil. Je vois par exemple
    $errMSG = "Sorry, your file is too large."; donc évidemment cela va faire une erreur si tu fais ensuite count($errMSG) car tu n'as plus un tableau.
    Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $errMSG[] = "Sorry, your file is too large.";
    et pareil pour les autres erreurs que tu enregistre.

    Aussi uniq ne s'utilise pas comme tu le fais, tu peux faire simplement $userpic= uniqid().".".$imgExt;. Faut lire la doc !

    Tu devrais faire plus de tutos avant de coder. Ce genre de formulaire avec upload demande un peu d'expérience

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2012, 08h38
  2. Réponses: 6
    Dernier message: 23/04/2009, 16h07
  3. Réponses: 3
    Dernier message: 23/04/2009, 12h44
  4. Réponses: 2
    Dernier message: 20/01/2007, 16h25
  5. Réponses: 4
    Dernier message: 25/07/2006, 16h30

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