Jump to content

Dax

Webmaster Régulier
  • Posts

    95
  • Joined

  • Last visited

Everything posted by Dax

  1. Bonjour, J'ai une question en rapport avec JSON et le parser... J'ai installé le script proposé sur cette page, mais en fin du tuto ils expliquent que l'on peut sécuriser les données reçues en utilisant un parser, seulement je ne comprends pas comment faire, j'ai inclus dans mes pages le fichier json2.js téléchargeable sur json.org mais ensuite je sèche... Je sais que c'est jData qu'il faut analyser pour voir si il contient un code malicieux mais comment faire ? Si quelqu'un peut m'expliquer l'intégration je le remercie d'avance.
  2. Swoosty SEO Tools , tout récemment accepté par Mozilla et donc ayant désormais le statut Public Pour une description plus complète suivre le lien dans ma signature
  3. C'est vrai j'aurais dû préçiser... le délai est certes long, mais je parlais en fait du pourcentage qu'ils prennent au passage, la commission est énorme ! En gros la moitié de ton travail leur revient. Perso, si j'étais toi je mettrai plus (+) en avant ta solution Paypal, et pour ceux qui ne connaissent pas Paypal je proposerai aussi allopass mais avec un une offre moins avantageuse, pour qu'au final çà te rapporte pareil... Je sais pas si je me suis bien fais comprendre mais en gros prenons un exemple : si sur ton site tu vends des options à la durée, proposes avec Paypal 2 / 15 jours, et avec Allopass 2 / 10 jours... A toi de voir, je ne sais pas ce que tu vends...
  4. Moi je dirais que le plus gros défaut c'est le reversement... Sinon c'est assez simple à intégrer et à tester gràce aux codes fictifs que tu peux utiliser pour faire tes tests. Lorsque j'ai eu besoin de les contacter, à chaque fois j'ai été très rapidement aidé donc au niveau support c'est très bien. Rien ne t'empèche de "rétrécir" les images d'origine, le tout c'est qu'il faut qu'on voit que tu te sert d'allopass... moi c'est ce que j'ai fais et çà ressemble à çà (255 x 135):
  5. Merci à tous les deux, le code de Dan est exactement ce qu'il me fallait ! Bravo pour la nouvelle version du site...
  6. Bonjour, Pourriez vous m'indiquer comment faire pour remplacer un nombre par une image lui correspondant. exemple pour mon code php (abrégé à l'essentiel) qui me donne le résultat suivant : $resultat = "1566842"; j'aimerai que le chiffre 1 soit remplacé par 1.gif , le chiffre 5 par 5.gif , etc... pour qu'au final çà donne un truc du genre : $resultat = "1566842"; ....... .... ...... $image="<img src="1.gif">"; $image.="<img src="5.gif">"; $image.="<img src="6.gif">"; echo "$image"; Je ne sais pas comment faire pour que $resultat soit analyser chiffre par chiffre... Si vous pouviez me guider ce serait sympa, merci.
  7. Je sais pas si çà va t'aider mais pour les fichiers .dtd utilisés pour les extensions de Firefox çà ressemble à çà : - dans le fichier xul tu appeles la valeur avec par exemple : &titre_cv; - et tu mets çà dans ton fichier dtd : <!ENTITY titre_cv "CV">
  8. Sinon il y a ce site qui vous permet de vérifier si vos partenaires respectent vos échanges de liens
  9. Si par hasard tu utilises Dreamweaver, ouvres ton fichier avec et fais un "Ctrl + J" et tu auras l'indication... Sinon essaye avec l'éditeur de code Notepad++
  10. SVP, quelqu'un peut m'orienter ? les comptes fictifs sont désormais correctements configurés, l'IPN est activé, le transfert de données désactivé, la redirection après paiement est OK, tout semble bon et pourtant... SANDBOX n'envoye pas les infos sur ma page de traitement (paypal_premium.php) car je ne reçois aucun des emails qui doivent être envoyés si j'ai une réponse de Paypal, peu importe laquelle. Voici mon script de test, pourriez vous me dire ce qu'il manque SVP ou bien si l'url www.sandbox.paypal.com est correcte, laquelle utilisez vous. Merci d'avance <? session_start(); include_once("admin/inc.php"); $pagename = $sitename; include_once("header_inc.php"); $tplList=new TplLoad; // read the post from PayPal system and add 'cmd' $req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // post back to PayPal system to validate $header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('www.sandbox.paypal.com', 443, $errno, $errstr, 30); // assign posted variables to local variables $item_name = $_POST['item_name']; $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; $payment_currency = $_POST['mc_currency']; $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; if (!$fp) { // HTTP ERROR } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { if ($payment_status=="Completed") { $sujet="VERIFIED IPN"; $texte="IPN est ok"; $from="nom_AT_site.com"; $adresse="receveur_AT_site.fr"; sendEmail($adresse, $from, $sujet, $texte); } elseif ($payment_status<>"") { $sujet="STATUT IPN AUTRE"; $texte="IPN est autre"; $from="nom_AT_site.com"; $adresse="receveur_AT_site.fr"; sendEmail($adresse, $from, $sujet, $texte); } } else if (strcmp ($res, "INVALID") == 0) { $sujet="IPN INVALID"; $texte="IPN est invalide"; $from="nom_AT_site.com"; $adresse="receveur_AT_site.fr"; sendEmail($adresse, $from, $sujet, $texte); } } fclose ($fp); } include_once("footer_inc.php"); ?>
  11. Bonjour à tous, J'ai besoin d'aide pour faire fonctionner l'IPN sur Sandbox car je n'y arrive pas et je ne vois pas ce qui me manque. Voici le code utilisé pour mon paiement: <form action="https://www.sandbox.paypal.com/fr/cgi-bin/webscr" method="post"> <input type="hidden" name="cmd" value="_xclick"> <input type="hidden" name="business" value="email_du_compte_vendeur_sur_sandbox"> <input type="hidden" name="item_name" value="Option Premium"> <input type="hidden" name="item_number" value="{$ad.ID}"> <input type="hidden" name="currency_code" value="EUR"> <input type="hidden" name="amount" value="2"> <input type="hidden" name="no_note" value="1"> <input type="hidden" name="return" value="http://www.mon-site.com/member.php"> <input type="hidden" name="notify_url" value="http://www.mon-site.com/paypal_premium.php"> <input type="image" src="http://www.sandbox.paypal.com/fr_FR/i/btn/x-click-but01.gif" name="submit" alt="Effectuez vos paiements via PayPal : une solution rapide, gratuite et sécurisée"> </form> il devrait donc y avoir un retour automatique lorsque le paiement est effectué (return) mais il ne se fait pas, c'est mon premier problème... Ensuite PayPal n'envoye pas les infos sur ma page de traitement (notify_url) donc je ne peux pas tester mon script, pourquoi il n'envoie rien ? Voici un aperçu de mon script, pourriez vous me dire si il manque quelque chose pour gérer les données de PayPal ? <? session_start(); include_once("admin/inc.php"); $pagename = $sitename; include_once("header_inc.php"); $tplList=new TplLoad; // read the post from PayPal system and add 'cmd' $req = 'cmd=_notify-validate'; foreach ($_POST as $key => $value) { $value = urlencode(stripslashes($value)); $req .= "&$key=$value"; } // post back to PayPal system to validate $header = "POST /cgi-bin/webscr HTTP/1.0\r\n"; $header .= "Content-Type: application/x-www-form-urlencoded\r\n"; $header .= "Content-Length: " . strlen($req) . "\r\n\r\n"; $fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30); // assign posted variables to local variables $item_name = $_POST['item_name']; $item_number = $_POST['item_number']; $payment_status = $_POST['payment_status']; $payment_amount = $_POST['mc_gross']; $payment_currency = $_POST['mc_currency']; $txn_id = $_POST['txn_id']; $receiver_email = $_POST['receiver_email']; $payer_email = $_POST['payer_email']; if (!$fp) { // HTTP ERROR } else { fputs ($fp, $header . $req); while (!feof($fp)) { $res = fgets ($fp, 1024); if (strcmp ($res, "VERIFIED") == 0) { if ($payment_status=="Completed") { q("update $ads_tbl set ad_is_premium = 1 where ad_id= $item_number"); // Get time for premium ad $currTime = time(); $periodPremium = 3600; $premiumExpire = $currTime + $periodPremium; q("update $ads_tbl set ad_premium_expire = $premiumExpire where ad_id= $item_number"); q("update $ads_tbl set ad_premium_warn = 1 where ad_id= $item_number"); echo "<blockquote>".LA_MEMBER_MAKE_PREM_DONE."</blockquote>"; } elseif ($payment_status<>"") { //error } } else if (strcmp ($res, "INVALID") == 0) { echo "<blockquote>".LA_PREMIUM_ERROR."</blockquote>"; } } fclose ($fp); } include_once("footer_inc.php"); ?> Merci d'avance de bien vouloir m'éclairer un peu.
  12. Bonjour à tous, J'aimerai savoir si il est possible de supprimer un cookie temporaire dans le navigateur de mes visiteurs... En fait je gère un site de petites annonces et j'ai placé le script Allopass dans la "zone membre", donc lorsqu'un membre s'identifie il est dirigé sur la page monsite.com/links.php où sont affichées toutes ses annonces, elles sont listées une par une et ligne par ligne avec pour chacune d'entre elles un espace pour entrer un code allopass qui permet, si le code est valide, de la transformer en annonce premium. C'est donc ici que j'utilise le paramètre supplémentaire DATAS pour récupérer l'ID de l'annonce pour laquelle on se sert d'un code allopass, et si le code est valide le membre est redirigé comme prévu vers la page monsite.com/premium.php?DATAS=(ID_de_l_annonce) qui enregistre sa demande et qui est uniquement accessible si on a utilisé un code valide car sinon il est redirigé vers la page d'erreur. Mon problème est que le cookie utilisé lors du premier paiement est valide jusqu'à ce que le membre ferme son navigateur, donc il lui est possible à partir du moment où il a eu accès à la requète protégée, de taper n'importe quelle url se finissant avec un ID corespondant à une de ses annonces pour que celle-ci soit transformée en premium sans avoir payé. J'aimerai donc pouvoir supprimer ce cookie dès que sa première demande a été acceptée mais comment faire ? J'ai cru comprendre qu'en insérant dans mon code php la ligne setcookie("nom-du-cookie"); il le supprimerai, est-ce exact ? encore faut-il que je connaisse le nom du cookie... Merci d'avance de bien vouloir m'éclairer et de m'orienter dans la bonne direction.
  13. J'ai essayé ta solution en remplacant avec ton code la deuxième ligne de contact.php mais çà provoquait des erreurs session_start(); j'ai donc un peu modifié et remplacé par celles-ci <? session_start(); $timer = time(); if (empty($_SESSION['maintenant'])) { $_SESSION['maintenant'] = $timer; } elseif ($_SESSION['maintenant'] > ($timer + 600)) { $off = 0; } else { $off = 1; } include_once("admin/inc.php"); Dans la template j'ai mis pour tester ces quelques lignes {if $off==0} afficher "contacter le membre" {/if} {if $off==1} cacher "contacter le membre" {/if} mais la fonction "contacter le membre" est toujours affichée même si le temps n'est pas écoulé... comment je fais pour comparer ? c'est un code à afficher dans la template ?
  14. Salut Tribords et merci pour ton indication. En fait je suis pas aussi bon que tu le crois, je suis juste un bidouilleur
  15. Bonjour à tous, Mes membres étant victimes de spammers, j'essaye d'empécher les visiteurs de mon site d'utiliser la fonction "Contacter le membre" plus d'une fois toutes les dix minutes en utilisant leur IP et l'heure de leur dernier message envoyé. J'arrive à enregistré ces données dans la BDD, mais je n'arrive pas à créer le code qui permet de vérifier dans la BDD si les dix minutes se sont bien écoulées pour l'IP de la personne qui souhaite utiliser la fonction "Contacter le membre". Est-ce que l'un d'entre vous saurait m'expliquer comment faire ? Voici la partie de code que j'ai ajouté à mon fichier contact.php pour stocker les infos de la personne qui contact un membre $time_interval = 600; $time_last_contacted = time(); $contact_time = $time_last_contacted + $time_interval; $lipaddress = getRemoteIP(); mysql_query("INSERT INTO phpclass_stop_spam (id, lContactEmail, lipaddress, time_interval, contact_time, time_last_contacted) VALUES ('', '$lContactEmail', '$lipaddress', '$time_interval', '$contact_time', '$time_last_contacted')")or die(mysql_error()); Voici le fichier contact.php avec le code précédent déjà intégré <? session_start(); include_once("admin/inc.php"); $tplContact=new TplLoad; $tplContact->assign("phpself",$_SERVER['PHP_SELF']); if ($set_contact_login_need) check_valid_user(""); // Refereer information $legal = 0; $lServerRef = explode("/",getenv("HTTP_REFERER")); $lUserid=getParam("user_id",""); $tplContact->assign("ad_owner",getParam("ad_owner","")); $tplContact->assign("id",getParam("id","")); $tplContact->assign("user_id",getParam("user_id","")); if ($set_img_validation==1) $tplContact->assign("image_validation",1); if (getParam("submit","")) { $errorStr=""; $tplContact->assign("contact_name",getParam("contact_name","")); $tplContact->assign("contact_email",getParam("contact_email","")); $tplContact->assign("contact_message",strip_tags(getParam("contact_message",""))); if (empty($lUserid)) $errorStr.="<li>".LA_ERROR_MSG5."</li>"; if (!validEmail(getParam("contact_email",""))) $errorStr.="<li>".LA_ERROR_MSG21."</li>"; if (getParam("contact_email","")=="") $errorStr.="<li>".LA_ERROR_MSG8."</li>"; if (getParam("contact_name","")=="") $errorStr.="<li>".LA_ERROR_MSG5."</li>"; if (!empty($set_ref) && !eregi("$set_ref",".$lServerRef[2].")) $errorStr.="<li>".LA_REF_FAILED."</li>"; if (getParam("contact_message","")=="") $errorStr.="<li>".LA_ERROR_MSG88."</li>"; if ($_SESSION["validate_sign_session"] <> $_REQUEST["validate_sign"] && $set_img_validation) $errorStr.="<li>".LA_IMG_VER_FAILED."</li>"; if (empty($errorStr)) { $sql = "select ad_owner,user_name,user_email from $ads_tbl,$usr_tbl where ad_owner=user_id AND user_id = $lUserid limit 1"; $sql_resultads = q($sql); $row=mysql_fetch_array($sql_resultads); $lRecieveEmail = $row["user_email"]; $lRecieveName = $row["user_name"]; $lContactMessage=strip_tags(getParam("contact_message","")); $lContactName=strip_tags(getParam("contact_name","")); $lContactEmail=strip_tags(getParam("contact_email","")); $sql="select ad_title,ad_id from $ads_tbl where ad_id='".getParam("id","")."'"; $res_title=q($sql); $row_title=mysql_fetch_array($res_title); $lAdTitle=$row_title["ad_title"]; $lAdID=$row_title["ad_id"]; $lEmailBody=formatString(LA_EMAIL_BODY,array(getParam("ad_owner",""), "$lContactName","$lContactMessage","$lContactEmail",getRemoteIp(), "$lAdTitle","$lAdID","$name_of_site","$url")); $lEmailTitle=formatString(LA_EMAIL,array(getParam("ad_owner",""), "$lContactName","$lContactMessage","$lContactEmail",getRemoteIp(), "$lAdTitle","$lAdID","$name_of_site","$url")); // mod to stop spam $time_interval = 600; $time_last_contacted = time(); $contact_time = $time_last_contacted + $time_interval; $lipaddress = getRemoteIP(); mysql_query("INSERT INTO phpclass_stop_spam (id, lContactEmail, lipaddress, time_interval, contact_time, time_last_contacted) VALUES ('', '$lContactEmail', '$lipaddress', '$time_interval', '$contact_time', '$time_last_contacted')")or die(mysql_error()); //--- end stop spam --- $tplContact->assign("message_sent",formatString(LA_SENT_MESSAGE,array("$lRecieveName"))); sendEmail($lRecieveEmail,$lContactEmail,$lEmailTitle,$lEmailBody); $tplContact->assign("contact_ok",1); $sql_2 = "update $usr_tbl set user_contacted = user_contacted + 1 where user_id = $lUserid"; $sql_resultupd = q ($sql_2); addToHistory(2,$lUserid,"",""); } else { $tplContact->assign("contact_fail",$errorStr); } } else { $sql_eier = "select user_name from $usr_tbl where user_id = $lUserid"; $result = q ($sql_eier); $row_contact = mysql_fetch_array($result); $tplContact->assign("ad_owner",$row_contact["user_name"]); $tplContact->assign("contact_name",$_SESSION["user_name"]); $tplContact->assign("contact_email", $_SESSION["user_email"]); } $tplContact->display("contact.tpl"); ?> Et voici les fichiers du script dont j'essaye de m'inspirer et qui permet de lancer un script seulement si le délai minimum est passé. <?php include_once("functions.php"); include_once($installed_config_file); db_connect(); $time_and_window = time() + TIME_WINDOW; $query="select * from scheduler WHERE fire_time <= $time_and_window"; $result = mysql_query($query); $scripts_to_run = array(); if (mysql_num_rows($result)) // check has got some { $i = 0; while ($i < mysql_num_rows($result)) { $id=mysql_result($result,$i, 'id'); $scriptpath=mysql_result($result,$i, 'scriptpath'); $time_interval=mysql_result($result,$i, 'time_interval'); $fire_time=mysql_result($result,$i, 'fire_time'); $time_last_fired=mysql_result($result,$i, 'time_last_fired'); $fire_time_new = $fire_time + $time_interval; $scripts_to_run[$i]="$scriptpath"; $query="UPDATE scheduler SET fire_time='$fire_time_new', time_last_fired='$fire_time' WHERE id='$id'"; mysql_query($query); $i++; } } db_close(); // run the scheduled scripts for ($i = 0; $i < count($scripts_to_run); $i++) include($scripts_to_run[$i]); ?> son fichier function.php <?php $installed_config_file = "config.inc.php"; function time_unit($time_interval) { global $app_name; $unit = array(0, 'type'); //check if its hours if ($time_interval <= (23 * 3600)) { $unit[0]=$time_interval/3600; $unit[1]="<font color=\"#ff0000\">hours</font>"; } else { // check if its days if ($time_interval <= (6 * 86400)) { $unit[0]=$time_interval/86400; $unit[1]="<font color=\"#FF8000\">days</font>"; } else { $unit[0]=$time_interval/604800; $unit[1]="<font color=\"#C00000\">weeks</font>"; } } $thedomain = $_SERVER['HTTP_HOST']; return $unit; } function db_connect() { global $db_link; @$db_link = mysql_connect(DBHOST, DBUSER, DBPASS); if ($db_link) _AT_mysql_select_db(DBNAME); return $db_link; } function db_close() { global $db_link; if ($db_link) $result = mysql_close($db_link); return $result; } function js_msg($msg) { echo "<script language=\"JavaScript\"><!--\n alert(\"$msg\");\n// --></script>"; } ?> Avant que le visiteur puisse avoir accès à la fonction "Contacter le membre" j'aimerai pouvoir vérifier dans la BDD si il y a droit, et si ce n'est pas le cas lui afficher un message d'information lui disant qu'il doit patienter dix minutes avant de pouvoir contacter de nouveau quelqu'un. Merci d'avance à ceux qui voudront bien m'éclairer.
  16. Bonjour à tous, pourriez vous m'indiquer comment faire une carte de france cliquable je ne comprends pas comment placer des liens aux bons endroits. merci d'avance
  17. OK, Merci Je vais jeter un coup d'oeil à toutes ces bonnes pratiques
  18. Salut à tous, J'ai passé pas mal de temps à modifier mon site pour qu'il soit aux normes W3C en utilisant le module HTML Validator pour Firefox (qui est d'ailleurs très utile), résultat toutes mes pages sont validées seulement les cadres adsense causent des erreurs et je pense que je ne peux rien y faire. Ma question est la suivante, est-ce que çà annule ce que j'ai fais pour rendre mon site accessible ? ou bien ce n'est pas un problème.
  19. Bonjour le Hub, J'ai un petit problème d'affichage concernant mon site. Lorsque l'on clique sur une photo pour la visualiser en grand la fenêtre qui s'ouvre dans Internet Explorer n'est pas assez grande et coupe la photo, alors que dans Firefox il n'y a pas de problème. J'ai essayé plusieurs changements avec "height" et "weight" dans les "table", les "td" les "tr" mais sans succès. Est-ce que vous auriez une solution pour moi SVP ? Merci d'avance Voici ce que j'ai avec Firefox Voici Internet Explorer qui coupe le bas de la photo ************************* ************************* Problème résolu !!
  20. Merci à ceux qui ont participé, le problème est réglé.. En fait j'avais tout faux depuis le début car j'éditais la mauvaise partie du code qui apparait seulement quand une option est cochée, rien à voir avec ma mise en page...
  21. Non, ta solution ne fonctionne pas. Voici les infos corespondant à ce que tu m'as demandé DIV.block DIV.inbox, DIV.blockmenu DIV.inbox {PADDING: 3px 6px} .pun P, .pun UL, .pun DL, DIV.blockmenu LI, .pun LABEL, #announce DIV.inbox DIV {PADDING: 3px 0} .pun H2 {PADDING: 4px 6px} #brdtitle p {padding-top:0px;}
  22. J'ai déjà essayé cette solution... Merci quand même .
×
×
  • Create New...