Artiphp - CMS open source et gratuit
Vous êtes ici » Accueil/Forum
Saisissez votre recherche
RechercherRechercher   Liste des MembresListe des Membres   S'enregistrerS'enregistrer    ProfilProfil 
Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 


Wrapper page invalide

 
Ce forum est verrouillé; vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Artiloo.com Index du Forum -> Artiphp 3 Velocity
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Mar 27 Juin 2006 13:51    Sujet du message: Wrapper page invalide Répondre en citant

Bonjour,
J'ai cr�er deux pages dans le wrapper. Une pour afficher la liste des fiches, l'autre pour afficher la fiche choisie. Pour cela j'ai fait avec dreamweaver une page d'affichage liste d�tail, j'ai modifier le fichier de connection car je n'ai pas r�ussi � le renvoyer vers celui d'arti.Enfin!

Ma premi�re page s'affiche correctement, mais quand je clique sur le lien de la fiche choisie, j'ai "D�sol�, page invalide !".

Voici le code de mes deux pages si quelqu'un a le courage de se pencher dessus.
La premi�re /etude.php

Code:
<?php require_once('../Connections/afist.php'); ?>
<?php
mysql_select_db($database_afist, $afist);
$query_etudes = "SELECT * FROM afist_etude ORDER BY titre ASC";
$etudes = mysql_query($query_etudes, $afist) or die(mysql_error());
$row_etudes = mysql_fetch_assoc($etudes);
$totalRows_etudes = mysql_num_rows($etudes);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table border="1" align="center">
  <tr>
    <td>titre</td>
    <td>id_etude</td>
  </tr>
  <?php do { ?>
  <tr>
    <td> <?php echo $row_etudes['titre']; ?>&nbsp; </td>
    <td> <a href="../wrapper/index.php?file_wrap=etudedetails.php?recordID=<?php echo $row_etudes['id_etude']; ?>"> <?php echo $row_etudes['id_etude']; ?>&nbsp; </a> </td>
  </tr>
  <?php } while ($row_etudes = mysql_fetch_assoc($etudes)); ?>
</table>
<br>
<?php echo $totalRows_etudes ?> Enregistrements Total
</body>
</html>
<?php
mysql_free_result($etudes);
?>


La seconde : ./etudedetail.php

Code:
<?php require_once('../Connections/afist.php'); ?><?php
mysql_select_db($database_afist, $afist);
$recordID = $_GET['recordID'];
$query_DetailRS1 = "SELECT * FROM afist_etude WHERE id_etude = $recordID ORDER BY titre ASC";
$DetailRS1 = mysql_query($query_DetailRS1, $afist) or die(mysql_error());
$row_DetailRS1 = mysql_fetch_assoc($DetailRS1);
$totalRows_DetailRS1 = mysql_num_rows($DetailRS1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
      
<table border="1" align="center">
 
  <tr>
    <td>id_etude</td>
    <td><?php echo $row_DetailRS1['id_etude']; ?> </td>
  </tr>
  <tr>
    <td>titre</td>
    <td><?php echo $row_DetailRS1['titre']; ?> </td>
  </tr>
  <tr>
    <td>auteurs</td>
    <td><?php echo $row_DetailRS1['auteurs']; ?> </td>
  </tr>
  <tr>
    <td>service</td>
    <td><?php echo $row_DetailRS1['service']; ?> </td>
  </tr>
  <tr>
    <td>contact</td>
    <td><?php echo $row_DetailRS1['contact']; ?> </td>
  </tr>
  <tr>
    <td>secteuractivite</td>
    <td><?php echo $row_DetailRS1['secteuractivite']; ?> </td>
  </tr>
  <tr>
    <td>nbsalaries</td>
    <td><?php echo $row_DetailRS1['nbsalaries']; ?> </td>
  </tr>
  <tr>
    <td>postes</td>
    <td><?php echo $row_DetailRS1['postes']; ?> </td>
  </tr>
  <tr>
    <td>resume</td>
    <td><?php echo $row_DetailRS1['resume']; ?> </td>
  </tr>
  <tr>
    <td>dangers</td>
    <td><?php echo $row_DetailRS1['dangers']; ?> </td>
  </tr>
  <tr>
    <td>methode</td>
    <td><?php echo $row_DetailRS1['methode']; ?> </td>
  </tr>
  <tr>
    <td>outils</td>
    <td><?php echo $row_DetailRS1['outils']; ?> </td>
  </tr>
  <tr>
    <td>solutions</td>
    <td><?php echo $row_DetailRS1['solutions']; ?> </td>
  </tr>
  <tr>
    <td>evaluation</td>
    <td><?php echo $row_DetailRS1['evaluation']; ?> </td>
  </tr>
  <tr>
    <td>support</td>
    <td><?php echo $row_DetailRS1['support']; ?> </td>
  </tr>
  <tr>
    <td>themes</td>
    <td><?php echo $row_DetailRS1['themes']; ?> </td>
  </tr>
  <tr>
    <td>public</td>
    <td><?php echo $row_DetailRS1['public']; ?> </td>
  </tr>
  <tr>
    <td>autres</td>
    <td><?php echo $row_DetailRS1['autres']; ?> </td>
  </tr>
 
 
</table>


</body>
</html><?php
mysql_free_result($DetailRS1);
?>


Ah j'allais oubli�, le site est visible � cette adresse www.iprp-ist.info Dossiers --> Etudes
(login : kat pw:samere)

Pendant que j'y suis je cherche à restreindre l'accès de ces pages aux seuls inscrits. Comment est-ce possible ?
Je patauge un peu en Php et Sql et ne comprends pas toujours tout. Merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mar 27 Juin 2006 14:49    Sujet du message: Répondre en citant

Rien à voir avec tes questions, mais pour des raisons de sécurité (risque de SQL injection), dans ton fichier etudedetails.php, complète ainsi cette ligne :
Code:
$recordID = intval($_GET['recordID']);


1°)
Pour tester, dans le fichier templates/temp/temp.html, modifie ainsi :
Code:
if(strstr($file_wrap, "/")
//   || !(file_exists("pages/$file_wrap"))
   || strstr($file_wrap, "%00"))
   { echo "Désolé, page invalide !";}
else
   { require_once("../wrapper/pages/$file_wrap"); }



2°) Tu peux essayer en rajoutant ce bout de code PHP au début de tes fichiers (à la ligne suivant juste <?php ) pour limiter l'accès aux seuls membres :
Code:
if (!$_SESSION['SESSION_USER']) {
   header("Location: ../outils/erreur.php?ec=2");
   exit();
}



jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Mar 27 Juin 2006 15:13    Sujet du message: C'est mieux mais... Répondre en citant

Merci, quelle réactivité !
Bon je n'ai plus le message Désolé qui s'affiche, mais j'ai un centre de page vide...
Euh pourquoi tu dis que ça n'a rien à voir avec mes questions?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mar 27 Juin 2006 16:09    Sujet du message: Répondre en citant

Le problème se tient dans l'adresse
Il y a deux "QUERY_STRING" (ce qu'il y a après le ? ). Exemple :
-http://www.iprp-ist.info/wrapper/index.php?file_wrap=etudedetails.php?recordID=2

Il y a un moment déjà j'avais trouvé (difficilement ) un moyen de contourner cela :
- http://www.artiloo.com/phpBB2/viewtopic.php?t=3873

Le plus simple est de modifier les liens dans ton fichier etudes.php de :
../wrapper/index.php?file_wrap=etudedetails.php?recordID=2
en :
../wrapper/index.php?file_wrap=etudedetails.php&recordID=2

Citation:
Euh pourquoi tu dis que ça n'a rien à voir avec mes questions?

Le paragraphe où je parle de SQL injection n'a rien à voir avec tes questions initiales, c'est simplement un plus au niveau sécurité


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Mar 27 Juin 2006 16:54    Sujet du message: Répondre en citant

Génial, tout fonctionne.
Merci de prendre le temps d'expliquer ce qu'on ne sait pas encore...
Tchouss
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Mer 28 Juin 2006 13:05    Sujet du message: Répondre en citant

Salut,
Toujours le même genre de problème, mais cette fois c'est sur un bout de code en javascript.
[url]<a href="javascript:BRB_PHP_DelWithCon('../wrapper/index.php?file_wrap=delete.php','id_etude',<?php echo $row_etude['id_etude']; ?>,'Etes vous sûr de vouloir supprimer cette fiche étude ?');">Supprimer</a>[/url]
Voila la portion de code qui pose problème car elle appelle un lien type ../wrapper/index.php?file_wrap=delete.php?5
J'ai essayé de remplacé la virgule entre l'adresse et la variable par &, mais ça ne marche pas à tous les coups.
Merci de m'éclairer.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Mer 28 Juin 2006 20:09    Sujet du message: Répondre en citant

En Javascript, je ne pourrai pas t'aider beaucoup ; je n'y connais rien
Il y a souvent des pbs de guillemets ' ou " très difficiles à résoudre (pour moi).

Tu veux dire que dans cette fonction
Code:
function BRB_PHP_DelWithCon(deletepage_url,field_name,field_value,messagetext) { //v1.0 - Deletes a record with confirmation
  if (confirm(messagetext)==1){
     location.href = eval('\"'+deletepage_url+'?'+field_name+'='+field_value+'\"');
  }
}

tu as remplacé :
Citation:
location.href = eval('\"'+deletepage_url+'?'+field_name+'='+field_value+'\"');

par :
Citation:
location.href = eval('\"'+deletepage_url+'&'+field_name+'='+field_value+'\"');

et que ça ne marche pas ?

Pourquoi ne pas se passer de cette fonction BRB_PHP_DelWithCon() et générer plutôt tes liens comme ceci :
Code:
$ligne_etude .= "<td width=\"10%\"><div align=\"right\"><a href=\"../wrapper/index.php?file_wrap=delete.php&id_etude=" . $row_etude['id_etude'] . "\" onClick=\"return confirm('Etes vous sûr de vouloir supprimer cette fiche étude ?');\">Supprimer</a></div></td>\n";

La fonction eval() semble plutôt prévue pour exécuter du code javascript avec des valeurs non connues à l'avance.

D'autres connaissant mieux ces aspects pourront sans doute t'aider davantage.


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Mer 28 Juin 2006 21:42    Sujet du message: Répondre en citant

Bon en fait en lisant ta réponse, j'ai compris que je n'avais pas modifier le code au bon endroit. J'ai donc changé mon "," par "&" dans la déclaration de fonction et ça fonctionne.
Ouaouh ! Je l'avais juste modifier dans le corps...
Ah la la j'en avais oublier qu'en Javascript on déclare les fonctions avant de les utiliser.
Bon et bien merci merci merci encore.
Et si tu maîtrise pas le Javascript tu résouds des problèmes quand même...
Katie
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Jeu 29 Juin 2006 15:15    Sujet du message: Répondre en citant

Salut Jimro,
Bon j'ai essayé de faire les liens avec le code que tu m'as indiqué :
Code:
$ligne_etude .= "<td width="10%"><div align="right"><a href="../wrapper/index.php?file_wrap=delete.php&id_etude=" . $row_etude['id_etude'] . "" onClick="return confirm('Etes vous sûr de vouloir supprimer cette fiche étude ?');">Supprimer</a></div></td>n";

Comme je suis une chèvre en programmation, ça ne marche pas! Où dois-je insérer ce code ? dans le corps ? Rien à mettre de l'entete ?
Enfin... Je ne désepère pas d'atteindre un jour un niveau correct pour réussir!!
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Jeu 29 Juin 2006 19:55    Sujet du message: Répondre en citant

Si ça fonctionne avec le remplacement de ? par &, pourquoi vouloir changer ?

Le nom de variable $ligne_etude étant uniquement là pour l'exemple, l'endroit approprié est la portion de code PHP où sont générés les liens, vraisemblablement dans une boucle while ou autre (peut-être dans le fichier suppression_fiche.php dont personne ne peut lire le contenu à distance par définition ).

En outre, je ne sais pas à quoi tu fais allusion lorsque tu parles du corps et de l'en-tête.


jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Jeu 29 Juin 2006 20:49    Sujet du message: Répondre en citant

Ouais... Ben moi je fais pas du beau code comme toi... Pas encore (pfiou). Mais oui tu as raison j'arrête de me compliquer, je laisse avec ma fonction en Javascript. En tous cas merci pour tout ces bons tuyaux. Euh sinon tu sais le corps c'est ce qui est dans le body et l'entete c'est avant... C'est mon langage à moi... Un langage libre qui deviendra peut être interdit des demain si les sénateurs ratifient le DAVDSI... Mais là je suis Hors sujet....
Tchouss
Katie
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
jimro



Inscrit le: 07 Oct 2004
Messages: 6918

MessagePosté le: Ven 30 Juin 2006 8:28    Sujet du message: Répondre en citant

Si tu as identifié la partie de code PHP qui génère cette liste de liens, tu peux la poster ici. On verra ce qu'on peut faire

jimro
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
katie



Inscrit le: 27 Juin 2006
Messages: 30
Localisation: voivres

MessagePosté le: Ven 30 Juin 2006 9:08    Sujet du message: Répondre en citant

Merci bien Jimro
Identifié le code qui gère ma liste ??? Oui, peut être ???
En fait j'ai deux pages celle de la liste et celle de suppression de l'enregistrement. Mais ça y est ça fonctionne tout comme je voulais. Cool!!!
Grâce à Artiloo parce que sans ce merveilleux outil, j'aurai mis beaucoup plus de temps pour faire toutes ces pages...
Je vais voir si je peux vous aider à quelques chose dans une autre rubrique. Si t'as une idée de ce que je peux faire, dis le moi !!!
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Montrer les messages depuis:   
Ce forum est verrouillé; vous ne pouvez pas poster, ni répondre, ni éditer les sujets.   Ce sujet est verrouillé; vous ne pouvez pas éditer les messages ou faire de réponses.    Artiloo.com Index du Forum -> Artiphp 3 Velocity Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com