Récupérer des lignes de texte pour la bdd
Fermé
Utilisateur anonyme
-
3 oct. 2011 à 02:45
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 5 oct. 2011 à 09:01
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 5 oct. 2011 à 09:01
A voir également:
- Récupérer des lignes de texte pour la bdd
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
- Excel cellule couleur si condition texte - Guide
- Convertisseur récupération de texte - Guide
4 réponses
Utilisateur anonyme
3 oct. 2011 à 10:50
3 oct. 2011 à 10:50
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
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
3 oct. 2011 à 16:58
3 oct. 2011 à 16:58
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
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
4 oct. 2011 à 22:31
4 oct. 2011 à 22:31
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>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
5 oct. 2011 à 09:01
5 oct. 2011 à 09:01
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