[PHP] Problème de dossier partage
Résolu/Fermé
nasbe
Messages postés
30
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
11 juin 2008
-
25 sept. 2007 à 18:10
nasbe - 26 sept. 2007 à 19:52
nasbe - 26 sept. 2007 à 19:52
A voir également:
- [PHP] Problème de dossier partage
- Partage de photos - Guide
- Dossier appdata - Guide
- Mettre un mot de passe sur un dossier - Guide
- Partage d'abonnement - Guide
- Partage d'écran whatsapp pc - Guide
8 réponses
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
25 sept. 2007 à 18:16
25 sept. 2007 à 18:16
bonjour,
dans ton script, c'est normal que tu es des doubles \\
dans ton script, c'est normal que tu es des doubles \\
nasbe
Messages postés
30
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
11 juin 2008
25 sept. 2007 à 18:32
25 sept. 2007 à 18:32
Non on j'en ai pas en fait.
$Fichier = "C:\Users\Nasbe\Desktop\AdressageIP.txt";
Mais le problème n'est pas de là. Avec ce chemin là, ca fonctionne, c'est avec l'autre que ca coince.
$Fichier = "C:\Users\Nasbe\Desktop\AdressageIP.txt";
Mais le problème n'est pas de là. Avec ce chemin là, ca fonctionne, c'est avec l'autre que ca coince.
sfel
Messages postés
1640
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
15 juillet 2009
430
25 sept. 2007 à 18:37
25 sept. 2007 à 18:37
je voi double alors
<?php
$Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
if (file_exists($Fichier)) {
sinon tu as mal fait ton ouverture de fichier
$fichier = fopen('C:\Users\Nasbe\Desktop\AdressageIP.txt', 'r+');
le r veux dire "read", le + veux dire que li le fichier n'existe pas on le créé, et que l'on peux y écrire.
<?php
$Fichier = "C:\\Users\\Nasbe\\Desktop\\AdressageIP.txt";
if (file_exists($Fichier)) {
sinon tu as mal fait ton ouverture de fichier
$fichier = fopen('C:\Users\Nasbe\Desktop\AdressageIP.txt', 'r+');
le r veux dire "read", le + veux dire que li le fichier n'existe pas on le créé, et que l'on peux y écrire.
nasbe
Messages postés
30
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
11 juin 2008
25 sept. 2007 à 19:27
25 sept. 2007 à 19:27
la fonction file s'occupe du fopen et autre fgets.
if (file_exists($Fichier)) {
$resultat=file($Fichier);<
et pour l'histoire des \\, c'est parce que j'ai fais des tests mais dans ma version j'ai uniquement des \. Donc tu peux remplacer les \\ par des \, ca ne change en rien.
if (file_exists($Fichier)) {
$resultat=file($Fichier);<
et pour l'histoire des \\, c'est parce que j'ai fais des tests mais dans ma version j'ai uniquement des \. Donc tu peux remplacer les \\ par des \, ca ne change en rien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
25 sept. 2007 à 23:16
25 sept. 2007 à 23:16
J'interviens juste pour l'affaire des simples et doubles quotes en PHP si j'ai bien retenu mes leçons et mes expériences personnelles :
L'utilisation de simples quotes prend la chaine comme elle vient, caractère par caractère et aucune variable ni aucun code d'échappement n'est traité. Donc on ne doit pas doubler le caractère barre oblique inverse.
L'utilisation de doubles quotes analyse la chaîne qui se trouve entourée. A l'exécution c'est plus lent pour cette raison mais les caractères d'échappement sont pris en compte. On est alors obligés de doubler les barres obliques inverses.
Le sujet est placé sur résolu (comment ?) mais personnellement j'aurais suggéré de tester qu'on entre bien dans le test file_exist. Ta variable $resultat doit contenir forcément un tableau, si pas il met évidemment une erreur puisque non initialisée, elle peut valoir n'importe quoi.
Si le chemin est \\ordinateur\utilisateur
En utilisant des doubles quotes il faudrait écrire "\\\\ordinateur\\utilisateur"
Ou normalement en utilisant de simples quotes.
C'était ça ? :D
L'utilisation de simples quotes prend la chaine comme elle vient, caractère par caractère et aucune variable ni aucun code d'échappement n'est traité. Donc on ne doit pas doubler le caractère barre oblique inverse.
L'utilisation de doubles quotes analyse la chaîne qui se trouve entourée. A l'exécution c'est plus lent pour cette raison mais les caractères d'échappement sont pris en compte. On est alors obligés de doubler les barres obliques inverses.
Le sujet est placé sur résolu (comment ?) mais personnellement j'aurais suggéré de tester qu'on entre bien dans le test file_exist. Ta variable $resultat doit contenir forcément un tableau, si pas il met évidemment une erreur puisque non initialisée, elle peut valoir n'importe quoi.
Si le chemin est \\ordinateur\utilisateur
En utilisant des doubles quotes il faudrait écrire "\\\\ordinateur\\utilisateur"
Ou normalement en utilisant de simples quotes.
C'était ça ? :D
Nickel, c'était exactement ca: $Fichier = "\\\\PC-DE-NASBE\Users\AdressageIPreseau.txt";
je te remercie infiniment.
J'ai encore un autre petit souci.
Je n'arrive pas insérer dans ma table, ou du moins pas comme je l'aimerai, voici mon script
<?php
$Fichier = "\\\\PC-DE-NASBE\Users\AdressageIPreseau.txt";
if (file_exists($Fichier)) {
$resultat=file($Fichier);
}
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'utilisateurs';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else {
//$requeteSuppression = "Delete From utilisateurs";
//mysql_query($requeteSuppression);
foreach ($resultat as $res) {
$champs = explode(",", $res);
$requeteAjout = "INSERT INTO utilisateurs";
$requeteAjout .= "(NomUtilisateur, IP)";
$requeteAjout .= "VALUES";
$requeteAjout .= "(".$champs[0].", '".$champs[1]."')";
mysql_query($requeteAjout);
}
mysql_close($lien);
}
?>
Et voici mon fichier texte
,Jean,192.168.1.5,
,Nasbe,192.168.1.2,
,Louis,192.168.2.5,
Voici ma BD
IdUtilisateur, NomUtilisateur, IP
Mon champs IdUtilisateur est en auto-increment. Je ne comprends pas pourquoi il n'y pas d'insertion alors que si je le fais manuellement (import), je n'ai aucun problème à ce niveau là. Aurais-tu une explication?? Je sèche depuis pas mal de temps.
je te remercie infiniment.
J'ai encore un autre petit souci.
Je n'arrive pas insérer dans ma table, ou du moins pas comme je l'aimerai, voici mon script
<?php
$Fichier = "\\\\PC-DE-NASBE\Users\AdressageIPreseau.txt";
if (file_exists($Fichier)) {
$resultat=file($Fichier);
}
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'utilisateurs';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else {
//$requeteSuppression = "Delete From utilisateurs";
//mysql_query($requeteSuppression);
foreach ($resultat as $res) {
$champs = explode(",", $res);
$requeteAjout = "INSERT INTO utilisateurs";
$requeteAjout .= "(NomUtilisateur, IP)";
$requeteAjout .= "VALUES";
$requeteAjout .= "(".$champs[0].", '".$champs[1]."')";
mysql_query($requeteAjout);
}
mysql_close($lien);
}
?>
Et voici mon fichier texte
,Jean,192.168.1.5,
,Nasbe,192.168.1.2,
,Louis,192.168.2.5,
Voici ma BD
IdUtilisateur, NomUtilisateur, IP
Mon champs IdUtilisateur est en auto-increment. Je ne comprends pas pourquoi il n'y pas d'insertion alors que si je le fais manuellement (import), je n'ai aucun problème à ce niveau là. Aurais-tu une explication?? Je sèche depuis pas mal de temps.
Posotaz
Messages postés
489
Date d'inscription
samedi 23 juin 2007
Statut
Membre
Dernière intervention
19 juin 2011
225
26 sept. 2007 à 19:42
26 sept. 2007 à 19:42
Je t'emprie ;-)
Pour ton autre problème, je suppose que NomUtilisateur et IP sont des champs textuels. Dans ce cas je suis quasiment certain que MySql te renvoie un message d'erreur lors de l'exécution de $requeteAjout parce que si je suppose que :
$champs[0] = "Jean"
$champs[1] = "192.168.1.5"
(ça aussi à vérifier)
Ta requête va donner :
INSERT INTO utilisateurs(NomUtilisateur, IP)VALUES(Jean, '192.168.1.5');
Ce qui fait qu'il manque des simples quotes autour de "Jean" alors que tu le fais correctement pour l'IP.
Enfin je me permets de conclure que tu as peu d'expérience en programmation mais à l'avenir tu pourras apprendre à débuguer toi-même tes scripts en faisant des echo de tes variables un peu partout dans le code. Les requêtes aussi c'est très intéressant de les afficher et si tu le fais tu auras exactement ce que je t'ai écrit (sauf minime erreur de ma part, j'ai fait ça à la main).
Voilà, tiens-nous toujours au courant ça fait toujours plaisir. :-)
Pour ton autre problème, je suppose que NomUtilisateur et IP sont des champs textuels. Dans ce cas je suis quasiment certain que MySql te renvoie un message d'erreur lors de l'exécution de $requeteAjout parce que si je suppose que :
$champs[0] = "Jean"
$champs[1] = "192.168.1.5"
(ça aussi à vérifier)
Ta requête va donner :
INSERT INTO utilisateurs(NomUtilisateur, IP)VALUES(Jean, '192.168.1.5');
Ce qui fait qu'il manque des simples quotes autour de "Jean" alors que tu le fais correctement pour l'IP.
Enfin je me permets de conclure que tu as peu d'expérience en programmation mais à l'avenir tu pourras apprendre à débuguer toi-même tes scripts en faisant des echo de tes variables un peu partout dans le code. Les requêtes aussi c'est très intéressant de les afficher et si tu le fais tu auras exactement ce que je t'ai écrit (sauf minime erreur de ma part, j'ai fait ça à la main).
Voilà, tiens-nous toujours au courant ça fait toujours plaisir. :-)
C'est bon j'ai pu régler mes problèmes d'insertion, c'était effectivement un problème avec les guillements.
Pendant que je t'ai sous la main, lol.
J'ai créer en PHP, une liste déroulante dynamique, elle récupère les données d'une table. Maintenant ce que j'aimerai faire, c'est que quand je clique sur un bouton supprimer, je puisse récupérer la valeur de la liste déroulante sélectionnée et faire des requetes SQL afin de supprimer des enregistrements.
J'ai fais passablement de recherche mais en vain, si t'avait une piste de comment faire ca ou du moins des exemples, merci d'avance.
Je te met quand même le code de la création de la liste déroulante et le formulaire.
<?php
// Création de la liste déroulante des groupes
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'groupe';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else
$sql = mysql_query ("SELECT IdGroupe, Groupe FROM $table ORDER BY Groupe");
if ($sql == FALSE){
echo "erreur de resultat";
echo mysql_error();
} else {
//Exécution de la requête
$ListeGroupe = "<SELECT NAME='listeGroupe'>";
$ListeGroupe.= "<OPTION VALUE=0>Choisissez</OPTION>";
// On boucle sur la table
while ($tableauGroupes = mysql_fetch_array($sql)) {
$IdGroupe = $tableauGroupes["IdGroupe"];
$Groupe = $tableauGroupes["Groupe"];
$ListeGroupe .= "<OPTION VALUE='$IdGroupe'>$Groupe</OPTION>";
}
}
$ListeGroupe .= "</SELECT>";
mysql_close($lien);
?>
et le formulaire
<html>
<form Method="POST" Action="<?echo $_SERVER["PHP_SELF"]?>">
<fieldset>
<legend>Supprimer un groupe</legend>
<table>
<tr></tr>
<tr>
<td>Nom du groupe: </td>
<td><?php print $ListeGroupe;?></td>
</tr>
<tr>
<td></td>
<td><input type ="submit" name = "Supprimer" value="Supprimer"></td>
</tr>
</table>
</fieldset>
Pendant que je t'ai sous la main, lol.
J'ai créer en PHP, une liste déroulante dynamique, elle récupère les données d'une table. Maintenant ce que j'aimerai faire, c'est que quand je clique sur un bouton supprimer, je puisse récupérer la valeur de la liste déroulante sélectionnée et faire des requetes SQL afin de supprimer des enregistrements.
J'ai fais passablement de recherche mais en vain, si t'avait une piste de comment faire ca ou du moins des exemples, merci d'avance.
Je te met quand même le code de la création de la liste déroulante et le formulaire.
<?php
// Création de la liste déroulante des groupes
$bd ='gestionacces';
$lien = mysql_pconnect ('localhost', 'root', '');
mysql_select_db($bd);
$table = 'groupe';
if ($lien == FALSE){
echo "connexion impossible à la base $bd";
} else
$sql = mysql_query ("SELECT IdGroupe, Groupe FROM $table ORDER BY Groupe");
if ($sql == FALSE){
echo "erreur de resultat";
echo mysql_error();
} else {
//Exécution de la requête
$ListeGroupe = "<SELECT NAME='listeGroupe'>";
$ListeGroupe.= "<OPTION VALUE=0>Choisissez</OPTION>";
// On boucle sur la table
while ($tableauGroupes = mysql_fetch_array($sql)) {
$IdGroupe = $tableauGroupes["IdGroupe"];
$Groupe = $tableauGroupes["Groupe"];
$ListeGroupe .= "<OPTION VALUE='$IdGroupe'>$Groupe</OPTION>";
}
}
$ListeGroupe .= "</SELECT>";
mysql_close($lien);
?>
et le formulaire
<html>
<form Method="POST" Action="<?echo $_SERVER["PHP_SELF"]?>">
<fieldset>
<legend>Supprimer un groupe</legend>
<table>
<tr></tr>
<tr>
<td>Nom du groupe: </td>
<td><?php print $ListeGroupe;?></td>
</tr>
<tr>
<td></td>
<td><input type ="submit" name = "Supprimer" value="Supprimer"></td>
</tr>
</table>
</fieldset>