Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2011, 00h20   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut revenir à la page précédente

Bonsoir,

dans ma page, il y a un lien qui permet d'effacer le message courant ; mais cette action a lieu dans une autre page (on efface notamment une ligne dans mysql). Quand, c'est fait, je voudrais revenir à la page courante.
J'ai essayé de rajouter :
Code :
1
2
3
<script language="javascript">
javascript:history.go(-1);
</script>
mais ça ne fait rien : que faudrait-il faire ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 00h23   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
c'est

Code :
1
2
3
<script type="text/javascript">
history.back();
</script>
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 00h35   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
maintenant, j'ai sur la page qui efface les messages ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once("config.php");
include_once("connect.php");
$id_conn = connect();
$id=$_SESSION['effacer'];
$sql="delete from `annonce` where id_annonce=".$id;
$sql = stripslashes($sql);
$result = mysql_query($sql) or die(mysql_error());
echo "annonce effac&eacute;e<br>";
?>
<script type="text/javascript">
history.back();
</script>  
<?php
close($id_conn);
?>
mais si le message (une annonce) est bien effacée, je ne reviens pas à la page qui contient le lien...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 00h40   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
history.back() fait l'effet du bouton "précédant"
si tu veux retourner plus lion utilise go()

par exemple
history.go(-2)

ps : enlève ton stripslashes
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 01h34   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
par exemple
history.go(-2)
C'est la bonne valeur

Par contre, sur la page où sont affichées les annonces, je rajoute le lien pour effacer uniquement si l'auteur est la personne loguée :
Code :
if ($ligne[4]==$pseudo)
; pour que quand je reviens sur la page d'affichage, ces valeurs soient conservées, j'ai pensé à les stocker dans des variables de session :
Code :
$_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$_pseudo;
et le test pour afficher le lien est du coup :
Code :
if (($ligne[4]==$pseudo)||($_SESSION['effacer_memo']==$_SESSION['pseudo']))
mais y a rien dans les variables de session, alors comment faire ?

Et pourquoi me conseilles-tu d'enlever le stripslashes ? (Je ne me rappelle même plus pourquoi je l'avais mis ; c'est ancien)
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 01h40   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
tu fais bien un session_start ?
pour stripslashes : http://php.net/manual/fr/security.da...-injection.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 01h48   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
tu fais bien un session_start ?
Oui, d'autant plus que le mécanisme pour effacer une annonce les utilise déjà...
Pour stripslashes, tu t'es sûrement gouré de lien car ça n'a rien à voir.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 01h54   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par laurentSc Voir le message
Oui, d'autant plus que le mécanisme pour effacer une annonce les utilise déjà...
Pour stripslashes, tu t'es sûrement gouré de lien car ça n'a rien à voir.
fait un var_dump de $_SESSION

pour le lien, si si c'est en rapport , c'est que t'as pas compris
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 02h14   #9
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
fait un var_dump de $_SESSION
Y a une des 2 variables qui est à NULL alors que l'init me semble correcte :
Code :
$_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$pseudo;
Citation:
c'est que t'as pas compris
Ca doit être subtile, car je ne vois toujours pas.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 12h24   #10
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par laurentSc Voir le message
Bonsoir,
dans ma page, il y a un lien qui permet d'effacer le message courant ; mais cette action a lieu dans une autre page (on efface notamment une ligne dans mysql). Quand, c'est fait, je voudrais revenir à la page courante.
J'ai essayé de rajouter :
Code :
1
2
3
<script language="javascript">
javascript:history.go(-1);
</script>
mais ça ne fait rien : que faudrait-il faire ?
Bonjour,
Tu te donnes bien du mal pour rien, en effet dans la page courante il te faut la commencer par
Code :
1
2
3
4
<?php
session_start();
$_SESSION['lieu']="nom_de_la_page.php";
?>
Puis dans la page qui va effecer le message
Code :
1
2
3
4
<?php
session_start();
$lieu = (isset($_SESSION['lieu'])) ? $_SESSION['lieu'] : '';
//====== puis tu rediriges vers $lieu
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 12h54   #11
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci de ta réponse ; mais j'ai fini par faire ça avec
Code :
1
2
3
<script type="text/javascript">
history.go(-2);
</script>
par contre, ça coince ensuite. Pourrais-tu jeter un coup d'oeil aux posts ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 13h29   #12
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par laurentSc Voir le message
par contre, ça coince ensuite. Pourrais-tu jeter un coup d'oeil aux posts ?
Oui j'avais tout lu avec soins, mais
1) le Javascript ne donnes pas la fiabilitée du PHP
2) les suivi du cheminement par variable de session est super commode non ?

Par contre si tu veux faire un travail plus "pro" pourquoi ne fais-tu pas un petit bout d'Ajax, en effet tu resterais dans ta page.Seul le PHP qui efface serait appelé de façon transparente.

Donnes moi un bout de code de l'appel a la page d'effacement
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 16h23   #13
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Comme tu dis que le js est moins fiable que le PHP, j'ai entrepris de faire le retour arrière avec des variables de session et plus en js, en espérant que du coup, ça arrangera tout ; mais pour l'instant, c'est pire qu'avant, vu qu'il n'y a plus du tout de retour arrière. Voilà ce que j'ai fait : dans la page initiale :
Code :
1
2
3
4
<?php
session_start();
$_SESSION['lieu']="avisderecherche/index.php";
?>
et dans la page d'effacement :
Code :
1
2
3
4
5
echo '<SCRIPT language="JavaScript">';
echo '<!--';
echo 'window.location="http://---'.$_SESSION['lieu'].'"';
echo '//-->';
echo '</SCRIPT> ';
La redirection, je la fais en js, que j'intègre dans du PHP ; tout doit pouvoir être fait en PHP ; dis-moi.

Citation:
pourquoi ne fais-tu pas un petit bout d'Ajax
Car même s'il paraît que ce n'est pas compliqué, je ne connais pas...

Citation:
Donnes moi un bout de code de l'appel a la page d'effacement
La partie utile de cette page :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
include_once("config.php");
include_once("connect.php");
$id_conn = connect();
$id=$_SESSION['effacer'];
$sql="delete from `annonce` where id_annonce=".$id;
$result = mysql_query($sql) or die(mysql_error());
echo "annonce effac&eacute;e<br>";
echo '<SCRIPT language="JavaScript">';
echo '<!--';
echo 'window.location="http://---/'.$_SESSION['lieu'].'"';
echo '//-->';
echo '</SCRIPT> ';
 
close($id_conn);
?>
et apel de celle-ci :
Code :
1
2
    if (($ligne[4]==$pseudo)||($_SESSION['effacer_memo']==$_SESSION['pseudo'])) 
	     {echo '<a href="../effacer/index.php">Effacer</a>';$_SESSION['effacer']=$ligne[0];$_SESSION['effacer_memo']=$ligne[4];$_SESSION['pseudo']=$pseudo;}
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 16h36   #14
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Tu fais un echo qui affiche la supression OK et aussitôt tu recharge ta page !
donc pas le temps de lire ton message !

En plus le fait d'avoir fait un echo empéche le header a la page en php !

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?php
include_once("config.php");
include_once("connect.php");
$id_conn = connect();
$id=$_SESSION['effacer'];
$sql="delete from `annonce` where id_annonce=".$id;
$result = mysql_query($sql) or die(mysql_error());
close($id_conn);
 header("Location:".$_SESSION['lieu']."");
 exit;
 
?>
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 16h52   #15
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
laurentSc >

pour ouvrir un balise javascript c'est

Code :
<script type="text/javascript">
pas

Code :
<SCRIPT language="JavaScript">
et c'est mieux de mettre une balise CDATA que de commentaire

donc

Code :
1
2
3
4
5
<script type="text/javascript">
//<![CDATA[
 
//]]>
</script>
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 19h39   #16
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Merci de ta réponse Christèle/Mauriser, comme il y a d'autres affichages plus haut que dans cette partie de code, j'ai choisi de mettre ce header dans une iframe :
Code :
1
2
3
4
5
6
7
8
<?php
include_once("config.php");
include_once("connect.php");
$id_conn = connect();
$id=$_SESSION['effacer'];
$sql="delete from `annonce` where id_annonce=".$id;
$result = mysql_query($sql) or die(mysql_error());
echo '<iframe src="http://---/redirection.php"></iframe>';
et avec redirection.php :
Code :
1
2
3
4
<?php 
session_start();
header('location:../'.$_SESSION['lieu']);
?>
Cela dit, quand il tombe sur l'iframe, il ne trouve pas le fichier (alors que j'ai testé l'URL et elle est bonne et la redirection se fait bien), donc quel est le problème ?

merci stealth35, c'est bon à retenir, même si je ne fais plus de js ici.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 22h14   #17
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Quel est le souci de mon iframe ? Pour être plus sûr, je l'ai sortie du PHP :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
include_once("config.php");
include_once("connect.php");
$id_conn = connect();
$id=$_SESSION['effacer'];
$sql="delete from `annonce` where id_annonce=".$id;
$result = mysql_query($sql) or die(mysql_error());
?>
<iframe width=0 height=0 frameborder=0 src="http://---/redirection.php"></iframe>
 
<?php
...
Mais ça ne change rien...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 00h49   #18
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Non, surtout pas d'IFRAME
emploies simplement
Code :
1
2
 
echo "<meta http-equiv='refresh' content='0' URL='".$_SESSION['lieu']."' >";
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 08h47   #19
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Je viens de le faire (je n'ai pas vu hier soir m'étant couché vers minuit) ; le refresh se fait bien, mais on reste sur la page courante : je dis qu'il se fait bien, car la page saute sans arrêt.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 09h44   #20
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
C' est impossible si $lieu existe il retourne a $lieu
tu dois faire ceci
Code :
1
2
3
4
5
6
7
8
 
$x=$_SESSION['lieu'];
$_SESSION['lieu']="";
if ($x!="")
{
echo "<meta http-equiv='refresh' content='0' URL='".$x."' >";
exit;
}
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web