[PHP]Pb formulaire GET

Résolu/Fermé
Signaler
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005
-
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
-
Bonjour,
Je m'enerve sur une page php depuis 1 bon moment sans trouver ce qui ne va pas...et c'est pourquoi je sollicite de l'aide!
En fait j'ai une page qui liste des fichiers, leur taille, date et commentaire(ce dernier est contenu dans un fichier texte)!
Quand on veut modifier le commentaire du fichier, on clic et çà envoit en methode GET plein d'infos a une page edit_comments.php!Jusque là pas de problème, mes variables sont bien recup et c'est les bonnes valeurs!Mais quand sur cette page je modifie le commentaire, il est renvoye a la premiere page inchangee (le commentaire n'a pas ete modifié)alors que dans l'url je voit bien qu'il a enregistré les modifications!
Qu'est ce qui ne va pas?
Si quelqu'un a une idée...?

Mon bout de code: page edit_comments.php
if (isset($_GET['chemin']))
{$chemin=$_GET['chemin'];echo $chemin;}
if (isset($_GET['fichier']))
{$fichier=$_GET['fichier'];echo $fichier;}
if (isset($_GET['desc_file']))
{$desc_file=$_GET['desc_file'];echo $desc_file;}
if (isset($_GET['page_origin']))
{$page_origin=$_GET['page_origin'];echo $page_origin;}

echo "<table border='0' cellpadding='8' cellspacing='0'>";
echo "<tr class='paragraph'><td class='default_td'>";
echo "Enter the new description for the file <em>$fichier</em>:";
echo "<form method='get' action='$page_origin'>";
echo "<input type='hidden' name='chemin' value='$chemin'>";
echo "<input type='hidden' name='descFile' value='$desc_file'>";
$res=affiche_description($chemin,$fichier,$desc_file);

if (isset($_GET['comment']) && ($_GET['comment'] !==""))
{
$desc=$_GET['comment'];
		
		?>
		<p><INPUT type='text' name='desc' size='50' value=<?php echo "'".$desc."'" ;?>></p>	
		<?php
		$f_decrit=$chemin.$fichier;
		suppr_ligne_fichier($f_decrit,$desc,$desc_file);
		insertion_ligne_fichier($f_decrit,$desc,$desc_file);
}
		echo'<p><input class="button" type="submit" value="Change" /></p>
		</form></td></tr></table>';


Merci de vos idées!

18 réponses

Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
496
Salut,

Pourquoi est-ce que tu coupe ton code php au milieu de ta page ?

(?><p><INPUT type='text' name='desc' ... )

T'as essayé en continuant avec un echo pour pour ton input ?

@+
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Salut,

Qu'est ce que tu veux dire par continuer avec 1 echo?

J'ai fait des echo histoire de voir ce qui est passé en parametre mais comme je n'ai rien a afficher sur cette page!

Effectivement je n'ai pas a couper mon code php au milieu mais je ne pense pas que ce soit le probleme?Tu crois que c çà?
0
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007
496
Sincèrement, je crois pas, mais ça coute rien d'essayer, et j'ai vu des trucs vraiment bizzare des fois ... On sais jamais... (toujours sans trop de convictions)

Sinon tu peux peut-être voir dans tes fonctions, comme l'a dis Timon...
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005
>
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007

Ok , je regarde tout çà de suite!
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005
>
Messages postés
2273
Date d'inscription
mercredi 1 octobre 2003
Statut
Contributeur
Dernière intervention
1 octobre 2007

Ben en fait j'ai testé la fonction de suppression, elle ne marche pas:(elle ne supprime rien,et qd je met" if ($ligne==$val){ "au lieu de "if ($ligne!=$val){ ", alors elle supprime tout donc le probleme est dans le if, surement avec la comparaison):

function suppr_ligne_fichier($f_decrit,$desc,$desc_file){

$val="$f_decrit"."|"."$desc";

$fp = fopen($desc_file,"r"); // Ouverture du fichier en lecture, au debut du fichier
$fp_temp = fopen("temp.txt","w+"); // Ouverture du fichier temporaire

while (!feof($fp)) { // Parcours du fichier
$ligne = fgets($fp); // On récupère  la ligne
if ($ligne!=$val){ //si la valeur de la ligne est differente de la val recherchee(a supprimer) on insere ds le fichier temp
fwrite($fp_temp,$ligne);
} 
}

fclose($fp); // Fermeture du fichier
fclose($fp_temp);

copy("temp.txt",$desc_file); // On recopie le fichier temporaire obtenu
unlink("temp.txt"); // On l'efface


}


Le but de cette fonction est de supprimer une ligne precise du fichier!Puis comme il s'agit en réalité d'une modification du commentaire,ensuite j'appelle une fonction d'insertion, elle marche celle la mais elle ne prend pas la valeur modifiee du commentaire, elle garde l'ancienne!Mais c'est pas le meme probleme!
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Non ben j'ai mis :
echo '<p><input type="text" name="desc" size="50" value="'.$desc.'">';echo"</p>";

à la place de :
?>
		<p><INPUT type='text' name='desc' size='50' value=<?php //echo "'".$desc."'" ;?>></p>	
		<?php

et çà change rien!
Dc je vais voir les fonctions!
Apres j reviens sur le forum!(A moins que vous ne voyez d'autres trucs qui ne vont pas entre temps)

Merci!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
Voui tisuisse a raison, et comme ila repondu avant moi j'edite mon post pour enlever ma reponse qui etait a coté de la plaque...
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Salut,
Ben en fait je me demande si tu n'avais pas raison !

Car en fait mon affichage sur la premiere page vient directement du fichier texte dc peut etre !
Je vais voir çà de suite!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
ton fichier contient
fichier1|desc1
fichier2|desc2
fichier3|desc3

c'est ca ?
au fait, il ya la fonction rename() ; qui peut aller plus vite sur la fin, mais c un detail
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

oui en fait :
chemin/fichier|desc

et $f_decrit contient chemin/fichier

ok pour rename!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
a mon avis il faut juste que tu teste $ligne contient $f_decrit, parce ke la desc sera forcement differente, non ?
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

J'ai testé, c'est identique, même pas un espace ou alors j l'ai pas vu!
Je pensais plutôt à un problème de syntaxe pour la comparaison ou alors la boucle est pourrie!

Oui en fait je crois que j'ai pas bien compris ce que tu m'a dit!
oui la description risque d'etre differente selon le fichier et il n'y a qu'un commentaire par fichier dc oui je pourrais ne tester que la partie chemin+nom fichier mais c'etait pour faire simple sans utiliser explode!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
pitetre que quand tu lis une ligne, ya \n a la fin ?
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

ouais bonne idee, j vais essayer avec trim() !
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005
>
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

OK nickel merci!trim() çà marche , il supprime la ligne!
Maintenant j'ai un probleme avec la fonction d'ajout je pense(apres avoir mis trim() quand meme!Je regarde et je reviens!

Merci
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Pas sur que çà marche en fait!Quand j'utilise le code de la fonction dans un autre fichier a part pour tester, çà marche mais pas dans mon vrai!
Je comprend rien!
Faut que je fasse chauffer la cervelle là!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
chauffe,chauffe, mais vas pas te griller un neurone. les miens sont a plat aujourdhui, a pri froid a un concert de suzanne Véga... lol... atchooum
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Dur dur pour toi, moij'ai pris froid hier soir :grosse biture!En fait y'a des chances que je remette le grillage de neurone a lundi, si t'es toujours ds le coin!

Merci bien dans tous les cas!

++
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
vi mai ca sera ma derniere semaine
bon Weekend
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

toi aussi
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Re moi,
en fait je comprend un peu mieux ce qui se passe:
la supprression marche tres bien !( c'est juste que comme je la testait dans le fichier d'origine ou l'insertion marche mal, çà me reinserait lameme chose)!

Dc en fait le probleme c'est que la suppression et l'insertion ont lieu avant que le tout soit posté donc il n'y a pas modification!

Mais je ne voit pas comment faire l'insertion apres que mon formu GET ai été envoyé!?
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
comme tu a l'air de tou faire ds la mm page c juste un pbd'ordre non ? par exemple tu affiche la description avant de la changer...
j'ai bon la ?
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

Oui tu as bon, mais:
Regarde le code de ma page tout en haut:
suppr_ligne_fichier($f_decrit,$desc,$desc_file);
insertion_ligne_fichier($f_decrit,$desc,$desc_file);
}
		echo'<p><input class="button" type="submit" value="Change" /></p>
		</form></td></tr></table>';


comment je peux faire l'insertion (insertion_ligne_fichier() apres le</ form>?

Je peux pas faire çà, je me trompe?
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
tu peux mettre ton script php de traitement(effacement remplacement) n'importe ou, avant apres ton form si ca te demange, mais il faut juste que tu verifie que le traitement doit etre fait = ke le form a ete soumis.
si tu raffichedirectement dans ta page le resultat (fichier modifié), il faut bien sur le faire apres le traitement.
ou pitetre apa compris ton pb?
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

j'explicite pour etre sur qu'on se comprend:

la premiere page ou il y a les fichiers listés avec leur commentaires: bidule_dpt.php
la seconde (cf code tout en haut),on y accede en cliquant sur une icone (sur la 1ere page)en face du fichier ou on veut editer/modif le commenatire!
Du coup toutes les variables necessaires sont postees en GET ds l'url!:cette page c'est edit_comment.php
Dans cette secponde page, je reaffiche la valeur du commentaire(le vieux) et on peut ecrire dessus !
Quand on ecrit dessus en theorie j'appelle les fonctions suppression et insertion pour aller bidouiller le fichier texte ou le commentaire se trouve!
ensuite je renvoi çà a la premiere page:bidule_dpt.php en GET (dans l'url , ou la je vois bien la valeur modifiee du commenatire mais sur la page bidule_dpt.php non)!

Je ne sais pas si je suis tres claire!?

Mais en fait p etre que la ou çà va pas c'est que sur la 1ere page:bidule_dpt.php, je me set juste du fuichier texte pour afficher le commentaire dc en fait je ne sais pas pourquoi je lui renvoit en GET, bref je suis embrouillée dc si je ne suis pas claire c'est normal je pense!
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
je crois que tu ne fais pas le traitement dans la bonne page ...?
Si quand tu change le commentaire, tu soumet ton form et ca te retourne a la liste de fichier, c'est dans cette page kil faut remplacer la ligne
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

oui mais si je fais çà a l'affichage le commentaire ne sera toujours pas modif!Moi je pensais faire:

1ere page:le vieyux commentaire
2eme:le vieux que tu modifie direct!il enregistre le nouveau
3eme:affichage du nouveau

Non?
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
si, il sera modif si tu commence par ca. fait tes modifs des ouverture de la page, ensuite tu affiches.
1. vieille page vieux commentaires
2.form de changements de commentaires
3.1 reception du form =MAJ des commentaires
3.2 affichage toubo touneuf
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

mais le 1 et le 2 c'est sur 2 pages distinctes , on est ok?et 1et 3 c'est les memes pages?
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
on est ok. 1et 3 sont les mm, sauf ke dans 3 les variables $_GET sont remplies de bonnes infos sucrées a digérer. donc la page1 (ou 3) est comme ca:
si isset($_GET['nouvo_comm']), alors je fais mon pti bazar.
dans tous les cas, apres ce test, j'affiche tout
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

ok!
Donc pour toi c'est pas genant que je remplisse les valeurs affichees des commentaires depuis 1 fichier texte?Et dans ce cas si il y a qqchose ds get il fait insertion et suppression puis affichage du fichier texte qui a ete modif et sinon il fait affichage ficher texte?
0
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
ca ma lair bon. cette fois par contre c un vrai ++, je suis en WE now !
0
Messages postés
24
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
1 juillet 2005

ok merci bcp
++
et bon we
0
Bonjour a tous je suis pas un informé du domaine et j'ai un probleme. j'ai un formulaire qui doit recueillir les inforations à inserer dans ma base de donnée. Quand je fait la saisi des infos sur ma machine(utilisée comme serveur) et que je valide; c'est plutot le telechargement de la page php(pour l'insertion) qui se lance. Par contre sur une machine connectée en réseau l'insertion ce fait sans probleme.
0
Messages postés
4607
Date d'inscription
lundi 7 novembre 2005
Statut
Contributeur
Dernière intervention
24 octobre 2020
1 314
merci de ne pas polluer des discussions.

si tu as une question : tu crées ton propre message !

pour ta réponse : as tu un serveur avec php sur ta machine ?
0