Problème avec un script



  • bonjour,

    J'ai une erreur mysql sur une page de mon site:

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'senga162'@'localhost' (using password: NO) in /home/senga162/www/boutique/sample.php on line 28

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/senga162/www/boutique/sample.php on line 28

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/senga162/www/boutique/sample.php on line 29

    Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/senga162/www/boutique/sample.php on line 49

    Il s'agit d'un script d'affiliation, voici ce que je dois mettre sur les pages de mon site pour que le script marche :

    head :
    <?php
    header("Expires: Tue, 01 Jan 2020 07:15:30 GMT");
    header('Cache-Control: no-store, no-cache, must-revalidate');

    if(!$Ref_ID){setcookie("Ref_ID",$pid, time()+15724800);}

    // $pid = $HTTP_COOKIE_VARS['Ref_ID'];
    $pid = $_COOKIE['Ref_ID'];

    if ($aff)
    {
    $aff = ($aff);
    }
    elseif ($pid)
    {
    $aff = ($pid);
    }
    else
    {
    $aff = "NOAFFILIATE";
    }
    if (!isset($_GET['reload']))
    echo '<meta http-equiv=Refresh content="0;url=?reload=1">';

    ?>

    body : <?php echo $aff; ?>
    sert à afficher le nom de l'affilié

    le script ne marche pas, j'ai fais des tests avec un id d'affilié mais le nom ne s'affiche jamais
    voici la page où se trouve l'erreur : http://kits-ressources.com/boutique/sam … =andypandy
    voici la page où j'ai mis un bouton paypal avec le script : http://kits-ressources.com/ban.php

    D'après vous le reload1 est-il nécessaire ? Puis-je l'enlever sans crainte ?
    et quelles modifications dois-je faire pour que le nom d'affilié marche ?

    voici la portion de code de la page sample.php : (j'ai mis les numéros de lignes 28-29 et 49

    28 $refok = mysql_query("select aff_name from $mysqltable_aff where aff_name='$pid'");
    29 $refcheck = mysql_num_rows($refok);

    if ($refcheck)
    {
    $mysqlref = "select * from $mysqltable_aff where aff_name='$pid'";
    $resultref = mysql_query($mysqlref);
    $rowref = mysql_fetch_array($resultref);
    $affid = $rowref["aff_id"];
    $clicks = $rowref["clicks"];
    $clicks++;

    $updclk = mysql_query("update $mysqltable_aff set clicks = '$clicks' where aff_id = '$affid'");

    $unipdup = mysql_query("select clk_id from $mysqltable_clk where owner ='$affid' and remote ='".$_SERVER['REMOTE_ADDR']."'");
    $unipaudit = mysql_num_rows($unipdup);

    if (!$unipaudit)
    {
    $unipnew = mysql_query("insert into $mysqltable_clk values('NULL','$affid','".$_SERVER['REMOTE_ADDR']."')");
    }}
    49 mysql_close($mysql_connect);

    Merci de votre aide
    Cordialement
    Agnès Laura


  • Administrateur

    Access denied for user 'senga162'@'localhost' (using password: NO)

    => Le password ne semble pas bon.



  • bonjour,

    je ne pense pas que ce soit ça, j'ai bien accès à la base de donnée

    voici tout le code php de la page sample.php :

    <?php

    header("Expires: Tue, 01 Jan 1985 07:15:30 GMT");
    header("Cache-Control: no-cache, must-revalidate");
    header("Pragma: no-cache");
    @setcookie("Ref_ID",$pid,time()+2419200,"/","",0);

    if ($aff)
    {
    $aff = ($aff);
    }
    elseif ($pid)
    {
    $aff = ($pid);
    }
    else
    {
    $aff = "NOAFFILIATE";
    }

    $pid = $_GET['pid'];

    if ($pid)
    {
    $pid = trim($pid);
    $refok = mysql_query("select aff_name from $mysqltable_aff where aff_name='$pid'");
    $refcheck = mysql_num_rows($refok);

    if ($refcheck)
    {
    $mysqlref = "select * from $mysqltable_aff where aff_name='$pid'";
    $resultref = mysql_query($mysqlref);
    $rowref = mysql_fetch_array($resultref);
    $affid = $rowref["aff_id"];
    $clicks = $rowref["clicks"];
    $clicks++;

    $updclk = mysql_query("update $mysqltable_aff set clicks = '$clicks' where aff_id = '$affid'");

    $unipdup = mysql_query("select clk_id from $mysqltable_clk where owner ='$affid' and remote ='".$_SERVER['REMOTE_ADDR']."'");
    $unipaudit = mysql_num_rows($unipdup);

    if (!$unipaudit)
    {
    $unipnew = mysql_query("insert into $mysqltable_clk values('NULL','$affid','".$_SERVER['REMOTE_ADDR']."')");
    }}
    mysql_close($mysql_connect);
    }
    else
    {
    $pid = "NOAFFILIATE";
    }

    ?>

    je vais refaire le bouton pour voir
    Cordialement,
    Agnès Laura



  • comme caaptusss a dit, c'est un problème de connexion à la bdd. Soit ton identifiant, soit le mot de passe, soit le nom de la base de données.

    Regarde plus de ce côté là.



  • Warning: mysql_query() [function.mysql-query]: Access denied for user 'senga162'@'localhost' (using password: NO) in /home/senga162/www/boutique/sample.php on line 28

    Un access denied sur un mysql_query c'est pas un soucis de login//pass, mais soit un oublie de connexion à la base de donnée car il est pas connecté, soit un soucis de droits (pas possible au vu des requêtes). De plus un soucis de login//pass provoque une erreur de ce style normalement.

    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'test'@'localhost' (using password: YES) in /home/equinox/www/althalus/page.php on line 8

    Et justement, il n'y a nul part de mysql_connect…

    Tu le fais sur une autre page qui inclut celle là ? Sinon tu sais où est l'erreur.

    Et au passage quand on colle du code sur le post, ça se met entre les balises [ code ] [/ code ], merci ;)



  • Bonjour,

    bon, j'avoue que je n'ai toujours rien compris
    mais je viens de tester le script sur un autre hébergeur et ça marche
    l'erreur mysql est toujours là mais le nom de l'affilié s'affiche correctement
    je pense que cette erreur n'est pas vraiment importante vu qu'il s'agit d'une page d'exemple toute faite et que sur les autres page de mon site où j'ai mis le script il n'y a pas d'erreur

    et je me rappellerai le```
    pour les prochaines fois, je ne le savais pas

    Cordialement,
    Agnès Laura



  • bah qd même une erreur mysql c'est pas rien. Tu pourras pas utiliser les requêtes vers ta bdd.

    Petite question : connais-tu php ou utilises tu juste des scripts tout fait ?



  • Bonjour,

    je ne connais pas le php, j'utilise juste les scripts
    j'arrive juste à les modifier parfois quand je trouve la réponse sur internet et à reconnaître certaines portions (en général, pas bien compliquées)

    pour l'erreur mysql il s'agit de leur page d'exemple, le problème qui était vraiment important était que le nom de l'affilié s'affiche, ce qui voulait dire que les cookies et tout le reste marchaient

    En essayant sur un autre hébergement ça a marché (pour le nom d'affilié), mais je crois que ça dépend aussi des options php autorisées sur les serveurs

    cordialement,
    Agnès Laura



  • Au vue de ta page mise sur le forum, je vise pour l'option que ta page de test n'a pas de ligne pour se connecté à ta base mysql. D'où l'erreur SQL



  • Bonjour,

    Oui, vous avez raison je pense que c'est ça car sur les pages de mon site où j'avais inséré le code d'affiliation, il n'y avait pas d'erreur

    par contre pour l'affichage du pseudo d'affilié, pensez-vous qu'il s'agisse des options (ou fonctions autorisées) de php liées aux serveurs des hébergeur ? car sur un autre hébergement ça marche. à moins qu'on puisse changer quelque chose dans le script

    cordialement,
    Agnès Laura



  • Pas trop compris ton problème d'affichage :/

    Par contre, je te conseillerai d'apprendre un minimum le PHP, chose pas grandement difficile au vu des sites qui existe (dont notamment le siteduzero), ça t'aiderai grandement pour toutes tes utilisations / corrections / modifications du php :)



  • Bonsoir,

    à force on y arrive :D on apprend sur le tas :D

    cordialement
    Agnès Laura



  • Bonjour,

    ça y est j'ai réussi à enlever l'erreur, il s'agissait simplement de leur entête, j'ai mis le bon script et ça marche

    par contre le nom de l'affilié ne marche toujours pas
    voici le code pour afficher ce nom :```
    <?php echo $aff; ?>

    est-ce le php de freeheberg qui est bridé ? et freeheberg a-t-il la possibilité de le débrider, car sur mon nas et un autre serveur, le nom de l'affilié s'affiche correctement
    
    Cordialement,
    Agnès Laura


  • Non il n'est bridé que pour les fonctions qui exécutent des commandes directement sur le serveur. Donc rien qui n'est censé te gêner dans l'état actuel de ton code.

    Il ne fonctionne pas sur quel page ton nom d'affilier ? Car si c'est le ta page sample.php que tu as copié collé ici, c'est normal, car la variable $aff n'est pas définie.

    Prendre des bouts de scripts php c'est bien beau, mais si ça marche pas c'est normal, c'est comme une tarte, si tu prend juste les fruits, c'est plus une tartes ;) (ma comparaison est débile, mais l'idée est là :p)



  • Bonjour,

    non, non, ce n'est pas un bout de code, c'est le code indiqué par le concepteur et il marche sur mes autres hébergements :
    le header :

    <?php
    header("Expires: Tue, 01 Jan 2020 07:15:30 GMT"); 
    header('Cache-Control: no-store, no-cache, must-revalidate');
    
    if(!$Ref_ID){setcookie("Ref_ID",$pid, time()+15724800);}
    
    // $pid = $HTTP_COOKIE_VARS['Ref_ID'];
    $pid = $_COOKIE['Ref_ID'];
    
                  if ($aff)
                  {
                       $aff = ($aff);
                                      }
                  elseif ($pid)
                  {
                        $aff = ($pid);
                                      }
                  else
                  {
                       $aff = "NOAFFILIATE";
                                      }
    if (!isset($_GET['reload']))
    echo '<meta http-equiv=Refresh content="0;url=?reload=1">';
    
    ?>
    

    le body :

    <?php echo $aff; ?>
    

    cordialement,
    Agnès Laura



  • Sauf que dans ce que tu viens de coller là, il n'y a à aucun moment une initialisation des variables $aff et $pid. Elles sont utilisées avant même d'avoir une valeur dedans..

    Si tu lance directement la page qui contient ton code, $pid et $aff seront systématiquement vide au début, et $aff sera toujours égal à NOAFFILIATE..
    Donc c'est la page que tu lance directement ça (donc le script en entier) ? Ou c'est le sample.php que tu as fait ?

    Car là j'ai un peu de mal :/



  • Bonjour,

    je veux bien, mais alors pourquoi ça marche sur ovh et sur mon nas (qui soit dit en passant n'est pas ultra-perfectionné) ?

    que ce soit en lançant le code directement ou en passant par la page d'exemple
    c'est la même chose : sur freeheberg ça ne marche pas et sur les autres ça marche

    je ne comprends pas, je me dis que c'est le php de freeheberg
    il n'y a pas de raison que ça marche pour les autres et pas ici

    cordialement,
    Agnès Laura
    Mais ce n'est pas grave, ça m'embête mais je vais sûrement changer d'hébergement, cordialement



  • Moi ce que je ne comprends pas plutôt c'est qu'il n'y a aucunes raisons que ca marche chez les autres en fait ><


Log in to reply