Récupérer des lignes de texte pour la bdd
Utilisateur anonyme
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai trouvé cette vidéo : http://simpledev.fr/tutoriels/tuto/recuperation-de-donnees-depuis-un-fichier-texte-en-php/145
Je voudrai réaliser la même chose sauf que ça passerai par un formulaire...
Mais je m'arrache les cheveux, une idée ?
formulaire :
insert :
Merci beaucoup !!!!!
j'ai trouvé cette vidéo : http://simpledev.fr/tutoriels/tuto/recuperation-de-donnees-depuis-un-fichier-texte-en-php/145
Je voudrai réaliser la même chose sauf que ça passerai par un formulaire...
Mais je m'arrache les cheveux, une idée ?
formulaire :
<form action="insert.php" method="post"> <table border="0" bordercolor="#000000" style="background-color:" width="auto" align="center"> <tr> <td>Nom : </td> <td><input type="text" name="author" size="35" value="Aranud"/></td> </tr> <tr> <td>Date : </td> <td><input type="text" name="date" size="35" value="<?php $date = date("Y-m-d"); Print("$date");?>"/></td> </tr> <tr> <td>Liste : </td> <td><TEXTAREA rows="25" name="liste" cols="50" value="<?php echo $lignes ?>"></TEXTAREA></td> </tr> <tr> <td>Classer comme : </td> <td><input type="radio" name="classified" value="B"/>Malware<br/> <input type="radio" name="classified" value="U"/>Inconnu<br/> <input type="radio" name="classified" value="G"/>Inoffensif<br/></td> </tr> <tr> <td></td> <td><input type="submit" value="Soumettre"/></td> </tr> </table>
insert :
<?php require("config.php"); if(!empty($_post)); { extract($_post); $lignes = $_POST['liste']; $author = $_POST['author']; $date = $_POST['date']; $classified = $_POST['classified']; } foreach($lignes as $ligne){ $ligne=explode("*",$ligne); $sql="INSERT INTO md5 (author, md5, name, description, date, classified) VALUES('$author','$ligne[0]','$ligne[1]','$ligne[2]','$date','$classified')"; $req=mysql_query($sql); } mysql_close(); ?>
Merci beaucoup !!!!!
A voir également:
- Récupérer des lignes de texte pour la bdd
- Recuperer message whatsapp supprimé - Guide
- Convertisseur récupération de texte - Guide
- Partager des photos en ligne - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer mon compte facebook désactivé - Guide
4 réponses
Bonjour,
$lignes = $_POST['liste'];
cela signifie que vous récupérez un texte que vous mettez dans la variable $lignes, ce n'est pas un tableau, juste une chaine de caractères, vous êtes d'accord, donc le foreach($lignes as $ligne) ne va pas vous renvoyer les lignes saisies dans la zone de texte, mais à priori chaque caractère de la chaîne $lignes
Il faudrait que
$lignes = split($_POST['liste'],"\n"); (sous linux), à condition que vous mettiez des retours chariots dans le textatea
$lignes = $_POST['liste'];
cela signifie que vous récupérez un texte que vous mettez dans la variable $lignes, ce n'est pas un tableau, juste une chaine de caractères, vous êtes d'accord, donc le foreach($lignes as $ligne) ne va pas vous renvoyer les lignes saisies dans la zone de texte, mais à priori chaque caractère de la chaîne $lignes
Il faudrait que
$lignes = split($_POST['liste'],"\n"); (sous linux), à condition que vous mettiez des retours chariots dans le textatea
de plus, en php la casse des variable est importante alors mets $_POST au lieu de $_post
autre remarques:
foreach($lignes as $ligne){
$ligne=explode("*",$ligne);
$sql="INSERT INTO md5
- comme dit neoprog67 $lignes n'est pas un array donc tu ne peut pas le parcourir par foreach
- $ligne=explode("*",$ligne); ce qui voudrait dire que dans chaque ligne il y a en plus des * qui te servent a découper en sous array ?
- tu nomme ta table md5 ce n'est pas très judicieux ce mot étant le nom d'une fonction php
autre remarques:
foreach($lignes as $ligne){
$ligne=explode("*",$ligne);
$sql="INSERT INTO md5
- comme dit neoprog67 $lignes n'est pas un array donc tu ne peut pas le parcourir par foreach
- $ligne=explode("*",$ligne); ce qui voudrait dire que dans chaque ligne il y a en plus des * qui te servent a découper en sous array ?
- tu nomme ta table md5 ce n'est pas très judicieux ce mot étant le nom d'une fonction php
Merci de vos commentaires je vais tenter ça cette nuit quand je rentrerai chez moi.
oui en faite j'ai un programme qui génère les MD5 des fichiers par une *
par exemple
lemd5 *lenomfichier
lemd5*lenomdufichier2
....
donc je vais découper par l'étoile.Le but étant de référencer les programme de la machine par les MD5 (qui est aussi la clé primaire)
Merci encore
oui en faite j'ai un programme qui génère les MD5 des fichiers par une *
par exemple
lemd5 *lenomfichier
lemd5*lenomdufichier2
....
donc je vais découper par l'étoile.Le but étant de référencer les programme de la machine par les MD5 (qui est aussi la clé primaire)
Merci encore
si j'ai bien compris ton programme genere les lemd5 *lenomfichier
lemd5*lenomdufichier2 et les enregistre dans un fichier .txt
et tu veux lire ce fichier ligne par ligne et afficher dans un formulaire pour ensuite enregistrer dans la BDD avec le classement "malware" etc..
si c'est le cas voici une solution:
lemd5*lenomdufichier2 et les enregistre dans un fichier .txt
et tu veux lire ce fichier ligne par ligne et afficher dans un formulaire pour ensuite enregistrer dans la BDD avec le classement "malware" etc..
si c'est le cas voici une solution:
<?php //on lit de contenu du fichier txt //suposons qu'il se nomme liste_fichiers.txt et qu'il est dans le même repertoire que ce script php $lignes_fichiers=file('liste_fichiers.txt'); //la fonction file lit le fichier et met dans un array ligne par ligne //on va afficher chaque ligne dans le formulaire mais grace à un compteur on changera à chaque insertion dans la BDD pour passer à la ligne suivante if(isset($_POST['compteur'])){ $cpt=$_POST['compteur']); //recup du numéro precedent if($cpt < sizeof($lignes_fichiers)){ $cpt ++; //tant qu'on a pas atteint la fin du fichier txt on passe à ligne suivante }else{ echo "Fin du fichier atteint"; } }else{ //au premier affichage $cpt=0; //l'index de l'array commence à 0 (égal première ligne) } if(isset($_POST['soumettre'])); { require("config.php"); $lignes = $_POST['liste']; $author = $_POST['author']; $date = $_POST['date']; $classified = $_POST['classified']; //insertion dans la BDD $ligne=explode("*",$ligne); //array $sql="INSERT INTO md5 (author, md5, name, description, date, classified) VALUES('$author','$ligne[0]','$ligne[1]','$ligne[2]','$date','$classified')"; $req=mysql_query($sql); mysql_close(); } ?> Traitement de la ligne: <b><?php echo $cpt+1; ?> </b>en cours<br /> <form action="insert.php" method="post"> <table border="0" bordercolor="#000000" style="background-color:" width="auto" align="center"> <tr> <td>Nom : </td> <td><input type="text" name="author" size="35" value="Aranud"/></td> </tr> <tr> <td>Date : </td> <td><input type="text" name="date" size="35" value="<?php $date = date("Y-m-d"); echo $date;?>"/></td> </tr> <tr> <td>Liste : </td> <!-- on affiche la ligne correspondante au compteur $cpt --> <td><TEXTAREA rows="25" name="liste" cols="50" value="<?php if($cpt < sizeof($lignes_fichiers)) {echo $lignes_fichiers[$cpt]} ?>"></TEXTAREA></td> </tr> <tr> <td>Classer comme : </td> <td> <input type="radio" name="classified" value="B"/>Malware<br/> <input type="radio" name="classified" value="U"/>Inconnu<br/> <input type="radio" name="classified" value="G"/>Inoffensif<br/></td> </tr> <tr> <td></td> <td><input name="soumettre" type="submit" value="Soumettre"/></td> <!-- par ce champ caché on va transmettre le numéro compteur en cours d'insertion --> <td><input name="compteur" type="hidden" value="<?php echo $cpt; ?>"/></td> </tr> </table>
ha d'accord, donc ce que je t'ai fait ne sera pas bon
mais comment fais tu avec plusieurs noms de fichiers "collés" dans le textarea pour leur donner une catégorie différente ?.
si vous êtes plusieurs, pourquoi ne pas enregistrer la liste générée par le prog dans un fichier prenom.txt par exemple (un copier coller dans bloc note), fichier qui peut être supprimé à la fin du traitement par le formulaire, dans ce cas tu pourrait utiliser ce que je t'ai fait et mettre la catégorie fichier par fichier
mais comment fais tu avec plusieurs noms de fichiers "collés" dans le textarea pour leur donner une catégorie différente ?.
si vous êtes plusieurs, pourquoi ne pas enregistrer la liste générée par le prog dans un fichier prenom.txt par exemple (un copier coller dans bloc note), fichier qui peut être supprimé à la fin du traitement par le formulaire, dans ce cas tu pourrait utiliser ce que je t'ai fait et mettre la catégorie fichier par fichier