des données qui ne s'écrivent pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : des données qui ne s'écrivent pas

besoin encore d'aide

par tepe » 17 mars 2009, 17:27

Personne ne veut plus m'aider, ais-je fait une erreur quelque part, si c'est le cas merci de me dire laquelle que je ne me retrouve plus le bec dans l'eau.

Mais si quelqu'un veut bien reprendre la suite cela me dégageré d'un poids pour pouvoir faire ce dossier.

Merci d'avance

par tepe » 10 mars 2009, 17:00

Le code php est celui fournis avec une ressource Flash et j'essaie de modifier celui-ci pour écrire dans une base de données fournie pour phpMyNewsletter de Gregory Kokanosky http://gregory.kokanosky.free.fr/v4/phpmynewsletter/
Tu dis que "mon interface de newsletter n'affiche pas la nouvelle adresse mail", peut être est-ce là dessus qu'il faudrait se pencher. Dans quel cas ton interface affiche-t-elle une adresse email ?
Uniquement quand je rentre une adresse avec la page faire pour cela?
http://annadrey.com/maquette/01/pmnl/
J'ai essayer de comprendre cette page mais y'a plein d'include dedans, alors là je ne comprend absolument pas qui fait référence a quoi?

Je comprends que cela commence a faire beaucoup pour une aide, mais pourrait tu m'aiguiller sur ce que je doit chercher dans ces fichiers
<?

if(file_exists("include/config.php")){
	include("include/config.php");
	include("include/db/db_".$db_type.".inc.php");
}
	include("include/lib/libconfig.php");
	include("include/interface.php");
	include("include/lib/libnewsletter.php");
	include("admin/include/function.php");


html_header("phpMyNewsletter");

if(file_exists("include/config.php")){
   print newsletter_list(null, true);
  } else {
  // in this case dberror() is not defined anywhere
  // so let's add a dumb function
  function dberror(){};
  include "include/lang/english.php";
  echo error_msg(translate("NEWSLETTER_NOT_YET"));
}
html_footer();

?>
Merci pour ton aide

par Ryle » 10 mars 2009, 16:27

Ben en fait, tout ça ne nous dit pas à quoi servent tes champs... et du coup on peut difficilement deviner ce qu'il faut mettre dedans :)

Tu dis que "mon interface de newsletter n'affiche pas la nouvelle adresse mail", peut être est-ce là dessus qu'il faudrait se pencher. Dans quel cas ton interface affiche-t-elle une adresse email ?

En sachant ce qu'il te faut obtenir tu pourras peut être trouver plus facilement ce qu'il te faut renseigner :)

par tepe » 10 mars 2009, 15:49

Euh... bah non... y a rien qui se fait en automatique si tu le spécifies pas... (ouais, php c'est rien qu'un gros feignant ! ;))
Dommage ce serait plus simple pour moi!

[quote=La logique voudrait que tu ais quelque chose du genre :
$req = "INSERT INTO pmnl_email (email, list_id, hash) VALUES ('".$varemail."', '".$varlist."', '".$varhash."')";  
avec $varlist et $varhash devant préalablement être renseignées par les valeurs que tu souhaites faire figurer en base :)

(et comme je sais pas ce que tu es sensé trouvé dans ces champs, je peux malheureusement pas aller plus loin :))[/quote]
Ou puis-je trouver ces infos, dans la base de données? Ce que j'ai!
list_id, type = int(11), Attributs = vide, Null = 0
hash, type varchard(255), Attributs = vide,Null = vide

As tu besoin d'autre chose

par Aureusms » 10 mars 2009, 15:44

Merci

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`, `list_id`, `hash`) VALUES ('{$varemail}', '', '')
Si j'ai compris la bonne formulation serait

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`) VALUES ('$varemail')
je ne demande d'insérer que la valeur $varemail dans le champ `email` de la table `pmnl_email` le reste des champs `list_id` et `hash` devrait se remplir automatiquement?

Pourtant le résultat est toujours le même = list_id = 0 et hash = vide.

Pouvez-vous continuer a essayer de m'expliquer?
Pour le début ;

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`) VALUES ('$varemail')
Je suis d'accord masi si tu ne renseignes pas les colonnes liste_id et hash c'est normal qu'elles soient vides. Visiblement les valeurs par défaut de liste_id est 0 est hash est rien du tout, liste_id doit être un chiffre et hash du texte. Après je ne peux pas t'en dire plus car je ne sais ce qu'il représente dans ta base. Il faut que tu les récupères quelque part puis les insérer comme suit :
 //Valeurs aléatoires et imaginées
$list_id = 3;
$hash = "vide";
$requete = "INSERT INTO pmnl_email (email, list_id, hash) VALUES ('$varemail', '$list_id', '$hash')";
mysql_query ($requete);

par Ryle » 10 mars 2009, 15:40

Euh... bah non... y a rien qui se fait en automatique si tu le spécifies pas... (ouais, php c'est rien qu'un gros feignant ! ;))

Si tu te contentes de ne renseigner que la valeur de "email" dans ton enregistrement, seule cette valeur là sera renseignée, les autres resteront null :)

La logique voudrait que tu ais quelque chose du genre :
$req = "INSERT INTO pmnl_email (email, list_id, hash) VALUES ('".$varemail."', '".$varlist."', '".$varhash."')";  
avec $varlist et $varhash devant préalablement être renseignées par les valeurs que tu souhaites faire figurer en base :)

(et comme je sais pas ce que tu es sensé trouvé dans ces champs, je peux malheureusement pas aller plus loin :))

par tepe » 10 mars 2009, 15:31

Merci

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`, `list_id`, `hash`) VALUES ('{$varemail}', '', '')
Si j'ai compris la bonne formulation serait

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`) VALUES ('$varemail')
je ne demande d'insérer que la valeur $varemail dans le champ `email` de la table `pmnl_email` le reste des champs `list_id` et `hash` devrait se remplir automatiquement?

Pourtant le résultat est toujours le même = list_id = 0 et hash = vide.

Pouvez-vous continuer a essayer de m'expliquer?

par Aureusms » 10 mars 2009, 01:43

Autres choses :

Pourquoi tu insères tes données avec deux {+} (voir {$varemail})

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`, `list_id`, `hash`) VALUES ('{$varemail}', '', '')";
et tu ne recherches pas {$varemail} mais $varemail

Code : Tout sélectionner

(WHERE email = \''.$varemail.'\''; )
. C'est normal ?

par Ryle » 10 mars 2009, 00:13

Concernant tes champs vides, la requête

Code : Tout sélectionner

INSERT INTO `pmnl_email` (`email`, `list_id`, `hash`) VALUES ('{$varemail}', '', '')
revient à dire que tu veux insérer un enregistrement dans la table "pmnl_email", avec pour valeur email = $varemail, list_id = '' et hash = ''.
Voilà pourquoi tes champs sont vide, et accessoirement, comment les remplir ;)

des données qui ne s'écrivent pas

par tepe » 09 mars 2009, 20:40

Bonjour

Je ne maîtrise pas bien le php et après avoir passé de nombreuse heure a essayer seul de résoudre mon probème, sans succès, je me tourne vers vous.

J'ai une base de donnés qui contient une table "pmnl_email" avec 3 champs, "email", list_id" et "hash" (phpMyNewsletter).

Pour alimenter ces champs j'ai ce code php.
/// réception de l'adresse mail envoyé par l'utilisateur :
$varemail = $_POST['email'];

/// vérification pour éviter la double inscription :
// on effectue une requete dans la table newsletter de la base de données
$requete = 'SELECT `email` FROM `pmnl_email` WHERE email = \''.$varemail.'\''; 
$result = mysql_query($requete); 
$num = mysql_num_rows($result); 
// si pas inscrit alors on insère l'adresse dans la table newsletter:
if($num == 0) {
$req = "INSERT INTO `pmnl_email` (`email`, `list_id`, `hash`) VALUES ('{$varemail}', '', '')"; 
$insert = mysql_query($req); 
// si enregistrement ok :
if($insert == 1) {
function readTextFile($file){
    if(!($fp=@fopen($file,"r"))) return false;

    //lecture du fichier
    $fileContent="";
    while (!feof($fp)) {
        $fileContent.= fgets($fp, 1024);
    }

    //fermeture du fichier
    if(!fclose($fp)) return false;

    return($fileContent);
}
Je rencontre le problème suivant: le champ "email" est bien rempli dans la table, mais le champ "list_id" est toujours a 0, et le champ "hash" est complétement vide.
La conséquence c'est que mon interface de newsletter n'affiche pas la nouvelle adresse mail.
J'ai essayer plusieurs manip mais mon incompétence a vite atteint ses limites et je ne comprend pas d'ou peut venir l'erreur, de moi, de l'écriture du php?

Si je ne suis pas assez clair, n'hésité pas a demander des précisions.

Merci d'avance de votre aide.