PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 18-05-2009 17:08:44

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Maintenant comment puis-je faire pour insérer le mail du futur membre dans mon autre table "ntux2_users " champ " mail "  ?

Svp

Hors ligne

#27 18-05-2009 17:18:59

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

Cela avance mais tu es encore loin du bout de tes peines... hmm

Il te faut trouver maintenant les fonctions :

setVars($attributes);
et
setNew();

Qui doivent se trouver dans une classe (ce sont des méthodes).
Peut être une classe user ?


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#28 18-05-2009 17:23:27

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Snif moi qui pensais avoir fait le plus gros sad
Effectivement dans le script il y a pas mal de class.atom.php , class.sitemap.php etc...

Je rgarde ça Merci bcp de m'aider en tout cas !

Hors ligne

#29 18-05-2009 17:33:30

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Euh j'ai trouvé...

<?php

if(!defined("SCRIPT_ROOT_PATH"))
{
  echo 'SCRIPT_ROOT_PATH not defined in class.config.php';
  exit();
}

/*
* Configuration file manager
* @class ConfigManager
* @package Kernel
*/

class ConfigManager
{
  // Config file by absolut path
  var $file = "";
  // config values loaded into class member
  var $config = array();
  // Has anyone of the config values been modified ?
  var $is_dirty = false;
  // has the config file been loaded successfully
  var $loaded = false;
 
  /*
  * Constructor with 1 parameter
  * @param string file : config file indicated by absolut path
  */

  function ConfigManager($file = "")
  {
    if (!empty($file) && file_exists($file))
    {
      $this->file = $file;
    }
    $this->loadConfig();
  }
 
  /*
  * Loads the config file after it has been specified
  * @param void
  * @return bool : TRUE if success
  */

  function loadConfig()
  {
    if(!$this->loaded)
    {
      include_once($this->file);
      if(isset($CONFIG))
      {
        $this->config =& $CONFIG;
        $this->loaded = true;
        return true;
      }
      else
      {
        include_once(SCRIPT_ROOT_PATH.'/conf/default.php');
        $this->config =& $default;
        return false;
      }
    }
    else if($this->loaded)
    {
      return true;
    }
    else
    {
      include_once(SCRIPT_ROOT_PATH.'/conf/default.php');
      $this->config =& $default;
      return false;
    }
  }
 
  /*
  * Method allowing to modify a specific config value, if it exists
  * @param string key
  * @param string value
  * @return bool : TRUE if success
  */

  function setVar($key, $value)
  {
    if(!empty($key) && isset($this->config[$key]))
    {
      if(!$this->isDirty())
      {
        $this->setDirty();
      }
      $this->config[$key] = $value;
      return true;
    }
    return false;
  }
 
  /*
  * Method allowing to modify a couple of config values
  * @param array : key is name of the config item, value is the new value
  * @return bool : TRUE if success
  */

  function setVars($array)
  {
    if(isset($array) && count($array) > 0)
    {
      foreach($array as $key => $value)
      {
        $this->setVar($key,$value);
      }
      return true;
    }
    return false;
  }

  /*
  * Method allowing to modify a couple of config values
  * @param array : key is name of the config item, value is the new value
  * @return bool : the requested value, else FALSE
  */

  function getVar($key)
  {
    if(isset($this->config[$key]))
    {
      return $this->config[$key];
    }
    return false;
  }
 
  /*
  * Returns the config array
  * @param void
  * @return &array : associative array defined in config file
  */

  function &getConfig()
  {
    return $this->config;
  }
 
  /*
  * Sets the config file as dirty
  * @param void
  * @return void
  */

  function setDirty()
  {
    $this->is_dirty = true;
  }
 
  /*
  * Checks if the config file is dirty
  * @param void
  * @return bool : true if dirty
  */

  function isDirty()
  {
    return $this->is_dirty;
  }
 
  /*
  * Returns the config file absolut path
  * @param void
  * @return string file
  */

  function getFile()
  {
    return $this->file;
  }

  /*
  * Updates the config file if it's dirty and writeable
  * @param void
  * @return bool : true if success
  */

  function updateConfig()
  {
    if($this->isDirty())
    {
      $file_string = "<"."?php\n\n";

      foreach ($this->config as $cle => $valeur)
      {
        $file_string .= '$CONFIG['."'".$cle."'".']'."\t=\t\"".$valeur."\";\n";
      }
     
      $file_string .= "\n".'?'.'>';
     
      $fh = fopen( $this->file,'w');
     
      if ($fh)
      {
        fputs($fh, $file_string, strlen($file_string) );
        fclose($fh);
        return true;
      }
      else
      {
        return false;
      }
    }
    else
    {
      return true;
    }
  }
}

/*
* Singleton class used to instanciate a config Manager
* @class MyConfigManager
* @package Kernel
*/

class MyConfigManager
{
  /*
  * reference on a static instance
  * @function getInstance
  * @return void
  */

  function &getInstance()
  {
    static $config_manager;
    if(!isset($config_manager))
    {
      $config_manager = new ConfigManager(SCRIPT_ROOT_PATH.'/conf/config.php');
    }
    return $config_manager;
  }
}

?>

Hors ligne

#30 18-05-2009 17:48:25

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

ARf maintenant je suis bloqué, plus personne..;:(

Hors ligne

#31 18-05-2009 17:49:20

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

Je ne pense pas que ce soit cela non.

Pense que tu fait là un exercice assez complexe, j'espère que tu comprends le cheminement...
(sinon, je m'use pour rien) smile


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#32 18-05-2009 17:50:21

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

oui oui, je comprends le principe, mais c'est vrai que ce n'est pas un petit script...
sad

Hors ligne

#33 18-05-2009 17:53:31

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

c'est bien par rapport à ce morceau de script ?

                  $user->setVars($attributes);
                  $user->setNew();

?

Hors ligne

#34 18-05-2009 17:57:22

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

Oui tout à fait.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#35 18-05-2009 18:02:04

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Ligne 160 ?

<?php

/*
* Displays either Add link or edit link form
* @param string url
* @param int id : default value is 0 (new site); id of the site to edit (editing a website)
* @return void
*/

function getLinkForm($url, $id = 0)
{
  global $CONFIG, $lang;
 
  if(@ini_get('allow_url_fopen') == 1) {
    $isSpam = file_get_contents('http://www.freeglobes.net/antispam/isspam.php?ip='.$_SERVER['REMOTE_ADDR'].'&email='.$email.'&url='.$url);
    if($isSpam == 'yes') {
      exit();
    }
  }
 
  $smarty =& TemplateEngine::getInstance();
  $lm =& get_manager("link");
  $cm =& get_manager("category");
  $um =& get_manager('user');
 
  $login = isset($_COOKIE['login']) ? $_COOKIE['login'] : '';
  $pass = isset($_COOKIE['pass']) ? $_COOKIE['pass'] : '';
 
  if(!empty($login) && !empty($pass))
  {
    $criteria = new CriteriaCompo(new Criteria('login',$login,'='),'AND');
    $criteria = new CriteriaCompo(new Criteria('pass',$pass,'='),'AND');
    $criteria->setLimit(1);
    $user =& $um->getObjects($criteria);
   
   
    $name = isset($_POST['name']) ? $_POST['name'] : "";
    $url_posted = isset($_POST['url']) ? $_POST['url'] : "ed2k://";
    $description = isset($_POST['description']) ? $_POST['description'] : "";
    $category = isset($_POST['category']) ? $_POST['category'] : 0;
    $url_image = isset($_POST['url_image']) ? $_POST['url_image'] : "";
    $email = $user[0]->getVar('email');
    $mail = '';
   
    if(isset($_POST['Metas']) && $url_posted != '' && $url_posted != 'ed2k://')
    {
      list($url_posted,$url_image,$nom_proprio,$mail,$name,$description) = preremplir_formulaire($url_posted,true);
    }

    $smarty->assign("form_action",$url);
    $smarty->assign("bouton",$lang['submit']);
    $smarty->assign('title',$lang['yessubmit']);
    $allow = $CONFIG['get_meta_tags'] == 1 ? true : false;
    $smarty->assign('allow_metadetection',$allow);
   
    $smarty->assign('name',$name);
    $smarty->assign('url_posted',$url_posted);
    $smarty->assign('description',$description);
    $smarty->assign('image',$url_image);
    $smarty->assign('email',$email);

    $categories =& $cm->getObjects(new Criteria('usable',1,'='),array('id'));

    if($categories && count($categories) > 0)
    {
      foreach($categories as $category)
      {
        $id = $category->getVar('id');
        $name = show_me_the_way($id);
        if ($id==$category)
        {
          $smarty->append("categories", array('name' => $name, 'id' => $id, 'selected' => 'selected="selected"'));
        }
        else
        {
          $smarty->append("categories", array('name' => $name, 'id' => $id, 'selected' => ''));
        }
      }
    }
    if($url_image != '' && $url_image != 'http://')
    {
      $image = $url_image;
    }
    else
    {
      $image = $CONFIG['site_url']."/themes/admin/images/nothumb.gif";
    }
    displayFckEditor($description);
    $smarty->assign("site_image", $image);
  }
}

/*
* Checks if all the fields submited were filled in correctly; then adds the website to database
* @param string url : useful for setting form action url
* @return void
*/

function addSite($url)
{
  global $CONFIG, $lang;
  $smarty =& TemplateEngine::getInstance();
  $lm =& get_manager("link");
  $um =& get_manager('user');
 
  $name = isset($_POST['name']) ? strip_tags($_POST['name']) : "";
  $url_posted = isset($_POST['url']) ? strip_tags($_POST['url']) : "ed2k://";
  $description = isset($_POST['description']) ? strip_tags($_POST['description']) : "";
  $category = isset($_POST['category']) ? strip_tags($_POST['category']) : 0;
  $url_image = isset($_POST['url_image']) ? strip_tags($_POST['url_image']) : "";
  $hits = 0;
  $prio = 0;
  $vote = 0;
  $uid = isset($_COOKIE['uid']) ? intval($_COOKIE['uid']) : 0;
 
  $login = isset($_COOKIE['login']) ? $_COOKIE['login'] : '';
  $pass = isset($_COOKIE['pass']) ? $_COOKIE['pass'] : '';
 
  $criteria = new CriteriaCompo(new Criteria('login',$login,'='),'AND');
  $criteria = new CriteriaCompo(new Criteria('pass',$pass,'='),'AND');
  $criteria->setLimit(1);
  $user =& $um->getObjects($criteria);
  $email = $user[0]->getVar('email');
 
  if ((!empty($name)) and (!empty($description)))
  {
    if($CONFIG['check_url'])
    {
      $test_url = checkurl($url_posted);
    }
    else
    {
      $test_url = true;
    }
   
    if ($test_url)
    {
      $parsed_url = parse_url($url_posted);
      $host_with_www = $parsed_url['host'];
      $host_without_www = str_replace('www','',$parsed_url['host']);
      $criteria = new CriteriaCompo(new Criteria('url','%'.$host_with_www.'%','LIKE'),'OR');
      $criteria->add(new Criteria('url','%'.$host_without_www.'%','LIKE'),'OR');
      $criteria->setLimit(1);
      $already_existing = $lm->getCount($criteria);
     
      if($already_existing == 0)
      {
        $link = $lm->create(true);
        $attributes = array('id' => '',
                  'uid' => $uid,
                  'name' => $name,
                  'url' => $url_posted,
                  'description' => $description,
                  'state' => 1,
                  'category' => intval($category),
                  'pr' => 0,
                  'image' => $url_image,
                  'hits' => 0,
                  'prio' => 0,
                  'vote' => 0,
                  'email' => $email);
        $link->setVars($attributes);
        $lm->insert($link);
       
        $feed_name = isset($_POST['feed_name']) ? $_POST['feed_name'] : "";
        $feed_url = isset($_POST['feed_url']) ? $_POST['feed_url'] : "";
        if(!empty($feed_name) && !empty($feed_url))
        {
          $fm =& get_manager('feed');
          $attributes = array('name' => strip_tags($feed_name),
                    'linkid' => intval($link->getVar('id')),
                    'feed' => strip_tags($feed_url));
                   
          $feed = $fm->create(true);
          $feed->setVars($attributes);
          $fm->insert($feed);
        }
       
        if($CONFIG['inform_admin_about_submission'])
        {
          $chemin = show_me_the_way($category);
         
          $mailm = new MailManager();
          $mailm->setTemplate('subject','admin_inform_subject.html');
          $mailm->setTemplate('body','admin_inform_basic_body.html');
          $mailm->assignArray(array('link_name' => $name,
                     'link_url' => $url_posted,
                     'link_description' => $description,
                     'link_category' => $chemin,
                     'link_pack' => 'MEMBER'));
          $mailm->setFrom($CONFIG['site_mail']);
          $mailm->setTo($CONFIG['site_mail']);
          $mailm->sendMail();
        }
       
        foreach($_POST as $key => $value)
        {
          unset($_POST[$key]);
        }
      }
      else
      {
        // Website already submitted
        $smarty->assign("link_warning",$lang['already_existing_link']);
      }
    }
    else
    {
      $smarty->assign("link_warning",$lang['url_notresponding']);
    }
  }
  else if (empty($name) xor empty($description))
  {
    $smarty->assign("link_warning",$lang['fill_allfields']);
  }
}

?>

Hors ligne

#36 18-05-2009 18:09:03

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

Non toujours pas.
Je pense que tu ne saisie pas bien ce que tu dois chercher.
Sachant qu'après avoir trouvé la fonction qui insère en BDD il va falloir l'adapter à tes besoins et peut-être modifier d'autres scripts...
(Je parle en connaissance de causes puisque je fait le même genre de chose sur une autre appli)
Tu vas avoir beaucoup de mal.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#37 18-05-2009 18:11:49

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

je dois laisser tomber ?
sad

Hors ligne

#38 18-05-2009 18:13:39

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

On peux peut-être faire autrement,

Si ton but n'est que d'enserrer l'email dans ta table, tu peux éventuellement le faire dans la fonction qui appelle
$user->setVars($attributes);
$user->setNew();

en ajoutant tes lignes un peu avant.


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#39 18-05-2009 18:15:02

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Pourquoi..aiguille moi stp

Hors ligne

#40 18-05-2009 18:31:20

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

oups pourquoi pas pardon...

sinon ce ne serait pas ça ?

<?php

/*
* Generates a random password if password is lost
* @param int length : length of the password to generate
* @return string : generated password
*/

function generatePassword ($length = 8)
{
  // start with a blank password
  $password = "";
  // define possible characters
  $possible = "0123456789bcdfghjkmnpqrstvwxyz";
  // set up a counter
  $i = 0;
  // add random characters to $password until $length is reached
  while ($i < $length)
  {
    // pick a random character from the possible ones
    $char = substr($possible, mt_rand(0, strlen($possible)-1), 1);
     
    // we don't want this character if it's already in the password
    if (!strstr($password, $char))
    {
      $password .= $char;
      $i++;
    }
  }
  // done!
  return $password;
}

/*
* Sending the new password generated by mail
* @param void
* @return void
*/

function sendPassword()
{
  global $lang, $CONFIG;
  $email = isset($_POST['email']) ? $_POST['email'] : '';
  $smarty =& TemplateEngine::getInstance();
 
  if(!empty($email))
  {
    $um =& get_manager('user');
   
    $criteria = new CriteriaCompo(new Criteria('email',$email,'='),'AND');
    $criteria->add(new Criteria('isadmin',0,'='),'AND');
    $criteria->setLimit(1);
    $users =& $um->getObjects($criteria);
   
    if(count($users) == 1)
    {
      // User found
      foreach($users as $user)
      {
        if(function_exists("mail"))
        {
          $new_password = generatePassword();
          $user->setVar('pass',md5($new_password));
          $um->insert($user);
         
          $mailm = new MailManager();
          $mailm->setTemplate('subject','lostpwd_mail_subject.html');
          $mailm->setTemplate('body','lostpwd_mail_body.html');
         
          $mail_infos = array('user_login' => $user->getVar('login'),
                    'user_password' => $new_password);
         
          $mailm->assignArray($mail_infos);
          $mailm->setFrom($CONFIG['site_mail']);
          $mailm->setTo($user->getVar('email'));
          $mailm->sendMail();
         
          $smarty->append('warning',sprintf($lang['email_sent'],$user->getVar('email')));
        }
        else
        {
          $smarty->append('warning',$lang['mail_notpossible']);
        }
         
      }
    }
    else
    {
      // User not existing
      $smarty->append('warning',$lang['invalid_email']);
    }
  }
}

?>

Hors ligne

#41 18-05-2009 18:44:03

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : [Résolu] Formulaire & checkbox

Non,
Mais essaie de faire ce que je t'ai dit précédemment.
Insère ton bout de code de mise à jour de ta table dans la fonction subscribe après la ligne 40.

(je vais devoir décrocher là)


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#42 19-05-2009 16:34:06

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : [Résolu] Formulaire & checkbox

Bonjour,

Alors j'ai procédé autrement...bcp plus simple ! lors de l'inscription du membre, il y a un menu pour proposer un lien, etc. etc ....et j'ai rajouté un petit formulaire que se valide par le biais d'un pop up et bien entendu cela s'incrémente dans ma bdd.
Je tiens à remercier les personnes ayant pu m'aider.
@ très bientôt

Anthony

Hors ligne

Pied de page des forums