Aller au contenu

Niko

Actif
  • Compteur de contenus

    25
  • Inscrit(e) le

  • Dernière visite

Messages postés par Niko

  1. Le principal reproche que j'ai à lui faire, c'est d'instaurer de mauvaise habitudes, c'est à dire avec le style directement dans le code html, positionner les elements en absolute par défaut .... et le gestionnaire de css ne montre pas assez/mal les possibilités de ceux ci, la maniere dont sont faites les catégories est assez bizarre je trouve

    Ceci reste un avis personnel, on peut tout à fait coder proprement avec dreamweaver, mais par defaut, c'est pas vraiment beau ce qu'il fait ...

  2. Sinon tu me fais peur et me decourage ! On a pas le droit à l'erreur, et on doit faire un truc parfait... mwarrrfff ! Moi qui croyait que la perfection n'existait pas ! wacko.gif

    C'est peut etre aussi une question de crédibilité, surtout vis à vis du but et de la fonction du site, il vends pas des tomates rouges ou jaunatres :-) :D

  3. a a.rouge {
    font-size : 1em;
    text-decoration: none;
    font-weight: bold;
    color: #1994d8;
    outline: none;
    }

    a.rouge {color: #ff6600;
    }

    a a.rouge ne veut rien dire ...

    tu spécifie d'abord le general, puisque la derniere regle lue prend le dessus :

    a {
    font-size : 1em;
    text-decoration: none;
    font-weight: bold;
    color: #1994d8;
    outline: none;
    }
    a.rouge {color: #ff6600;
    }

    et ensuite tu rajoute ta regle spécifique ...

  4. J'ai remarqué un bug lors de l'affichage des erreurs du validateur xhtml du w3c ..

    en effet quand on utilise des caracteres illegaux tel que ou il indique la bonne ligne d'erreur, mais se trompe gravement de caractere à l'affichage :

    Je laisse une page non corrigeé jusqu'à ce soir pour que vous voyez de quoi je parle :

    http://validator.w3.org/check?verbose=1&ur...roduits/legers/

    Line 85, column 26: non SGML character number 146

    or ce n'est pas là : à <ici> la

    l'erreur est là : à l<ici>a

    Je me trompe ?

  5. onjour à tous

    J'ai un petit probleme,

    j'ai une class mail que j'aimerais transformer,

    Au lieu de choisir la priorité du message, j'aimerais pouvoir choisir parmis plusieurs destinataires possibles :

    partie formulaire :

    Code:

    <form action="formmail.php" method="post" enctype="multipart/form-data" name="form">
    <fieldset>
    <label for="priority">Destinataire :</label>
    <select name="priority" id="priority" size="1" class="select">
    <option value="1" class="texte">test1_AT_test.org</option>
    <option value="2" class="texte">test2_AT_test.org</option>
    <option value="3" class="texte">test3_AT_test.org</option>
    </select>
    <label for="email">Expéditeur :</label>
    <input type="text" name="email" id="email" size="35" class="texte"/>
    <label for="subject">Sujet :</label>
    <input type="text" name="subject" id="subject" size="35" class="texte"/>
    <label for="msg">Message : </label>
    <textarea rows="12" name="msg" id="msg" cols="40" class="texte"></textarea>
    <label for="NomFichier">Fichier joint : </label>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" class="texte"/>
    <input name="NomFichier" id="NomFichier" type="file" size="16" class="texte" />
    <input type="submit" value="Envoyer" class="bouton" />
    </fieldset>
    </form>

    Class mail

    Code:

    <?
    /* PARAMETRAGE DU SCRIPT */
    /* ENTREZ VOTRE ADRESSE EMAIL ENTRE LES GUILLEMETS*/

    $dest="test_AT_test.org";



    Form Mail +
    Loïc Bresler
    Script permettant d'envoyer un mail grâce à un formulaire sur un site. Ce qu'il fait de plus que les autres
    c'est qu'il gère la priorité du message, les copies et permet d'envoyer un fichier joint si l'hébergeur le permet
    (en gros presque tous sauf Online et Nexen)
    Le script utilise une version de la classe Mail() développée par Leo West (lwest.free.fr) et modifiée par mes soins.



    DESCRIPTION

           this class encapsulates the PHP mail() function.
           implements CC, Bcc, Priority headers
    */



    class Mail
    {

           var $sendto= array();
           var $from, $msubject;
           var $acc= array();
           var $abcc= array();
           var $aattach= array();
           var $priorities= array( '1 (Highest)', '2 (High)', '3 (Normal)', '4 (Low)', '5 (Lowest)' );


    // Mail contructor

    function Mail()
    {
           $this->autoCheck( true );
    }


    /*                autoCheck( $boolean )
    *                activate or desactivate the email addresses validator
    *                ex: autoCheck( true ) turn the validator on
    *                by default autoCheck feature is on
    */

    function autoCheck( $bool )
    {
           if( $bool )
                   $this->checkAddress = true;
           else
                   $this->checkAddress = false;
    }


    /*                Subject( $subject )
    *                define the subject line of the email
    *                $subject: any valid mono-line string
    */

    function Subject( $subject )
    {
           $this->msubject = strtr( $subject, "\r\n" , "  " );
    }


    /*                From( $from )
    *                set the sender of the mail
    *                $from should be an email address
    */

    function From( $from )
    {

           if( ! is_string($from) ) {
                   echo "Class Mail: error, From is not a string";
                   exit;
           }
           $this->from= $from;
    }


    /*                To( $to )
    *         set the To ( recipient )
    *                $to : email address, accept both a single address or an array of addresses
    */

    function To( $to )
    {

           // TODO : test validité sur to
           if( is_array( $to ) )
                   $this->sendto= $to;
           else
                   $this->sendto[] = $to;

           if( $this->checkAddress == true )
                   $this->CheckAdresses( $this->sendto );

    }


    /*                Cc()
    *                set the CC headers ( carbon copy )
    *                $cc : email address(es), accept both array and string
    */

    function Cc( $cc )
    {
           if( is_array($cc) )
                   $this->acc= $cc;
           else
                   $this->acc[]= $cc;

           if( $this->checkAddress == true )
                   $this->CheckAdresses( $this->acc );

    }



    /*                Bcc()
    *                set the Bcc headers ( blank carbon copy ).
    *                $bcc : email address(es), accept both array and string
    */

    function Bcc( $bcc )
    {
           if( is_array($bcc) ) {
                   $this->abcc = $bcc;
           } else {
                   $this->abcc[]= $bcc;
           }

           if( $this->checkAddress == true )
                   $this->CheckAdresses( $this->abcc );
    }


    /*                Body()
    *                set the body of the mail ( message )
    */

    function Body( $body )
    {
           $this->body= $body;
    }


    /*                Send()
    *                fornat and send the mail
    */

    function Send()
    {
           // build the headers
           $this->_build_headers();

           // include attached files
           if( sizeof( $this->aattach > 0 ) ) {
                   $this->_build_attachement();
                   $body = $this->fullBody . $this->attachment;
           }

           // envoie du mail aux destinataires principal
           for( $i=0; $i< sizeof($this->sendto); $i++ ) {
                   $res = mail($this->sendto[$i], $this->msubject,$body, $this->headers);
                   // TODO : trmt res
           }

    }


    /*                Organization( $org )
    *                set the Organisation header
    */

    function Organization( $org )
    {
           if( trim( $org != "" )  )
                   $this->organization= $org;
    }


    /*                Priority( $priority )
    *                set the mail priority
    *                $priority : integer taken between 1 (highest) and 5 ( lowest )
    *                ex: $m->Priority(1); => Highest
    */

    function Priority( $priority )
    {

           if( ! intval( $priority ) )
                   return false;

           if( ! isset( $this->priorities[$priority-1]) )
                   return false;

           $this->priority= $this->priorities[$priority-1];

           return true;

    }


    /*                Attach( $filename, $filetype )
    *                attach a file to the mail
    *                $filename : path of the file to attach
    *                $filetype : MIME-type of the file. default to 'application/x-unknown-content-type'
    *                $disposition : instruct the Mailclient to display the file if possible ("inline") or always as a link ("attachment")
    *                        possible values are "inline", "attachment"
    */

    function Attach( $filename, $filetype='application/x-unknown-content-type', $disposition = "inline" )
    {
           // TODO : si filetype="", alors chercher dans un tablo de MT connus / extension du fichier
           $this->aattach[] = $filename;
           $this->actype[] = $filetype;
           $this->adispo[] = $disposition;
    }


    /*                Get()
    *                return the whole e-mail , headers + message
    *                can be used for displaying the message in plain text or logging it
    */

    function Get()
    {
           $this->_build_headers();
           if( sizeof( $this->aattach > 0 ) ) {
                   $this->_build_attachement();
                   $this->body= $this->body . $this->attachment;
           }
           $mail = $this->headers;
           $mail .= "\n$this->body";
           return $mail;
    }


    /*         ValidEmail( $email )
    *         return true if email adress is ok - regex from Manuel Lemos (mlemos_AT_acm.org)
    *                $address : email address to check
    */

    function ValidEmail($address)
    {
           if( ereg( ".*<(.+)>", $address, $regs ) ) {
                   $address = $regs[1];
           }
            if(ereg( "^[^@  ]+@([a-zA-Z0-9\-]+\.)+([a-zA-Z0-9\-]{2}|net|com|gov|mil|org|edu|int)\$",$address) )
                    return true;
            else
                    return false;
    }


    /*                CheckAdresses()
    *         check validity of email addresses
    *         if unvalid, output an error message and exit, this may be customized
    *                $aad : array of emails addresses
    */

    function CheckAdresses( $aad )
    {
           for($i=0;$i< sizeof( $aad); $i++ ) {
                   if( ! $this->ValidEmail( $aad[$i]) ) {
                           echo "Class Mail, method Mail : invalid address $aad[$i]";
                           exit;
                   }
           }
    }


    /********************** PRIVATE METHODS BELOW **********************************/



    /*                _build_headers()
    *                 [INTERNAL] build the mail headers
    */

    function _build_headers()
    {

           // creation du header mail

           $this->headers= "From: $this->from\n";

           $this->to= implode( ", ", $this->sendto );

           if( count($this->acc) > 0 ) {
                   $this->cc= implode( ", ", $this->acc );
                   $this->headers .= "CC: $this->cc\n";
           }

           if( count($this->abcc) > 0 ) {
                   $this->bcc= implode( ", ", $this->abcc );
                   $this->headers .= "BCC: $this->bcc\n";
           }

           if( $this->organization != ""  )
                   $this->headers .= "Organization: $this->organization\n";

           if( $this->priority != "" )
                   $this->headers .= "X-Priority: $this->priority\n";

    }



    /*
    *                _build_attachement()
    *                internal use only - check and encode attach file(s)
    */
    function _build_attachement()
    {
           $this->boundary= "------------" . md5( uniqid("myboundary") ); // TODO : variable bound

           $this->headers .= "MIME-Version: 1.0\nContent-Type: multipart/mixed;\n boundary=\"$this->boundary\"\n\n";
           $this->fullBody = "This is a multi-part message in MIME format.\n--$this->boundary\nContent-Type: text/plain; charset=us-ascii\nContent-Transfer-Encoding: 7bit\n\n" . $this->body ."\n";
           $sep= chr(13) . chr(10);

           $ata= array();
           $k=0;

           // for each attached file, do...
           for( $i=0; $i < sizeof( $this->aattach); $i++ ) {

                   $filename = $this->aattach[$i];
                   $basename = basename($filename);
                   $ctype = $this->actype[$i];        // content-type
                   $disposition = $this->adispo[$i];

                   if( ! file_exists( $filename) ) {
                           echo "Class Mail, method attach : file $filename can't be found"; exit;
                   }
                   $subhdr= "--$this->boundary\nContent-type: $ctype;\n name=\"$basename\"\nContent-Transfer-Encoding: base64\nContent-Disposition: $disposition;\n  filename=\"$basename\"\n";
                   $ata[$k++] = $subhdr;
                   // non encoded line length
                   $linesz= filesize( $filename)+1;
                   $fp= fopen( $filename, 'r' );
                   $data= base64_encode(fread( $fp, $linesz));
                   fclose($fp);
                   $ata[$k++] = chunk_split( $data );

    /*
                   // OLD version - used in php < 3.0.6 - replaced by chunk_split()
                   $deb=0; $len=76; $data_len= strlen($data);
                   do {
                           $ata[$k++]= substr($data,$deb,$len);
                           $deb += $len;
                   } while($deb < $data_len );

    */
           }
           $this->attachment= implode($sep, $ata);
    }


    } // class Mail

    $subject=StripSlashes($subject);
    $msg=StripSlashes($msg);
    $msg="Message depuis votre site web:
    $msg";
    $m= new Mail; // create the mail
           $m->From( "$email" );
           $m->To( "$dest");    
           $m->Subject( "$subject" );
           $m->Body( $msg);        // set the body
    if ($email1!="") {
           $m->Cc( "$email1");
      }
           $m->Priority($priority);  
    if ("$NomFichier_name"!="") {
      copy("$NomFichier","upload/$NomFichier_name");
      $m->Attach( "upload/$NomFichier_name", "application/octet-stream" );
      }
           $m->Send();
    if ("$NomFichier_name"!="") {
    Unlink("upload/$NomFichier_name");   }    
    ?>
    <?php echo"Ca roule";?>

    J'ai essayé de faire une dérivée de la function Priority( $priority )

    mais ça ne l'a pas fait :-/

    Est ce que quelqu'un pourrait m'aider ?

    Merci !

  6. Ah ok, je ne savais pas pour urlencode, merci de me l'apprendre :-)

    sinon pour le reste ?

    je me demandais si il y avait un moyen plus simple de connaitre la taille d un tableau multidimensionnel, et de pouvoir exporter l ensemble sous la forme ?toto1=babala&toto2=sdfsdfsdf&nbtoto=545 ...

  7. Bonjour,

    je dois envoyer vers flash le resultat d'un requete, le probleme, c'est que je ne sais pas combien d'elements vont sortir .. et que je dois le savoir pour que dans flash je puisse faire une boucle for n fois pour récuperer les variables, il y a t il une solution plus élégante que celle ca :

    Code:

    $i=0;

    while($data = mysql_fetch_array($req)){

    echo "&adresse_facture".$i."=". utf8_encode(urlencode($data['mavar']));

    $i++;

    }

    // on recupere la variable pour connaitre le nombre d'elements ...

    echo "&nb="$i;

    car j 'ai lu que mysql_fetch_array est déja un array multidimensionnel,

    j ai jeté un oeil sur http_build_query, mais ca ne marche pas avec easyphp déja ...

  8. Bonjour à tous

    J'ai un petit probleme, sur l'application que je suis en train de develloper,

    à un moment, je recois dans une page php, via post, des variables de flash,

    j'aimerais les inserer dans la base de donnée, mais au niveau du parsage de l'instruction, j'ai quelques petits soucis :

    dans base, table client, il y a un champ identifiant,

    je recois une variable identifiant via post, que je transforme en variable session,

    ( d'ailleurs au niveau sécurité, si vous avez des conseils, comme j'y connais pas grand chose ....)

    $HTTP_SESSION_VARS["identifiant"] = $HTTP_POST_VARS["identifiant"]; 
    $rqt = "INSERT INTO 'client' (identifiant) VALUES  "$HTTP_SESSION_VARS['identifiant']")";

    seulement, la 2 eme ligne $rqt ... ben, n'est pas bonne, je ne sais comment l'écrire pour que les données soit bien prise en compte ....

    merci de m'avoir lu

  9. Dan > Salut Niko, et bienvenue à bord !

    Merci :-)

    je connaissais le site depuis longtemps,

    mais j'avais pas encore eu le temps de m y inscrire

    malgré les nombreuses personnes talentueuses qui y participe,

    et que je connais via mailling liste et blog :-)

     if (get_magic_quotes_gpc ()) {
      foreach ($_POST as $key => $value) {
        $_POST[$key] = stripslashes ($value);
      }
    }

    Merci, c'est exactement le type de logique dont j'avais besoin :-)

    Faut dire qu'apprendre php à la volée, en faisant l application, c'est pas la meilleur methode :-p

    Bonne journée

  10. Bonjour à tous

    J'ai une petite question, via flash j'envoie des données à une page php, en post,

    et je lui demande de créer un fichier xml, il me crée bien le fichier ...

    mais il rajoute des \ avant les ' ou ", surement pour ne pas avoir de probleme de parse, mais comment, je fait pour qu'il écrive le fichier sans faire cela ?

    Ce qui est bizarre c'est qu'en local avec easyphp, ca marche bien ....

    code php :

    Code:

    $nbvisites est une variable que j'incremente ....
    $fflash = "flash".$nbvisites.".xml";
    // on verifie si il existe deja
    if (file_exists($fflash)) {
      // si oui, on l'efface, et on le recrée
     $fp = fopen($fflash,"w");
      fputs($fp, $HTTP_POST_VARS["Xflash"]);
      fclose($fp);

    } else {
      // sinon on le crée
     $fp = fopen($fflash,"a");
      fputs($fp, $HTTP_POST_VARS["Xflash"]);
      fclose($fp);
    }

    Si quelqu'un a une solution, merci :-)

×
×
  • Créer...