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 :

changer l'url de header("location"), est-ce possible ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut changer l'url de header("location"), est-ce possible ?
    Bonjour tout le monde,

    Je vous explique ce qu'il se passe :

    J'ai un bouton qui ajoute une ligne à un tableau dans une page web.

    Le script qui met à jour le tableau revient sur la page précédente avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: ".$_SERVER['HTTP_REFERER']);
    Il parraît que header ne fonctionne qu'en local, c'est vrai cela ?

    Je me demandais si il était possible de de lancer une page PHP dans le location à la place de $_SERVER['HTTP_REFERER']) ?

    Merci d'avance pour l'aide.

    beegees

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Oui c'est tout à fait possible il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: tapage.php");
    Et si jamais tu veux mettre une tempo (5sec) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Refresh: 5;url=tapage.php");
    $_SERVER['HTTP_REFERER'] donne l'adresse de la page en cours.

    Et chez moi la fonction header marche sans problème avec Easyphp.

  3. #3
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonsoir

    Citation Envoyé par beegees Voir le message
    Il parraît que header ne fonctionne qu'en local, c'est vrai cela ?
    Non pas à ma connaissance, d'ailleurs je l'utilise sur mon site et sans souci...

    Citation Envoyé par beegees Voir le message
    Je me demandais si il était possible de de lancer une page PHP dans le location à la place de $_SERVER['HTTP_REFERER']) ?
    Là je suis pas sur de comprendre... Tu peut faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: http://www.monsite.fr/index.php");
    C'est ce que tu veux faire ?

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par Niki59 Voir le message
    Oui c'est tout à fait possible il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: tapage.php");
    Et si jamais tu veux mettre une tempo (5sec) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Refresh: 5;url=tapage.php");
    $_SERVER['HTTP_REFERER'] donne l'adresse de la page en cours.

    Et chez moi la fonction header marche sans problème avec Easyphp.
    Citation Envoyé par 12monkeys Voir le message
    Bonsoir



    Non pas à ma connaissance, d'ailleurs je l'utilise sur mon site et sans souci...



    Là je suis pas sur de comprendre... Tu peut faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: http://www.monsite.fr/index.php");
    C'est ce que tu veux faire ?
    Bonsoir,

    Merci à vous deux pour vos réponses.

    Le but est de rappeler un script PHP nommé "Changer_De_Table.php" qui se trouve dans le dossier "Script".

    J'ai donc utilisé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Location: Scripts/Changer_De_Table.php");
    Il me donne alors ces messages d'erreur :

    Warning: include(Scripts/connexion.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\Scripts\Changer_De_Table.php on line 3

    Warning: include() [function.include]: Failed opening 'Scripts/connexion.php' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\Scripts\Changer_De_Table.php on line 3
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 30' at line 1
    Merci encore pour votre aide très précieuse.

    beegees

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Par défaut
    Tu es sûr d'avoir un fichier connexion.php dans le dossier Scripts ?

  6. #6
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    D'abord as tu vérifié le chemin vers ton fichier ?

    Sinon peut on voir ton code ? parce que ton erreur me parait bizarre...

  7. #7
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par Niki59 Voir le message
    Tu es sûr d'avoir un fichier connexion.php dans le dossier Scripts ?
    Re,

    Oui j'ai bien un fichier nommé "connexion.php" dans le dossier scripts.

    Merci pour ton aide.

    beegees

    Citation Envoyé par 12monkeys Voir le message
    D'abord as tu vérifié le chemin vers ton fichier ?

    Sinon peut on voir ton code ? parce que ton erreur me parait bizarre...
    Voici le code qui appelle l'URL :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <?php
    session_start();
    include('Scripts/connexion.php'); 
     
    $NbLignes = $_GET["nligne"];
     
    //echo '&NbLignes vaut '.$NbLignes;
     
    //var_dump($_POST);
     
    //echo $_SESSION['LaTable'];
     
    foreach ($_POST['new'] as $key=>$NomCol) {
     $sqlset = array();
     $sqlwhere = array();
     
     
     foreach ($_POST['new'][$key] AS $NomCol=>$value) 
     {
                  $sqlset[] = $NomCol . "= '" . $value ."' ";
     
                  $sqlwhere[] = $NomCol . "= '" . $_POST['old'][$key][$NomCol] . "' ";
      }
    $sql = 'UPDATE ' . $_SESSION['LaTable'] . ' SET ' . implode(",", $sqlset) . ' WHERE ' . implode(" AND ", $sqlwhere); 
     
    $execution=mysql_query($sql, $link)or die($query . " - " . mysql_error());
     
     
    }
    echo $sql;
     
    header("Location: Scripts/Changer_De_Table.php");
     
    /*echo('
    
    <script langage="javascript" type="text/javascript">
    	//revient une page en arrière :
    history.back();
    //Recharger la page en cours (refresh) :
    window.location.reload(true); 
    </script>
    
    ');
    */
     
    ?>
    et voici l'URL appelée :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    $array = array($NomCollone => $ValeurColonne);
    include('Scripts/connexion.php'); 
     
     
    echo '<table border="1" id="TableauUpdate">';
    //Je crée une variable de session ici afin que le nom de la table puisse être utilisé dans le script "Mettre à jour".
    $table = $_POST['select_Nom_Tables'];
    $_SESSION['LaTable'] = $table;
     
    $query = mysql_query("SELECT * FROM $table LIMIT 30") or exit(mysql_error()."</br>$query");
    $num_rows = mysql_num_rows($query) or exit(mysql_error()."</br>$query");
     
    echo "$num_rows Rows\n";
     
     
     
    	echo '<form action="MettreAJour.php" method="post" name="frmSaisie" id="frmSaisie">';
     
     
    	echo '<tr>';
    	for($i=0;$i<mysql_num_fields($query);$i++)
    		{
    		echo '<th>'.mysql_field_name($query,$i).'</th>';
    		}
    	echo '</tr>';
     
    	$nligne = 0;
    	$nbColonnes = 0;
    	while($row = mysql_fetch_array($query,MYSQL_ASSOC)) 
    	{
     
    	echo '<tr>';
    	foreach($row as $NomCol => $Valeur)
    		{
    			   echo '<td> <textarea name="new[' . $nligne . '][' . $NomCol . ']" . $>'.$Valeur.'</textarea> <input name="old[' . $nligne . '][' . $NomCol . ']" type="hidden"  value="'.$Valeur.'"/></td>';	
    		}
    	$nligne++;
    				echo '</tr>';
    	}
     
     
    	echo '<input type="submit" name="btnUpdate" value="Mettre la table à jour" onClick="UpdateSQL()" />' ; 
     
    	echo '</p>';
    	echo '</form>';
     
     
     
     
     
    $NbFields = mysql_num_fields($query);
     
    		//echo 'le nombre de champ de cette table vaut ' . $NbFields;
    		echo '<input type="submit" name="btnInsertInto" value="Ajouter un enregistrement à cette table" onClick="InsertIntoSQL()" />' ; 
    		//echo 'le nombre de ligne - 1 dans cette table est ' . $num_rows; 
    		echo '</table>';		
    		?>
     
    <script langage='javascript'>
    function UpdateSQL()
    {
    	document.forms['frmSaisie'].action ='MettreAJour.php';
    	document.forms['frmSaisie'].submit();
    }
    function InsertIntoSQL()
    {
    	document.forms['frmSaisie'].action ='Insert_Into_Generation_Chaine_SQL.php';
    	document.forms['frmSaisie'].submit();
    }
    </script>
    Je me demande si ce n'est pas à cause que je devrais appeler connexion.php au départ avec require_once ???

    Merci encore à vous deux pour l'aide.

    beegees

  8. #8
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    Une chose est sure : c'est que dans tes deux codes tu fais un include :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include('Scripts/connexion.php');
    à chaque fois à la ligne 3 et c'est ce fichier connexion.php qui n'est pas trouvé. Je me disais bien, c'est pas un message d'erreur lié au header...

    Par contre je ne sais pas à quoi correspondent tes deux codes : lequel appelle l'autre, lequel est est inclus dans l'autre, ou pas, d'ailleurs...

    C'est pour ça, je me répète, que tu dois bien vérifier le chemin vers ce fichier connexion.php...

    Aller faisons une supposition : si je comprends bien ton second code est le fichier Changer_De_Table.php qui se trouve dans le dossier Scripts, si c'est le cas dans ce second code tu appelles Scripts/connexion.php.

    Donc tu appelles un même fichier connexion.php dans dans deux fichiers qui ne se trouvent pas au même endroit, mais en utilisant le même chemin...

    Il y a un truc qui ne vas pas, tu vois ce que je veux dire...

    Maintenant je peut me tromper, mais alors il faudrait préciser comment s'appelle le fichier contenant ton premier code, idem pour le second code, qu'on y voit un peu plus clair...

Discussions similaires

  1. [RegEx] URL + e-mail en même temps, est-ce possible ?
    Par jojodivx dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2010, 16h37

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