IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Appel d'une page et retour résultat sur cette page


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut Appel d'une page et retour résultat sur cette page
    Bonjour,

    j'avoue que le titre n'est peut-être pas super explicite, et en même temps pour trouver des solutions à mon problème je n'ai pas su quoi taper dans la barre de recherche réellement.

    Je dispose d'un dossier avec des fichiers à l'intérieur.
    Je peux supprimer ces fichiers en cliquant sur un lien (page document.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="delete.php?dossier='.$dossier.'&filename='.$nom.'">Supprimer</a>
    La suppression se passe sans problème (page delete.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $dossier = $_GET['dossier'];
    $filename = $_GET['filename'];
     
    // Suppression de l'ancien document sur le serveur
    $chemin = $dossier.$filename;
    unlink($chemin);
     
    // Suppression de l'ancien document de la base
    $reqdel = mysql_query("DELETE FROM ...;");
     
    if(!$reqdel) echo '<p class="rouge">Problème de suppression, veuillez réessayer.</p>';
    else echo '<p class="vert">L\'ancien document a bien été supprimé !</p>';
    Ce que j'aimerai faire, c'est afficher le résultat de $reqdel sur ma page document.php, directement sous mon formulaire. Or, actuellement ça m'ouvre la page delete.php avec mon texte à l'intérieur (ce qui est normal vu mon code).

    Donc comment récupérer le résultat $reqdel depuis delete.php dans document.php ? (une histoire de return ?)

    Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    180
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 180
    Par défaut
    Je pense qu'il faudrait que tu te tournes vers l'ajax. Ton lien vers delete.php appellerait en fait uune fonction JS qui elle appellerait le fichier PHP. Puis par exemple, une fois le fichier PHP appelé, tu renvoies ton résultat vers ta fonction JS et tu l'affiches dans ta page document.
    Par contre, si tu ne connais pas du tout l'ajax, j'essaierais de réfléchir à une bidouille :p ou alors peut-être que d'autres utilisateurs t'en proposeront une.

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Disons que je connais un peu pour avoir fait quelques fonctions avec par-ci par-là, mais quand je peux m'en passer, pourquoi pas.

    Après s'il n'y a pas d'autre choix ben ...

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Salut,
    ça doit simplement ressemble à ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    $dossier = $_GET['dossier'];
    $filename = $_GET['filename'];
    $etat = "?delete=";
     
    // Suppression de l'ancien document sur le serveur
    $chemin = $dossier.$filename;
    unlink($chemin);
     
    // Suppression de l'ancien document de la base
    $reqdel = mysql_query("DELETE FROM ...;");
     
    if(!$reqdel) $etat .= "true";
    else $etat .= "false";
     
    header("Location:chemin/document.php$etat");
    sur ta page document.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //test si delete a été passer dans l'url
    if(is_set($_GET['delete'])){
     if($_GET['delete']=="true") 
       echo '<p class="vert">L\'ancien document a bien été supprimé !</p>';
    else if($_GET['delete']=="false") 
       echo '<p class="rouge">Problème de suppression, veuillez réessayer.</p>';
     
    }

  5. #5
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Merci pour cette solution mais ça ne fonctionne pas.

    Peut-être parce que sur la page document.php je n'ai pas mis ton code à la bonne place ?

    Celle-ci est composée de deux parties :
    - un input file pour ajouter un document, avec un bouton "ajouter"
    - la liste de tous les documents : deux liens pour chacun "télécharger" et "supprimer"

    Si on appuie sur Ajouter, alors on enregistre le document dans la base.

    Je dois caler mon $_GET delete à quel endroit ?

    EDIT : l'erreur que j'ai est qu'il ne trouve pas la page http://127.0.0.1/document.php?delete=false
    > dû au fait que j'ai un <form method=post> sur ma page peut-être ?

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    ReSalut,

    Comme tu as l'air d'avoir une page qui commence à être conséquente (avec des formulaires .... des posts) (des liens .... des gets) etc ... Moi je me ferais un petit contrôleur de tout cela. CAD repasser par le serveur.

    Ce contrôleur récupérera les gets ou les posts, les analysera et puis rechargera la page avec un flag sur la suppression par ex.

  7. #7
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Woooh euh ... je m'demande si je préfère pas l'Ajax là d'un coup

    Qu'appelles-tu un flag sur la suppression ?

  8. #8
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par baggie
    Merci pour cette solution mais ça ne fonctionne pas.
    ça ne fonctionne pas à quel niveau ? au niveau de la redirection ou juste au niveau de l'affichage des messages de confirmation.

  9. #9
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Citation Envoyé par Thes32
    ça ne fonctionne pas à quel niveau ? au niveau de la redirection ou juste au niveau de l'affichage des messages de confirmation.
    Dès que je clique sur supprimer, il me met une erreur 404 sur cette adresse : http://127.0.0.1/pot_document.php?delete=false
    et je me demandais si ça venait du fait que j'ai un form en POST sur ma page,

    mais mon document est bien supprimé !

    [EDIT] Bon j'ai à peu près résolu le problème en bidouillant : je recopie toute la mise en page de ma page d'avant, j'affiche mon message sur ma page delete.php et je redirige au bout de trois secondes sur ma page document.php, ça laisse le temps de lire le message quoi. Si y'a mieux, je suis preneuse [/EDIT]

  10. #10
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Donc, c'est au niveau de la redirection...

    Le chemin que tu as placé ici est incorrect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:chemin/document.php$etat");
    écrit le chemin tel qu'il apparait dans lel navigateur. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:http://localhost/[à remplacer par le bon nom]/document.php$etat");

  11. #11
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    A mon avis, tous les fichiers 'php' sont au même endroit

    Il y a pas de chemin sauf pour les fichiers à ajouter/supprimer

  12. #12
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Et pourtant ... ça fonctionne !

    Mais alors je ne comprends pas pourquoi il faut rajouter http://127.0.0.1 alors que mes fichiers sont, comme le dit Fench, tous au même endroit.

    Y'a-t-il une explication ?

  13. #13
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Petite info du jour pour toi:

    l'adresse 127.0.0.1 est appelée adresse de rebouclage (en anglais loopback), car elle désigne la machine locale (en anglais localhost).

    Donc ce que tu as écrit et ce que Thes32 a écrit sont pareils, ta machine sert de serveur .... Pour tous tes appels, c http://localhost/document.php... OU http://127.0.0.1/document.php ...

  14. #14
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Oui oui ça je le sais ^^
    mais ce que je demande c'est pourquoi le lien est faux en mettant juste le lien de la page document.php, alors que cette page se trouve dans le même dossier que celle que l'on appelle ?

  15. #15
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Citation Envoyé par Fench Voir le message
    A mon avis, tous les fichiers 'php' sont au même endroit

    Il y a pas de chemin sauf pour les fichiers à ajouter/supprimer
    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location:/document.php$etat");

  16. #16
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Merci beaucoup ! tout fonctionne comme je le souhaitais

  17. #17
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    C à mon tour d'être dans le vague

    Tu veux dire pourquoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location:http://localhost/document.php$etat");
    alors que tu aurais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Location:/document.php$etat");
    Non !


    Pour mon cas j'ai tjs suivi la doc de header comme une ouverture de flux http dont nous y mettons nos données, ici une adresse

  18. #18
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Voila, ma question était celle-ci ^^ Et ok pour ta réponse

  19. #19
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Peux tu être plus explicite ?

  20. #20
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    A propos de ? C'est pour moi la question ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/10/2009, 19h06
  2. appel a une classe et retour ?
    Par pepito31 dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2007, 18h58
  3. [Oracle] Résultats sur plusieurs pages (pagination)
    Par lilsandy dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/07/2007, 11h26
  4. Formulaire recherche + résultat sur plusieurs pages
    Par Pepito2030 dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2007, 13h23
  5. Retour aléatoire sur la page d'accueil
    Par ThunderBolt_ dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2007, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo