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 :

Insérer valeur récupérée en get dans base de données


Sujet :

PHP & Base de données

  1. #21
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Concernant le warning, c'est dommage parce que c'est bien écrit au début et vous l'écrasez par la mauvaise façon de faire

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $id_prospect = !empty($_GET['id_prospect']) ? $_GET['id_prospect'] : 0; // Bonne façon de faire
     
    // username and password sent from form
    $id_prospect = $_GET['id_prospect']; // Mauvaise façon

    Cela part donc déjà très mal parce que j'imagine que c'est une information obligatoire !!

    On pourrait d'ailleurs remplacer ces 2 lignes (et les autres jusqu'au trim()) par ceci :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_prospect = (!empty($_GET) && !empty((int) $_GET['id_prospect'])) ? (int) $_GET['id_prospect'] : 0;

    De plus, vous testez de faire du $_GET mais pour que la moindre chose se passe, il faut soumettre le formulaire de votre page
    J'ai l'impression que vous ne le faites pas. D'ailleurs, il n'y a pas de bouton submit dans le code que vous avez donné

    Dans votre code, l'insertion en DB ne doit se faire QUE si le formulaire est soumis, c'est écrit ici : if (isset($_POST['upload'])) {.

    Je ne sais pas comment vous testez car même votre URL de test n'est pas bonne vu qu'il n'y a pas ?id_prospect=XXX dedans


    EDIT :
    D'ailleurs, en plus du bouton submit pas présent, il n'y a pas non plus d'input name="upload" donc même en soumettant le formulaire ça n'irait pas
    En regardant de plus près le code, il est hyper redondant, il y aurait moyen de le refactoriser facilement en bouclant sur le type de cards
    Pourquoi mettre des <table> en plein milieu ? C'est pas nécessaire
    Y'a aussi plein d'erreurs HTML mais y'en a trop pour toutes les énumérer dans un edit ^^

    Désolé si c'est décourageant mais je me dois d'au moins mentionner les problèmes, ce n'est pas méchamment que je dis ça
    C'est aussi pour votre bien, notamment au niveau de la refactorisation car c'est plus propre de n'écrire qu'une fois quelque chose plutôt que 4 fois avec une petite nuance (quand c'est possible)

    Voici le code que j'ai testé en refactorisant :
    Test visible ici : https://tests.pierre-roels.com/insert-from-get.php

    Code php : 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
    <?php
                // Différentes sections du formulaire
                $cards = [
                    [
                        'title' => 'Posters',
                        'rangs' => [],
                    ],
                    [
                        'title' => 'I Catalogs',
                        'rangs' => [],
                    ],
                    [
                        'title' => 'Publications',
                        'rangs' => [],
                    ],
                    [
                        'title' => 'Catalogs',
                        'rangs' => [],
                    ],
                ];
                // On rempli avec des infos random vu que pas de DB ici
                foreach ($cards AS $k_card => $card) {
                    for ($i = 0; $i <= mt_rand(1, 10); $i++) {
                        $cards[$k_card]['rangs'][] = [
                            'description' => 'Description #' . mt_rand(1, 100),
                            'image' => 'https://rendering.mcp.cimpress.com/v1/vp/preview?instructions_uri=http%3a%2f%2fservices.vistaprint.com%2fsales%2fdocuments%2fpreviewing%2foriondocsignature.aspx%3ftemplate%3d2149769_640%26language_id%3d17%26hidebleed%3d1&width=362&height=1000&bgcolor=F0F2F3&quality=100&category=gp&merchant_metadata=640',
                            'code_publication_doc' => mt_rand(1, 100),
                        ];
                    }
                }
                ?>
                <?php foreach ($cards AS $card) : ?>
                    <div class="card">
                        <div class="card-header">
                            <a class="card-link" data-toggle="collapse"  href="#menuone" aria-expanded="true" aria-controls="menuone"><span style="font-family: 'Roboto',Helvetica,Arial,Lucida,sans-serif;
                                                                                                                                            font-size: 16px;"><?php echo $card['title']; ?></span><span class="collapsed minus"><b>></b></span>
                                <span class="expanded minus"><b><</b></span></a>        </div>
                        <div id="menuone" class="collapse show">
                            <div class="card-body">
     
                                <table width="650" class="table" >
                                    <tbody>
                                        <tr class="table-bordered" style="display: grid;grid-template-columns: repeat(auto-fill,minmax(25%, 1fr));">  
                                            <?php
                                            foreach ($card['rangs'] AS $rang) {
                                                ?> 		
                                                <td class="TexteCheckBoxTTTT_2">
                                                    <a style="text-decoration:none;" class="mustang-gallery" title="<?php echo $rang['description']; ?>" href="../images/<?php echo $rang['image']; ?>" rel="shadowbox[mustang]">
                                                        <img style="text-decoration:none;"  class="bordure" src="<?php echo $rang['image']; ?>" alt="<?php echo $rang['description']; ?>" width="110" height="144"/></a> 
                                                    <br /><br />
                                                    <input type="checkbox" name="code_publication_doc[]" value="<?php echo $rang['code_publication_doc']; ?>"<?php
                                                    if (isset($_POST['code_publication_doc']) AND in_array($rang['code_publication_doc'], $_POST['code_publication_doc'])) {
                                                        echo 'checked="checked"';
                                                    }
                                                    ?> id="<?php echo $rang['code_publication_doc']; ?>">	<?php echo $rang['description']; ?>	
                                                </td>
                                                <?php
                                            }
                                            ?>  	   
                                        </tr>   	   
                                    </tbody>
                                </table>  
     
                            </div>
                        </div>
                    </div>
                <?php endforeach; ?>

  2. #22
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    Mince, j'ai trop voulu ne conserver que le principal dans le code et j'ai viré la validation du formulaire, désolée, la voici :

    Code php : 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
     
     </div>
    	  <table width="593">
    	  <tr> 
              <td width="6">&nbsp;</td>
              <td width="633">		  </td>
            </tr>
    		<tr> 
              <td>&nbsp;</td>
              <td>
    		  </td>
            </tr>
    		<tr> 
              <td>&nbsp;</td>
              <td align="center">
    		  <input class="butn" style="cursor:pointer" title="Envoyer" name="upload" type="submit" id="submit" value="Envoyer" /> &nbsp;&nbsp;
    		  <input type="reset" value="Annuler" title="Annuler" tabindex="14"  class="butn" style="cursor:pointer"/>

    je modifie le reste avec vos corrections

  3. #23
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    ha ! vous avez répondu le temps que j'éditais mon message précédent

    Du coup, je suis allé plus loin dans la refactorisation en faisant un code que vous n'aurez qu'à copier/coller normalement, en remplacement de tout le div accordion :

    Code php : 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
    <div id="accordion">
                <?php
                // Différentes sections du formulaire
                $cards = [
                    [
                        'title' => 'Posters',
                        'publication_id' => 1,
                    ],
                    [
                        'title' => 'I Catalogs',
                        'publication_id' => 2,
                    ],
                    [
                        'title' => 'Publications',
                        'publication_id' => 3,
                    ],
                    [
                        'title' => 'Catalogs',
                        'publication_id' => 4,
                    ],
                ];
                ?>
                <?php foreach ($cards AS $card) : ?>
                    <div class="card">
                        <div class="card-header">
                            <a class="card-link" data-toggle="collapse"  href="#menuone" aria-expanded="true" aria-controls="menuone"><span style="font-family: 'Roboto',Helvetica,Arial,Lucida,sans-serif;
                                                                                                                                            font-size: 16px;"><?php echo $card['title']; ?></span><span class="collapsed minus"><b>></b></span>
                                <span class="expanded minus"><b><</b></span></a>        </div>
                        <div id="menuone" class="collapse show">
                            <div class="card-body">
     
                                <table width="650" class="table" >
                                    <tbody>
                                        <tr class="table-bordered" style="display: grid;grid-template-columns: repeat(auto-fill,minmax(25%, 1fr));">  
                                            <?php
                                            $sql = "SELECT documentation.id, documentation.code_publication_doc, documentation.description, documentation.image, documentation.categorie_publication, documentation.division, documentation.qte_stock, documentation.qte_demande, documentation.formulaire_affich, documentation.date_maj, categories_publications.categorie AS categorie_publication, divisions.division_titre AS division 
    			FROM documentation 
    			LEFT JOIN categories_publications ON documentation.categorie_publication = categories_publications.id 
    			LEFT JOIN divisions ON documentation.division = divisions.id
    			WHERE categories_publications.id = " . $card['publication_id'] . " and documentation.formulaire_affich='oui'";
     
                                            $resultat = mysql_query($sql, $conn) or die('Erreur SQL !' . $sql . '<br>' . mysql_error());
                                            while ($rang = mysql_fetch_array($resultat)) {
                                                ?> 		
                                                <td class="TexteCheckBoxTTTT_2">
                                                    <a style="text-decoration:none;" class="mustang-gallery" title="<?php echo $rang['description']; ?>" href="../images/<?php echo $rang['image']; ?>" rel="shadowbox[mustang]">
                                                        <img style="text-decoration:none;"  class="bordure" src="../images/<?php echo $rang['image']; ?>" alt="<?php echo $rang['description']; ?>" width="110" height="144"/></a> 
                                                    <br /><br />
                                                    <input type="checkbox" name="code_publication_doc[]" value="<?php echo $rang['code_publication_doc']; ?>"<?php
                                                    if (isset($_POST['code_publication_doc']) AND in_array($rang['code_publication_doc'], $_POST['code_publication_doc'])) {
                                                        echo 'checked="checked"';
                                                    }
                                                    ?> id="<?php echo $rang['code_publication_doc']; ?>">	<?php echo $rang['description']; ?>	
                                                </td>
                                                <?php
                                            }
                                            ?>  	   
                                        </tr>   	   
                                    </tbody>
                                </table>
     
                            </div>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>

    Comme vous pouvez le voir, je boucle sur un tableau que j'écris moi-même où je renseigne le titre de la section ainsi que son publication_id.
    Je pourrai réutiliser cette dernière dans la requête : WHERE categories_publications.id = " . $card['publication_id'] . ".


    Maintenant, il faudrait que vous soumettiez le formulaire afin de voir quels debugs sont visibles et/ou quelles erreurs ^^

  4. #24
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    merci pour ce code, quel allègement, je connaissais la refactorisation mais ne m'y été jamais aventurée, pas assez expérimenté. Mon code est loin d'être pro, j'ai besoin de formation.

    J'ai remplacé par votre code et vient de tester, voici l'erreur retournée :

    Prospect1: 54351

    DEBUG1=[0]
    DEBUG2=[0]
    DEBUG3=[INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','20191028-CP','0', NOW())]

    DEBUG3=[INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','20190804-GT8','0', NOW())]

  5. #25
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 114
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 114
    Points : 8 260
    Points
    8 260
    Billets dans le blog
    17
    Par défaut
    Ton ID prospect est à 0 avant ta requête, donc normal qu'il soit à zéro en base.

    J'en dirais pas plus car je ne sais pas quel script a été executé et ni sur quel serveur.

    Il faut revoir ton script.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #26
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    Humm humm... oui c'est ce que j'essaye de comprendre depuis la semaine...

  7. #27
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 114
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 114
    Points : 8 260
    Points
    8 260
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par crastinette Voir le message
    Humm humm... oui c'est ce que j'essaye de comprendre depuis la semaine...
    Ben non, ton problème initialement formulé était "j'ai 0 dans ma base alors que $id_pros est bon dans mon script"

    Maintenant on sait que $id_pros n'est pas bon dans ton script, que le problème n'est pas lié à ta base mais à ton PHP.

    Donne la dernière version de ton script et le résultat du débug de ce dernier
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  8. #28
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    OK merci beaucoup, je le renvoie demain, je ne l'ai pas à disposition actuellement.
    Bonne soirée

  9. #29
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    Bonjour et voici mon dernier script :

    Code php : 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
     
    <?php 
    session_start();
     
    ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL);
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
     
    $id_prospect = !empty($_GET['id_prospect']) ? $_GET['id_prospect'] : 0;
     
    // To prevent XSS injection
    $id_prospect = strip_tags($id_prospect);
     
    // To protect MySQL injection
    $id_prospect = stripslashes($id_prospect);
     
    // trim function removes space before and after the strings
    $id_prospect = trim($id_prospect);
     
    include 'connect.inc.php';
     
    echo "Prospect1: ".$id_prospect;
     
    if(isset($_POST['upload']))
    {
     
    mysql_query("SET NAMES UTF8");
     
    			echo "DEBUG1=[{$id_prospect}]";
     
    			$id_prospect = mysql_real_escape_string($id_prospect);
    			echo "DEBUG2=[{$id_prospect}]";
     
    			foreach($_POST['code_publication_doc'] as $code_publication_doc) {
     
    				$code_publication_doc = mysql_real_escape_string($code_publication_doc);
     
    				$cSql2 = "INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','".$code_publication_doc."','" . $id_prospect . "', NOW())";
    				mysql_query($cSql2) or die(mysql_error());
    				echo "DEBUG3=[{$cSql2}]";
     
    				$cSql5 = "UPDATE documentation SET qte_demande=qte_demande+1 WHERE code_publication_doc='".$code_publication_doc."'";
    				mysql_query($cSql5) or die(mysql_error());	
    			}
     
    		echo "Prospect2222: ".$id_prospect;
     
     
    		// Point d'arrêt
    		//var_dump($id_prospect);
    		//exit;
     
    		  $exp = "xxxxxxxxxxx@xxxxx.fr"; 
     
    		  $dest = 'xxxxxxxxxxxxx@xxxxx.fr';
    		  $entete .= 'From: xxxxxxxxxxxx< '.$exp.'>'."\n";
    		  $entete .= "reply-to: ".$_POST['nom']." <".$_POST['mail'].">\r\n";
    		  $entete .= "return-path: xxxxxx - ".$_POST['nom']." <".$_POST['mail'].">\r\n";
    		  $entete .= "mime-version: 1.0";
    		  $entete .= "Content-type: text/html; charset=UTF-8\r\n";
    		  $entete .= "Content-Transfer-Encoding: 8bit"; 
    		  $entete .= "x-mailer: php/" . phpversion();
    		  $entete .= "x-sender: xxxxxxxxxx - ".$_POST['nom']." <".$_POST['mail'].">";
    		  $entete .= "x-auth-smtp-user: localhost";
     
    		  $message .= "Demande de documentation "."\n\n";
     
    		  $message .= "Email : ".$_POST['email']."\n\n";
    		  $message .= "Object : ".$_POST['objet']."\n\n";
    		  $message .= "\n\n";
    		  $message = utf8_decode($message); 		  
     
    		  if(mail($dest, $_POST['objet'], $message, $entete))
    		  {
    			// MESSAGE DE CONFIRMATION
    			echo "<br />";
    			echo '<span style="background-color:#33cc66;font-size:17px;color: #ffffff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;YOUR MESSAGE HAS BEEN SENT!&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>';
    			echo "<br />";
    			echo"\n\n";
    			echo"\n\n"; 
     
    			echo "<SCRIPT LANGUAGE=\"JavaScript\">document.location.href=\"http://www.xxxxxxxxxxxxxxxx.html\"</SCRIPT>";
    		   }
     
     
    	if ($data1[0] == 0) 
    	{
                session_start();
                $_SESSION['id_prospect' ] = $data['id_prospect'];            
                $_POST['login']    = $_POST['email'];
                $_POST['password'] = $_POST['password'];
                include "log.php";
               	exit();
        }
     
    	mysql_close();						 
     
    }
    ?>
     
     
     
     
     
     
     
     
    <form style="font-family:'Roboto',Helvetica,Arial,Lucida,sans-serif;" action="inscription.php" method="post" width="650">	
     
    		<p class="titre_formu_c">Check the boxes corresponding to the publications you wish to receive:</p>
     
     
     
     <!-------- ACCORDION ------------------------------------------------------------------------------------------------------------------->	
     
     <div class="container">
         <div id="accordion">
                <?php
                // Différentes sections du formulaire
                $cards = [
                    [
                        'title' => 'Posters',
                        'publication_id' => 1,
                    ],
                    [
                        'title' => 'I Catalogs',
                        'publication_id' => 2,
                    ],
                    [
                        'title' => 'Publications',
                        'publication_id' => 3,
                    ],
                    [
                        'title' => 'Catalogs',
                        'publication_id' => 4,
                    ],
                ];
                ?>
                <?php foreach ($cards AS $card) : ?>
                    <div class="card">
                        <div class="card-header">
                               </div>
                        <div id="menuone" class="collapse show">
                            <div class="card-body">
     
     
                                            <?php
                                            $sql = "SELECT documentation.id, documentation.code_publication_doc, documentation.description, documentation.image, documentation.categorie_publication, documentation.division, documentation.qte_stock, documentation.qte_demande, documentation.formulaire_affich, documentation.date_maj, categories_publications.categorie AS categorie_publication, divisions.division_titre AS division 
    			FROM documentation 
    			LEFT JOIN categories_publications ON documentation.categorie_publication = categories_publications.id 
    			LEFT JOIN divisions ON documentation.division = divisions.id
    			WHERE categories_publications.id = " . $card['publication_id'] . " and documentation.formulaire_affich='oui'";
     
                                            $resultat = mysql_query($sql, $conn) or die('Erreur SQL !' . $sql . '<br>' . mysql_error());
                                            while ($rang = mysql_fetch_array($resultat)) {
                                                ?> 		
                                                <td class="TexteCheckBoxTTTT_2">
                                                    <a style="text-decoration:none;" class="mustang-gallery" title="<?php echo $rang['description']; ?>" href="../images/<?php echo $rang['image']; ?>" rel="shadowbox[mustang]">
                                                        <img style="text-decoration:none;"  class="bordure" src="../images/<?php echo $rang['image']; ?>" alt="<?php echo $rang['description']; ?>" width="110" height="144"/></a> 
                                                    <br /><br />
                                                    <input type="checkbox" name="code_publication_doc[]" value="<?php echo $rang['code_publication_doc']; ?>"<?php
                                                    if (isset($_POST['code_publication_doc']) AND in_array($rang['code_publication_doc'], $_POST['code_publication_doc'])) {
                                                        echo 'checked="checked"';
                                                    }
                                                    ?> id="<?php echo $rang['code_publication_doc']; ?>">	<?php echo $rang['description']; ?>	
                                                </td>
                                                <?php
                                            }
                                            ?>  	   
     
     
                            </div>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
            </div>
     
     
          </div>
     
     
    		  <input class="butn" style="cursor:pointer" title="Envoyer" name="upload" type="submit" id="submit" value="Envoyer" /> &nbsp;&nbsp;
    		  <input type="reset" value="Annuler" title="Annuler" tabindex="14"  class="butn" style="cursor:pointer"/>	
    	   </div>
    </div>

  10. #30
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    bonjour,

    echo "Prospect1: ".$id_prospect; renvoie 0.
    Donc, on voit bien que $_GET['id_prospect'] n'est pas bon.

    l'URL doit être de la forme : ......?id_prospect=xxx.
    • Est-ce bien le cas ?
    • Montre la ligne de code qui amène à cette page de traitement.

  11. #31
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    Merci Jreaux62

    Je reçois prospect1, j'ai bien Prospect1: 54351

    A partir de echo "DEBUG1=[{$id_prospect}]"; , je perds ma variable, elle est égale à 0

    Voici l'url :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<SCRIPT LANGUAGE=\"JavaScript\">document.location.href=\"https://xxxxxxxx/inscription1.php?id_prospect=$id_prospect\"</SCRIPT>";

  12. #32
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 114
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 114
    Points : 8 260
    Points
    8 260
    Billets dans le blog
    17
    Par défaut
    Ton INSERT est effectué si :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['upload']))
    Or tu nous dis que $_GET['id_prospect'] vient d'une redirection JavaScript document.location.href => $_POST sera donc toujours vide

    Il y a un problème de logique dans ton script




    Au pire, mets des :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "DEBUG-XX=[{$id_prospect}]";
    Entre chaque instruction, pour voir à quel moment tu perds la valeur.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  13. #33
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    Merci Seb
    En fait, à partir du moment où je valide le formulaire avec le bouton upload, je perds la valeur de ma variable, elle passe à 0.

    J'ai essayé de rajouter ça au moment de l'upload
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_POST['upload']) and isset($_GET['id_prospect']))
    .
    Ma variable passe à 0 et je reviens sur ma page, la redirection ne se fait pas et je n'ai aucun enregistrement dans la table.

    L'upload est le name du bouton qui me permet de faire le submit
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
     <input class="butn" style="cursor:pointer" title="Envoyer" name="upload" type="submit" id="submit" value="Envoyer" />

    Comment puis-je faire ?

  14. #34
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Points : 1 280
    Points
    1 280
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<SCRIPT LANGUAGE=\"JavaScript\">document.location.href=\"https://xxxxxxxx/inscription1.php?id_prospect=$id_prospect\"</SCRIPT>";
    Là, tu fais une REDIRECTION en JS. (CE QUI, GENERALEMENT, EST UNE MAUVAISE PRATIQUE !)

    Donc $_POST est VIDE !
    $_POST['upload'] aussi par conséquent et isset($_POST['upload']) vaut false.

    D'ailleurs,... JE ne comprends pas comment tu arrives à passer dans la condition if(isset($_POST['upload'])) ?!?

    A mon avis... TU NE NOUS DIS/montres PAS TOUT !

    Citation Envoyé par crastinette Voir le message
    ...je valide le formulaire avec le bouton upload...
    • QUEL FORMULAIRE ??
    • QUEL "bouton upload" ??
    • A QUOI sert donc cette REDIRECTION en JS ?? *


    * Par exemple,

  15. #35
    Nouveau membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Novembre 2014
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Novembre 2014
    Messages : 60
    Points : 34
    Points
    34
    Par défaut
    J'ai fini par trouver comment récupérer la variable $id_prospect, sa valeur en fait, parce qu'il fallait aller la chercher en bdd pour qu'elle soit prise en compte lors de l'upload et la comparer avec l'email.
    Maintenant, je récupère mes variables en session et non plus en get et l'insertion se fait dans la table demande_publications.

    Je vous remercie beaucoup pour votre aide, grâce à vos conseils, j'ai pu aller plus loin dans la recherche.

    Code php : 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
     
     
    <?php 
    session_start();
     
    ini_set('error_reporting', E_ALL); 
    ini_set('display_errors', '1');
    ini_set('display_startup_errors', '1');
     
    if(!empty($_POST['id_prospect'])){
      $_SESSION['id_prospect'] = $_POST['id_prospect'];
    }
     
    $id_prospect = !empty($_SESSION['id_prospect']) ? $_SESSION['id_prospect'] : NULL;
     
     
    if(!empty($_POST['email'])){
      $_SESSION['email'] = $_POST['email'];
    }
     
    $email = !empty($_SESSION['email']) ? $_SESSION['email'] : NULL;
     
     
    echo "MODE DEBUG : Valeur récupérée : '.$id_prospect.'"; 
    //affiche le nombre de ligne à générer dans la page
    //MODE DEBUG +++
    echo "<pre>";
    echo "<br> Variables en session : <br>";
    print_r($_SESSION);
     
    echo "<br> Variables POST : <br>";
    print_r($_POST);
    echo "</pre>";
    //FIN DEBUG
     
     
    require "connection.php";
     
    mysql_query("SET NAMES UTF8");				
     
    if(isset($_POST['upload']))
    {
    	// récupération de id_prospect 
        $sql = "SELECT id_prospect FROM prospects WHERE email='$email'";
        $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); 
     
        // on compte le nombre de résultats
        $res = mysql_num_rows($req);
     
    	if($res!=0) 
        {
    		$res = mysql_fetch_assoc($req);
    		$id_prospect = $res['id_prospect'];
     
    	    session_start();
     
    		$_SESSION["id_prospect"] = $id_prospect;
    		echo $_SESSION["id_prospect"];
     
    			echo "DEBUG1=[{$id_prospect}]";
     
    			$id_prospect = mysql_real_escape_string($id_prospect);
    			echo "DEBUG2=[{$id_prospect}]";
     
    			foreach($_POST['code_publication_doc'] as $code_publication_doc) {
     
    				$code_publication_doc = mysql_real_escape_string($code_publication_doc);
     
    				$cSql2 = "INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','".$code_publication_doc."','" . $id_prospect . "', NOW())";
    				mysql_query($cSql2) or die(mysql_error());
    				echo "DEBUG3=[{$cSql2}]";

    et le résultat :
    54351DEBUG1=[54351]DEBUG2=[54351]DEBUG3=[INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','20191028-CP','54351', NOW())]DEBUG3=[INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','20190804-GT8','54351', NOW())]DEBUG3=[INSERT INTO demande_publications (id, code_publication, id_prospect, date_maj) VALUES ('','20180216-CP','54351', NOW())]string(5) "54351"

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Insérer valeur dans base de données JBDC
    Par Mrlaurent90 dans le forum JDBC
    Réponses: 19
    Dernier message: 30/01/2011, 21h41
  2. insérer valeur d'une cellule dans un lien
    Par joniyyy dans le forum Excel
    Réponses: 3
    Dernier message: 17/01/2009, 18h05
  3. Réponses: 10
    Dernier message: 28/06/2007, 15h27
  4. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  5. Insérer Enregistrement dans Base de données
    Par TurricanII dans le forum JBuilder
    Réponses: 3
    Dernier message: 30/05/2006, 12h59

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