| |
|
|
| PHP-Nuke France - Communauté Européenne: Forums |
|
|
ATTENTION En téléchargeant une version de PHP-Nuke autre que celle que nous proposons, vous prenez la décision de ne pouvoir prétendre à aucun support sur nos Forums. Vous êtes libre de faire vos propres choix mais nous ne pouvons accepter de faire le travail des autres. Par conséquent et en connaissance de cause, toute question relative à une autre version que celle que nous nous sommes engagé à supporter sera transférée à la corbeille. Prenez 2 minutes pour prendre connaissance plus en détails de notre fonctionnement
| Voir le sujet précédent :: Voir le sujet suivant |
|
|
|
nic1305

Novice
Inscrit le: Sep 04, 2004 Messages: 21
|
Posté le: 04.09.2004, 18:24:04 Sujet du message: Mod. en cours de création Want Help ;) |
|
|
Salut a tous,
je travaillais depuis pas mal de temps sur npds et je viens de me mettre a phpnuke puisqu'on ne m'en a dit que du bien.
j'aurais voulu avoir qq infos pour créer un module.
voila, donc pour le moment j'ai deja crée ma table, rempli etc... tout se passe bien.
mon script sert a faire des achats via allopass. jusqu'ici donc tout va bien. je souhaite simplement recuperer la valeur du pseudo du membre qui va/est en train de payer pour l'envoyer avec le formulaire allopass pour la verification du code.
le champ voulu s'appelle DATAS.
mon formulaire est donc ainsi :
<input type="hidden" name="DATAS" value="
<?
mon code php pour recuperer le pseudo
echo $pseudo;
?>
">
voila si vous pouviez m'aider pour le code php que je dois mettrez pour recuperer le pseudo
merci d'avance a tous ;) |
|
 |
|
|
ckforum

Habitué

Inscrit le: Jan 06, 2004 Messages: 1653 Localisation: FRANCE
|
Posté le: 04.09.2004, 20:13:21 Sujet du message: |
|
|
Salut nic1305,
Pas sûr d'avoir bien compris ta demande mais en gros si je comprend bien tu souhaites récupérer la valeure d'un champ posté ? mais cela n'est pas vraiment lié à phpnuke ?
En gros si ton champs s'appel et que ton formulaire poite sur un fichier (pour l'exemple) s'appelant test.php
Alors ensuite via le fichier test.php (lis les explications dans le texte commenté ! fichier de test à triturer dans tous les sens )
| Code: |
<?
// fichier test.php
// à placer dans la root de ton site
// phpnuke sinon cela te génerera des erreurs !
// utilises le pour tests ensuite sinon
// il faudra créér un module !
// on appel le mainfile.php
// toujours nécéssaire sous nuke pour l'appel
// des fonctions principales !
require_once('mainfile.php');
// ici pour récuperer le nom stocké dans le cookie du user !
// si pas user alors $username = adr IP ! pour l'exemple
cookiedecode($user);
$ip = getenv("REMOTE_ADDR");
$username = $cookie[1];
if (!isset($username)) {
$username = "$ip";
$guest = 1; // cette variable sert par exemple à savoir si invité ou pas !
}
include ('header.php');
// ici on check si ta variable transmise via le formulaire
// est ok si oui on affiche !
// si non un message d'erreur par exemple
// ou ce que tu veux
// tu peux aussi faire des comparaisons entre
// la valeur du champs DATA et celle du cookie pour
// sécuriser un peu ETC !
if (isset($_POST['DATAS'])) {
echo "<p>".$_POST[DATAS]."";
// là donc tu récuperes ta variable posté
echo "<p>$username\n";
// là tu affiches nom de user ou ip !
} else {
echo "<p>pas de nom d'utilisateur valide !\n";
// dons si variable transmise est vierge par exemple
// a toi de créer d'autre test de la valeur !
echo "<p>$username\n"; // une ip si pas de nom d'user
}
include ('footer.php');
?>
|
Voilà avec cet exemple tu peux déjà t'entrainé pour gérer le pseudo user et récupérer une valeur transmise via un formualire pour ensuite comparer avec le cookie user !
Je préfere récupérer la variable $_POST['DATAS'] plus propre que de transmettre via la barre d'adresse ...
@+ _________________ Bah on fait ce qu'on peut Hein Pas vrai ? ! et Vous !!!
(pas de demande d'aide via MP Merci ....) |
|
 |
|
|
nic1305

Novice
Inscrit le: Sep 04, 2004 Messages: 21
|
Posté le: 04.09.2004, 20:38:54 Sujet du message: |
|
|
alors là, pour mon premier message je pensais pas une reponse pareil vraiment rien a dire, c'est trop trop sympa de m'aider avec autant de details excellent et merci beaucoup
je vais etudier tout ca de plus pres, j'ai un peu modifié mon idée de depart parce qu'avec les popups j'ai peur de perdre des données de phpnuke donc je vais rester dans le "parent".
j'attaque ce soir mais je pense pas que ce soit gagné bien vite ;)
allez merci beaucoup, vraiment et j'espere vous ramener un beau module .... a voir  |
|
 |
|
|
nic1305

Novice
Inscrit le: Sep 04, 2004 Messages: 21
|
Posté le: 05.09.2004, 00:00:40 Sujet du message: |
|
|
re
alors voila je pense avoir bien avancé.
je me suis servi de la FAQ de Allopass qui aide pas mal.
par contre j'ai qq problemes avec phpnuke, on dirait qu'on peut que ouvrir la page /modules/Allopass/index.php parce que la page telechargement.php ca me fait ca :
| Citation: |
Warning: main(mainfile.php): failed to open stream: No such file or directory in /home/netsup/www/php/modules/Allopass/telechargement.php on line 2
Fatal error: main(): Failed opening required 'mainfile.php' (include_path='.:/usr/local/lib/php') in /home/netsup/www/php/modules/Allopass/telechargement.php on line 2 |
et je comprends pas pourquoi
voici les deux pages.
je vous explique rapidement ce qui se passe.
j'appelle la page index.php?id=xx donc on clik sur le lien qui selectionne l'id (un des telechargements securisés par allopass)...
on entre le code RECALL, et la variable DATAS est rempli toute seule avec le pseudo de la personne et on envoie le tout a ALLOPASS. A ce moment là, allopass renvoie 3 choix : OK et on lance le script qui telecharge le fichier, ERR, ou NOK pour dire que c pas bon, donc page d'erreur. Le premier probleme est le passage de la variable ID de la page index.php vers la page telechargement.php : je ne sais pas si allopass l'a fait passé d'une page a l'autre ou pas. j'ai posé la question a leur service teechnique, je devrais avoir la reponse demain ou apres demain.
voici les pages : j'aimerais donc savoir si je suis obligé de tout mettre dans l'index.php si y'a une restriction ou si c'est une erreur de ma part.
INDEX.PHP
| Code: |
<?php
require_once('mainfile.php');
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
$module_name = basename(dirname(__FILE__));
$pagetitle = "Allopass Mod. by NiC1305";
$index = 0;
include("header.php");
OpenTable();
$id=$_GET['id'];
?>
le script allopass qui passe pas ici, je sais pas pkoi
<?
CloseTable();
include("footer.php");
?> |
TELECHARGEMENT.PHP
| Code: | <?php
require_once('mainfile.php');
if (!eregi("modules.php", $PHP_SELF)) {
die ("You can't access this file directly...");
}
$module_name = basename(dirname(__FILE__));
$pagetitle = "Allopass Mod. by NiC1305";
$index = 0;
include("header.php");
OpenTable();
$id=$_GET['id'];
// on créer la requete SQL et on l'envoie
$req_payant = "SELECT * FROM netsup_allopass where id=\"$id\"";
// on envoie la requete
$res_payant = mysql_query($req_payant) or die('Erreur SQL Requete PAYANT !<br>'.$req_payant.'<br>'.mysql_error());
echo $id;
echo $doc_id;
echo $recall;
echo $username;
echo $pseudo;
echo $user;
echo $url_doc;
echo $datas;
$RECALL=$_GET["RECALL"];
if (trim($RECALL)=="") {
// La variable RECALL est vide, renvoi de l'internaute
// vers une page d'erreur
Header("Location: acces_vide.php");
}
// $RECALL contient le code d'accès
$RECALL = urlencode($RECALL);
// $AUTH doit contenir l'identifiant de VOTRE document
$AUTH = urlencode("51704/141048/677950");
// $FICHIER_LOCAL doit contenir le chemin et le nom du fichier
//à téléchargé présent sur votre site
$FICHIER_LOCAL = $data['url_doc'];
// $FICHIER_INTERNAUTE doit contenir le nom du fichier qui sera créé sur
//l'ordinateur de l'internaute
// Ce nom ne doit pas être forcément le même que le nom du fichier local !
$FICHIER_INTERNAUTE = $data['nom_local'];
// envoi de la requête vers le serveur AlloPAss
// dans la variable $r[0] on aura la réponse du serveur
// dans la variable $r[1] on aura le code du pays d'appel de l'internaute
//(FR,BE,UK,DE,CH,CA,LU,IT,ES,AT,...)
// Dans le cas du multicode, on aura également $r[2],$r[3] etc...
// contenant à chaque fois le résultat et le code pays.
$r=@file("http://www.allopass.com/check/vf.php4?CODE=$RECALL&AUTH=$AUTH&DATAS=$DATAS");
// on teste la réponse du serveur
if (ereg("ERR",$r[0]) || ereg("NOK",$r[0])) {
// Le serveur a répondu ERR ou NOK : l'accès est donc refusé
header("Location: erreur_faux.php");
}
// Le code est valide : on lance le téléchargement du fichier
if (file_exists($FICHIER_LOCAL)==true) {
if (strstr($HTTP_USER_AGENT,"MSIE"))
$attachment="";
else
$attachment=" attachment;";
header( "Content-type: application/octet-stream" );
header( "Content-Disposition:$attachment filename=$FICHIER_INTERNAUTE");
header( "Content-Description: File Transfert" );
readfile($FICHIER_LOCAL);
exit;
}
CloseTable();
include("footer.php");
|
dans cette page là, je fais des echo de tout ce que je peux pour voir ce qui est passé, c'est juste un test.
Merci d'avance a tous ;) |
|
 |
|
|
ckforum

Habitué

Inscrit le: Jan 06, 2004 Messages: 1653 Localisation: FRANCE
|
Posté le: 05.09.2004, 03:19:12 Sujet du message: |
|
|
Salut nic1305,
Non tu ne peux pas appeler le module de cette façon !
en fait tu demandes a ton fichier index.php de faire un require_once de mainfile.php dans son répertoire hors il n'existe pas dans ce répertoire car il est à la racine du nuke en fait quand tu créér un module tu dois l'appeler comme cela exemple !
| Code: | | http://www.tonsite.com/modules.php?name=Allopass&id=$id |
Par exemple, et là en fait le mainfile sera bien pris en compte !
Ensuite le reste posera aussi quelque probleme notement au niveau des fichiers appelés via les conditions selon ton code ils devront être à la racine et non dans ce module !
car tu n'indiques pas de chemin exemple pour lefichier acces_vide.php
appeler dans la condition if (trim($RECALL)=="") {
son chemin devra être si tu souhaites le laisser dans le répertoire du module
Header("Location: modules/Allopass/acces_vide.php");
sinon il sera placé à la racine du site !
Fais ausi bien attention a la Casse du nom des fichiers ...
@+ _________________ Bah on fait ce qu'on peut Hein Pas vrai ? ! et Vous !!!
(pas de demande d'aide via MP Merci ....) |
|
 |
|
|
|
|
|
|
|
|
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 Vous ne pouvez pas joindre des fichiers dans ce forum Vous pouvez télécharger des fichiers dans ce forum
|
| :: Powered by phpBB © 2001, 2005 phpBB Group :: |
|
|
|
|
|
|