Vous n'êtes pas identifié(e).
comment je peux mettre lebel "résolu" sur cette discussion ?
Oui Moogli,
c'est résolu:D
Bonne journée
Bonjour Maljuna Kris,
alors je vais t'expliquer un peu plus...
alors, mon code marche mais... Un utilisateur sélectionne une option de mon menu déroulant, dans 1er écran, ensuite il clique sur le bouton "envoyer" pour afficher les résultats dans la 2e page
Voici le code et merci...
$var_age_menu=$_POST["age_menu"];
$var_age_menu= htmlspecialchars($var_age_menu, ENT_QUOTES);
$cherche_menu = " select bd_nom,bd_age FROM $table_db WHERE bd_age = ".$_POST['age_menu'];
$rep_cherche_menu = mysql_query($cherche_menu, $cnx) or die( mysql_error() ) ;
while($row_menu=mysql_fetch_row($rep_cherche_men
u)){
$var_nom=$row_menu[0];
echo "<table><tr><td>$var_nom</td><td>
</tr></table>" ;
}
?>
Super mais je vais faire tous cela dans le même écran : comment peux-je afficher les informations dans 1er (le même) écran où il y a le menu déroulant lorsqu’une option du menu a été sélectionné par l"utilisateur sans cliquer sur un bouton "Envoyer" ?
Salut Maljuna Kris,
tu as raison à propos de stockage d'une âge...:/
et merci pour Distinct...:)
alors est ce que tu as la réponse aussi pour ma 2e question :
2e question : comment je peux afficher les résultats de ce menu, par exemple : lorsque l'on sélecte 5 ans, il faut que j'affiche Nathalie et Alice...roll
J'ai un formulaire où j'affiche les âges des utilisateurs et leurs noms...
Voici le code :
include"bd_db/connection.php";
include"bd_db/selection.php";
$req= " select bd_age,bd_nom FROM $table_db ";
$rep = mysql_query($req, $cnx) or die( mysql_error() ) ;
while($row=mysql_fetch_row($rep)){
$var_age=$row[0];
$var_nom=$row[1];
echo "<tr><td>$var_age</td><td>$var_nom</td></tr>" ;
}
?>
Ça fonctionne...:)
Je vais mettre un menu déroulant au lieu d'afficher tous les ages dans la table...
Donc ce menu déroulant va prendre les infos dans la bdd MySql.
J’arrive afficher les valeurs dans mon menu.
Voici mon code
$res = " select bd_age FROM $table_db ";
$rep_menu = mysql_query($res, $cnx) or die( mysql_error() ) ;
while($affiche_contenu = mysql_fetch_assoc($rep_menu)) {
echo '<option value="'.$affiche_contenu['bd_age'].'">'.$affiche_contenu['bd_age'].'</option>';
}
?>
</select>
1er question : comment je peux regrouper les informations::rolleyes:
Exemple
+---------+-------------+----------+
| ID | bd_age | bd_nom |
+---------+-------------+----------+
| 1 | 5 ans | nathalie |
| 2 | 5 ans | alice |
| 3 | 2 ans | nathalie |
| 4 | 2 ans | john |
| 5 | 10 ans | gilles |
+---------+-------------+----------+
En fait avec le code actuel, les options de mon menu sont 2 fois "5 ans", 2 fois "2 ans" et une fois "10 ans". Comment je peux afficher seulement 3 options au lieu de 5 options (sans répéter) ?:rolleyes:
2e question : comment je peux afficher les résultats de ce menu, par exemple : lorsque l'on sélecte 5 ans, il faut que j'affiche Nathalie et Alice...:rolleyes:
Mrci Pierrot, je vais le voir
requête ajax:/
c'est quoi
Bonjour Pierrot,
J'ai un bd de MySql...
Alors, comment je peux faire pour que cela marche :
1er écran, mon formulaire...
Je fais les vérifications avec JavaScript si c'est bon j'amène les informations (par Post) à 2e page où j'envoie une requête qui va vérifier si l'email existe ou pas dans MySql.
S'il existe j'affiche le message : désolé, etc. s'il n'existe pas, c'est l'écriture des informations dans mon BD mySql et j'affiche le message : Merci pour votre inscrpription, etc.
Est-ce que c'est cela ?
c'est comment ?:mad:
J'ai fait un formulaire et j'ai mis certains filtres/contrôle sur quelques champs à remplir avec le JavaScript...
Tout marche bien...
if (document.FormToto.nom.value=="")
{
alert("ECRIVEZ VOTRE NOM S\'IL VOUS PLAIT !");
return false;
//....
if (document.FormToto.annee6.checked)
{
v_compte = v_compte + 1;
}
if (v_compte == 0 )
{
alert("VEUILLEZ CHOISIR AU MOINS UN MAGAZINE S\'IL VOUS PLAIT !");
return false;
}
if (v_compte >> 1 )
{
alert("VEUILLEZ CHOISIR MAX. UN MAGAZINE S\'IL VOUS PLAIT !");
return false;
}
//etc...
Voici ma question : comment je peux mettre un contrôle/filtre en contrôlant les emails : si un utilisateur a rempli le formulaire avec un email, une deuxième fois, un utilisateur qui a le même email ne puisse pas remplir et l'envoyer ?
Un message s’afficherait : ce courriel a déjà été saisi, vous ne pouvez pas envoyer le formulaire par le même email.
Bonjour GrandGourou xTG,
super gentil, merci:)
Bonjour,
J’ai une question avec PHP et MySql...
Dans ma table de mySql, il y a 3 champs : bd_1a, bd_2b, bd_3c
Dans les champs, il peut avoir les valeurs [on] ou bien vides (il n'y a rien)...
En plus, dans les 3 champs ci-dessus, du même enregistrement (donc dans la même ligne) tous les champs seront vide, ou tous les ont la valeur "on" ou bien quelques-uns vide et les autres la valeur [on]
avec mon code ci-dessous, j'affiche mon checkBox [1a] sélectionné s'il y a [on] dans mon champ [bd_1a]
$var_1a= $ligne_liste_checkbox['bd_1a'];
$option_1a = ($var_1a) ? 'checked="checked"' : null;
$var_2b= $ligne_liste_checkbox['bd_2b'];
$option_2b = ($var_2b) ? 'checked="checked"' : null;
$var_3cb= $ligne_liste_checkbox['bd_3c'];
$option_3c = ($var_3c) ? 'checked="checked"' : null;
?>
<label>
<input type="checkbox" name="1a" id="1a" <?php echo $option_1a; ?> />
</label>
<label>
<input type="checkbox" name="2b" id="2b" <?php echo $option_2b; ?> />
</label>
<label>
<input type="checkbox" name="3c" id="3c" <?php echo $option_3c; ?> />
</label>
Voici ma question :
Je vais supprimer 2 checkbox suivants : 2b et 3b
et je vais garder mon 1er checkbox 1a et je vais qu'il soit [checked] lorsqu'il y a la valeur [on] dans un de trois champs (bd_1a, bd_2b, bd_3c)
et s'il n'y a pas de valeur dans les trois champs, je veux que mon checkbox ne soit pas sélectionné...
À votre avis, comment je peux faire cela, est-ce que vous avez une idée ?
Merci
Bonjour moogli ^_^
Merci pour vos aides... selon les aides et les explications, mes codes marchent...
j'ai deux solutions
la 1ère c'est mon code que j'ai bidouillé pour qu'il marche...
//application utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
//des remplacements complexe on utilise preg_replace mais on pourrais aussi utiliser str_replace pusique c'est plus basiques (voir la 2e solution)
return utf8_decode(preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $chaine));
}
}
//ecriture du fichier
//fputs qui ne permet pas de formater du texte au format csv puisque c'est pour n'importe quel fichier pour Excel on utilise fputcsv qui permet de formater du texte au format csv
fputs($ouvrir_FD, utf8_decode($var_date).';'.nettoyage($var_votre_nom).';'.nettoyage($var_nom_enfant).';'.nettoyage($var_adresse).';'.nettoyage($var_ville).';'.utf8_decode($var_province).';'.utf8_decode($var_code_postal).';'."\n");
//Enfin fermer le fichier
fclose($ouvrir_FD);
et la 2e c'est la meilleur solution :
//remplacement [rn] (lorsqu'utilisateur appuie sur la touche "Entrée") par [--->] pour qu'il n'y a pas de création des colonnes sup dans Excel
function replace_rn_saut($el)
{
//callback --> La fonction de rappel à exécuter pour chaque élément de chaque tableau.
//str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.
//des remplacements basiques on n'utilise str_replace au lieu de preg_replace qui est plus complexe.
return (str_replace("\r\n",' ',$el));
}
// array --> Liste des tableaux à exécuter via la fonction de callback .
//http://php.net/manual/fr/function.array-map.php
$tab_excel = array();
$tab_excel[] = $var_date;
$tab_excel[] = $var_votre_nom;
$tab_excel[] = $var_nom_enfant;
$tab_excel[] = $var_adresse;
$tab_excel[] = $var_ville;
$tab_excel[] = $var_province;
$tab_excel[] = $var_code_postal;
//fonction array_map ----> Applique une fonction sur les éléments d'un tableau
//retourne un tableau après leur avoir appliqué la fonction callback
//utf8_decode — Convertit une chaîne UTF-8 en ISO-8859-1
$tab_excel = array_map('utf8_decode',$tab_excel);
//apliquer la fonction replace_rn_saut
$tab_excel = array_map('replace_rn_saut',$tab_excel);
//Ecriture le fichier
//fputcsv qui permet de formater du texte au format csv
fputcsv($ouvrir_FD, $tab_excel, ';');
//Enfin fermer le fichier
fclose($ouvrir_FD);
?>
merci encore et bonne journée
Bonjour Moogli,
Comme tu m'as dit, j'ai fait un table...
$tb_tableau_replacer = array();
$tb_tableau_replacer[0] = '.,';
$tb_tableau_replacer[1] = '--->';
$var_ville = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_ville);
$var_nom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_nom);
$var_prenom = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_prenom);
$var_pays = preg_replace($tb_tableau_nettoyage, $tb_tableau_replacer, $var_pays);
//ecriture fichier csv
fputs($ouvrir_FD, utf8_decode($var_ville).';'.utf8_decode($var_nom).';'.utf8_decode($var_prenom).';'.utf8_decode($var_pays).';'."\n");
Ca marche mais il y a toujours trop de répétitions...
Alors j'aimerais bien l'optimiser... J'ai fait une fonction :
Mais je n’arrive pas… Dans les fichiers CSV; les colonnes (ceux que j’ai appliqué la fonction « nettoyage ») sont vides, sans valeur…
Alors à votre avis, comment je peux alléger mon code? ? Je vais surtout faire cela pour apprendre pas pour la vitesse.
Merci:)
Bonjour,
Merci pour vos aides…
J’ai réglé mon problème avec la fonction preg_remplace comme vous voyez ci-dessous…
Du coup, j’ai trois questions :
1- Comment je peux optimiser mon code qui se trouve dans la partie de fonction preg_replace ?
2- est-ce qu’il y a un script php ou javascript qui empêche d’écrire ou transformer les minuscules en majuscule dans un champ de texte ( input / textbox)
3- est ce qu’il y a un script php ou javascript qui transforme les accents dans un champ de texte ( input / textbox)
Bonne journée
Bonjour,
Par mon formulaire en PHP, les données sont enregistrées dans MySql et dans un fichier csv.
J’ai des problèmes avec mon fichier csv sous Excel…
Je vous pose 2 questions
1- lorsque l'utilisateur écrit le point-virgule [;] dans un champ de texte (input type="text") au niveau du fichier csv, il y a un problème : à cause de ce point-virgule, il y a une colonne supplémentaire dans mon fichier sous Excel : puisqu’il y a les séparateurs [;] dans un fichier csv.
Comment je peux remédier ce problème ? (dans mysql, tout est correct) :?:
Voici mon code pour la création du fichier
2- Si j'utilise la zone de texte [textarea] avec 5 lignes que l'utilisateur passe à la ligne en appuyant sur la touche "Entrée", dans mon fichier csv sous Excel, le 2e paragraphe est en 2e ligne au lieu de rester dans la même ligne. Pourtant dans mon MySql, tout est correct : sur la même ligne (enregistrement)
Comment je peux remédier ce problème (dans mysql tout est correct) :?:
Bon week-end
j'ai trouve
Il fallait
utf8_decode()
Merci
Bonsoir...
Merci à vous,
Suite vos explication j'ai réglé une grande partie de mon problème
Voici la solution
En fait je ne devrais pas faire htmlspecialchars avant l'insertion de mes données dans la BD mais simplement lors de l'affichage donc ici c'est inutile
Ensuite avant la requête d'insertion il faut faire
Hey !
Tu peux aussi essayer d'ajouter le code suivant (lors de la connexion) :
<?php
/*
$DB = mysql_connect(self::HOST, self::LOGIN, self::PASS);
mysql_select_db(self::DATA_BASE_NAME, $DB);
*/
mysql_query('SET NAMES utf8');
?>
Avec le code suivant tout va bien...
// Insertion en bdd si les variables (exemple [$var_ville] non vide
if(!empty($var_ville))
{
//connection au serveur
include"bd_db/connection.php";
//sélection de la base de données et table
include"bd_db/selection.php";
//juste après la connexion encodage
mysql_query("SET NAMES 'utf8'");
//------...............---ecriture cvs debut
// va voir plus bas
//------...............---ecriture cvs FIN
//écriture de la requête d'insertion
//$query = "INSERT INTO matable (champ_ville) VALUE ('" .mysql_real_escape_string($var_ville). "' )";
$var_query = "INSERT INTO $table_db (bd_ville,bd_code_postal)";
$var_query .= "VALUE ('" .mysql_real_escape_string($var_ville). "','" .mysql_real_escape_string($var_code_postal). "')";
$result = mysql_query($var_query, $cnx) or die (mysql_error());
}
?>
Ça marche avec MySql et PhpMyAdmin...
Par contre j'ai un souci dans un autre niveau...
Je écris aussi les donnés dans un fichier csv...
Lorsque j'ouvre mon fichier sous NotePad++, tout va bien...
Alors, l'utilisateur écrit dans le champ "ville" [ll'assomption côté] et je peux l'afficher correctement le résultat dans une page PHP et aussi dans phpMyMyAdmin
: [l'assomption côté]. C'est la même chose lorsque j'ouvre mon fichier csv sous NodePad++... Super content...
Par contre, lorsque j'ouvre le même fichier sous Excel, il y a un pépin :
je vois comme cela : [l'assomption çôté] :oops: :cry:
Comment je peux corriger mon histoire sous excel ?;)
voici mon code ....
// formatage du date avec fonction 'date'
//$var_date = date('d_m_Y--H_i_s_');
$var_date = date('d/m/Y');
//Définir le fichier qui nous intéresse
//$fichier_data_FD = "data/" . date("Ymd").".csv";
// . date('dmY') . '
// ('Y-m-d\TH:i:s:u')
$fichier_data_FD = "data/envoie.csv";
//ou en mode "ajouter" à la fin d'info existant
//créé si inexistant
$ouvrir_FD = fopen($fichier_data_FD,"a");
//La position du pointeur est dans le file
$pointeur_adresse_memoire = ftell($ouvrir_FD);
//et est modifiable
$pointeur_adresse_memoire = fseek($ouvrir_FD,$pointeur_adresse_memoire-10);
//pour passer à la ligne, écrire \n
fputs($ouvrir_FD, $var_ville.';'.$var_code_postal.';'."\n");
//Enfin fermer le fichier
fclose($ouvrir_FD);
//------...............---ecriture cvs FIN
?>
Alors est-ce que vous avez des idées ?
Merci encore:)
Bonjour,
J'ai un formulaire en PHP...
Au début de mon formulaire, j'ai mis header en utf 8
En suite dans l’Head de la partie HTML, j'ai fait la même chose :
Je passe les variables ENT-QUOTES
Exemple :
Dans le champ de mon mySql (sous phpMyAdmin) :
Type : TEXT
Interclassement : utf8_general_ci
Lorsque l’utilisateur remplit "textarea" avec les accents, l'enregistrement dans le bd n'est pas bon. Voici l'exemple :
l'utilisateur remplit le "textarea" comme cela: je m'appelle luc côté Montréal
Mais dans bd ce que je vois : je m'appelle luc côté Montréal
Comment je peux remédier mon problème ?
Merci
Bonjour Alnoss,
Je n'ai pas installé le serveur Apache sur mon windows 7...
Bonjour,
J’ai installé PHP 5.3.2 sur windows 7 avec IIS...
Mon php marche (phpinfo()
Ensuite j'ai installé Mysql server5.1 (mysql-essential-5.1.47-win32)
Ensuite j'ai installé phpMyAdmin 3.3.3. (phpMyAdmin-3.3.3-all-languages) en suivant tutorial... je tape le lien suivant : http://127.0.0.1/phpMyAdmin/setup/index.php
Voici le message d’erreur…
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\php\ext\php_mssql.dll' - Le module spécifié est introuvable. in Unknown on line 0
Pourtant php_mssql.dll existe (C:\php\ext\php_mssql.dll) et active dans php.ini (extension=php_mssql.dll)
Alors votre avis c’est pourquoi ?
Salut xTG,
Je me sens un peu con…
Évidemment, sur le serveur le répertoire de mon bd n’est pas le même…
Merci pour ce détail… j’ai rectifié le chemin…
Ça marche…
Bonne soirée
Bonjour,
J’ai fais une connexion avec un bd access…
Localement ca marche sur mon ordi…
Lorsque je le mets sur le serveur
Il y a une erreur :
PHP Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft JET Database Engine<br/><b>Description:</b> 'C:\inetpub\wwwroot\bon_commande_10\bede\commande_lettre.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.' in C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php:7
Stack trace:
#0 C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php(7): com->Open('Provider=Micros...')
#1 C:\inetpub\wwwroot\toto\bon_commande_10\resultat\index.php(64): include('C:\inetpub\wwwr...')
#2 {main}
thrown in C:\inetpub\wwwroot\toto\bon_commande_10\resultat\cgibin\get_infos.php on line 7
et voici le code
$bd = 'C:\\inetpub\wwwroot\bon_commande_10\bede\commande_lettre.mdb';
$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
// Microsoft Access connection string.
$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$bd");
// SQL statement to build recordset.
$rs = $conn->Execute("SELECT * FROM tb_formulaire_2010");
//echo "test" . $rs->EOF;
//exit();
//Display all the values in the records set
while (!$rs->EOF) {
echo "<tr>";
echo "<td bgcolor=\"#999999\">" . $rs->Fields["id"]->value . "</td>";
echo "<td>" . $rs->Fields["bd_ecole"]->value . "</td>";
echo "<td>" . $rs->Fields["bd_ville"]->value . "</td>";
echo "<td>" . $rs->Fields["bd_province"]->value . "</td>";
echo "<td>" . $rs->Fields["bd_nom"]->value . "</td>";
echo "<td><span class=\"gris\">1er anneé : </span>" . $rs->Fields["bd_annee1"]->value . "<br />";
echo "<span class=\"gris\">2e année : </span>" . $rs->Fields["bd_annee2"]->value . "<br />";
echo "<span class=\"gris\">3e année : </span>" . $rs->Fields["bd_annee3"]->value . "<br />";
echo "<span class=\"gris\">4e année : </span>" . $rs->Fields["bd_annee4"]->value . "<br />";
echo "<span class=\"gris\">5e année : </span>" . $rs->Fields["bd_annee5"]->value . "<br />";
echo "<span class=\"gris\">6e année : </span>" . $rs->Fields["bd_annee6"]->value . "</td>";
echo "</tr>";
$rs->MoveNext();
}
$rs->Close();
?>
La ligne 7 : $conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$bd");
Est ce que vous avez une idée ?
Ça marche après avoir installé phpmailer-1.71 sur mon site…
Voici la solution pour windows web server 2008 :
Mettre 2 class suivants à la racine de votre site (pas à la racine de votre serveur) (en fait, vous pouvez les mettre où vous voulez, mais dans le répertoire de votre site :
class.phpmailer.php
class.smtp.php
Ainsi, vous avez installé phpmailer-1.71
Ensuite, intégrer le code suivant dans votre formulaire :
require("class.phpmailer.php"); // class DE PHPMailler qui marche avec le class class.smtp.php
// le chemin où se trouve votre class (exemple : ("nom_dossier/class.phpmailer.php");)
$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Host = "111.111.1.1"; // votre serveur smtp exemple 111.111.1.1 ou smtp.toto.com
$mail->Username = "login";
$mail->Password = "motdepasse";
$mail->From = "votre_courriel@toto.com";
$mail->AddAddress = "son_courriel@otot.fr"; //
$mail->Subject = "Votre inscription bla bla";
$mail->Body = "Bonjour \n\nMerci de votre inscription sur notre liste d’envoi. \n\nAvec mes généreux remerciements.";
$mail->WordWrap = 50;
if(!$mail->Send())
{
echo 'Nous éprouvons actuellement des difficultés. Veuillez réessayer plus tard.';
echo 'Raison : ' . $mail->ErrorInfo;
}
else
{
echo "<strong>Merci de votre inscription à notre liste";
}
Salut xTG,
J'ai aussi essayé avec ce code suivant :
$msg = POP_authenticate($username, $password, $POPserver);
if ($msg === FALSE) {
mail("toto@gmail.com", "test email", "1er ligne\nLine 2");
$msg = "mail a été envoyer.\r\n";
}
exit($msg);
?>
mais c'est toujours c'est le même message...