Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1502 connectés 

 

 

 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5  6  7  8  9  10  11  12
Auteur Sujet :

Tuto des scripts PHP les plus demandés et des astuces.

n°1253850
Je@nb
Kindly give dime
Posté le 26-11-2005 à 18:09:17  profilanswer
 

Reprise du message précédent :
Si et sablotron c super lent ...

mood
Publicité
Posté le 26-11-2005 à 18:09:17  profilanswer
 

n°1253860
art_dupond
je suis neuneu... oui oui !!
Posté le 26-11-2005 à 18:19:17  profilanswer
 

pour utiliser un 'string' xml il faut utiliser
 
$xml->loadXML($ma_chaine_xml);


---------------
oui oui
n°1254039
zapan666
Tout est relatif
Posté le 27-11-2005 à 02:46:19  profilanswer
 

Pour appeller une fonction PHP à partir d'une feuille XSLT :  
 
déclarer le namespace php dans la feuille xslt

Code :
  1. xmlns:php="http://php.net/xsl'


 
Appeler la fonction dans le fichier xslt via

Code :
  1. php:function(lenomdemafonction)


Fonction enregistré au préalable dans le fichier php via

Code :
  1. void XSLTProcessor :: registerPhpFunctions ( )


 
Vous pouvez aussi passer des arguments à votre fonction dans le fichier xslt !

Code :
  1. <xsl:value-of select="php:function("mafonction", string(madonneeXML))"/>


 
 
Un p'tit liens dessus :  
http://classes.scriptsphp.net:81/a [...] T-en-PHP-5
 
et un autre ici :  
http://www.zend.com/php5/articles/php5-xmlphp.php


---------------
my flick r - Just Tab it !
n°1254332
art_dupond
je suis neuneu... oui oui !!
Posté le 27-11-2005 à 19:59:32  profilanswer
 

super les tutos :)
 
comment j'ai galéré à essayer d'apprendre à faire des trucs à partir de la doc php :sweat:

n°1254584
rufo
Pas me confondre avec Lycos!
Posté le 28-11-2005 à 11:41:22  profilanswer
 

merci de l'indo pour le XSL :)

n°1257926
art_dupond
je suis neuneu... oui oui !!
Posté le 03-12-2005 à 01:23:54  profilanswer
 

youp,
 
 
j'ai un objet "dom" que je passe en session:
 

Code :
  1. class Cl_XML {
  2. private $xml;
  3. private $xPath;
  4. private $xfile;
  5. function __construct($file) {
  6.  if(!file_exists($file))
  7.  {
  8.   throw new Exception($file.' not found', 1);
  9.  }
  10.  $this->xfile = $file;
  11.  $this->xml = new DOMDocument;
  12.  if(!$this->xml->load($file))
  13.  {
  14.   throw new Exception($file.' not loaded', 2);
  15.  }
  16.  $this->xPath = new DOMXPath($this->xml);
  17. } // fin __construct()
  18. function __wakeup()
  19. {
  20.  unset($this->xml);
  21.  unset($this->xPath);
  22.  self::__construct($this->xfile);
  23. } // fin __wakeup()
  24.         ...
  25. }


 
 
bon je sais pas si c'est du beau code, mais c'était pour rappeler qu'il faut utiliser  __sleep et __wakeup dans ce cas-ci
 
(trois heures que je cherche pourquoi ca n'allait pas :sweat: )


---------------
oui oui
n°1273986
hpenhp
Hopital Psychiatrique
Posté le 28-12-2005 à 10:38:25  profilanswer
 

Salut les geeks,
 
j'ai un probleme avec le script d'authentification de berserk: (23 - Faire une page de connexion sécurisé !... )
 
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 14
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 20
 
Notice: Undefined variable: arrOut in c:\program files\easyphp\www\secretdb(2).php on line 23
 
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp\www\secretdb(2).php:14) in c:\program files\easyphp\www\secretdb(2).php on line 35
 
j'utilise easy php 1.8,
quelqu'un sait à quoi c'est du? thx! :jap:

n°1274005
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 11:23:24  profilanswer
 

hpenhp a écrit :

Salut les geeks,
 
j'ai un probleme avec le script d'authentification de berserk: (23 - Faire une page de connexion sécurisé !... )
 
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 14
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 20
 
Notice: Undefined variable: arrOut in c:\program files\easyphp\www\secretdb(2).php on line 23
 
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp\www\secretdb(2).php:14) in c:\program files\easyphp\www\secretdb(2).php on line 35
 
j'utilise easy php 1.8,
quelqu'un sait à quoi c'est du? thx! :jap:


 
Simplement c'est que ta requete n'est pas bonne. Si tu veux savoir quoi exactement tu fais ceci . echo mysql_error() après le mysql_query(...);
Les "arrOut" c'est que la variable n'a pas été initialisé. tu peux faire ceci .
arrOut = array();
 
Quel est ta requete?

n°1274120
hpenhp
Hopital Psychiatrique
Posté le 28-12-2005 à 16:48:14  profilanswer
 

salut vieille branche! :sol:  
 
déja je voudrais te remercier pour ton tutoriel qui j'en suis sur t'as pris du temps, et qui est très bien ficelé donc déja .. big up le vieux! :bounce:  
 
ensuite, j'ai un petit reproche, c'est que tes scripts sont peut etre bien fait (quoi qu'il ne marche pas chez moi, mais c'est peut etre du au fait que..j'y viens) , il faudrait que tu expliques un peu plus pour chaque script/tutoriel l'usage que l'on peut en faire.. par exemple ce script d'authentification, tu nous le balance un peu comme une chaussette dans la soupe.. non?  
 
enfin voila je vais pas trop t'en vouloir non plus surtout si j'attends une réponse de ta part  :D  
 
allez je te balances mon test de ton script pépé! :p  :  
 

Code :
  1. <?
  2. session_start();
  3. $rssConn = mysql_connect('localhost','root','test');
  4. mysql_select_db('auth',$rssConn);
  5.    $arrOut = array(); 
  6.    $rs = null;
  7.    $data = array();
  8.    $isIdentifie = false;
  9.    $idUtilisateur = null;
  10. $req = "SELECT name, password,user id FROM autorized_user";
  11. echo mysql_error();
  12. $rs = mysql_unbuffered_query($req,$rssConn);
  13. while($data = mysql_fetch_row($rs)){   
  14.    $arrOut['name'][$i] = $data[0]; //login     
  15.    $arrOut['password'][$i] = $data[1]; //password     
  16.    $arrOut['user id'][$i] = $data[2];//idutilisateur     
  17.    $i++;
  18. }
  19. mysql_free_result($rs); //je libere le recordset de la memoire  
  20. //Je compare avec ce qu'il y a dans le tableau de resultat.
  21.    for($i=0;$i<count($arrOut);$i++){   
  22.    if($arrOut['name'][$i] == $_POST['name'] && $arrOut['password'][$i] == $_POST['password']){       
  23.    $isIdentifie = true;       
  24.    $idUtilisateur = $arrOut['id'][$i];//Récupére l'id de l'utilisateur identifié     
  25.    }
  26. }
  27. if($isIdentifie===true){   
  28.     $_SESSION['user id'] = $idUtilisateur;   
  29.     header('Location:index1.php');
  30.     exit();
  31.     }else{
  32.         header('Location:erreur.php');
  33.             exit();
  34.             }
  35.             mysql_close($rssConn);
  36. ?>


 
et l'erreur qui s'en suit, tiens prends ca! :sweat:  :
 
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 15
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 21
 
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp\www\secretdb(2).php:15) in c:\program files\easyphp\www\secretdb(2).php on line 36

 
 
 :kaola: merci :jap:  
 

n°1274141
flo850
moi je
Posté le 28-12-2005 à 17:24:17  profilanswer
 

remplace  

Code :
  1. $rs = mysql_unbuffered_query($req,$rssConn);


par

Code :
  1. $rs = mysql_unbuffered_query($req,$rssConn) or die(mysql_error());


 
idem pour le myslq_select_db


---------------

mood
Publicité
Posté le 28-12-2005 à 17:24:17  profilanswer
 

n°1274144
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 17:28:43  profilanswer
 

hpenhp a écrit :

salut vieille branche! :sol:  
 
déja je voudrais te remercier pour ton tutoriel qui j'en suis sur t'as pris du temps, et qui est très bien ficelé donc déja .. big up le vieux! :bounce:  
 
ensuite, j'ai un petit reproche, c'est que tes scripts sont peut etre bien fait (quoi qu'il ne marche pas chez moi, mais c'est peut etre du au fait que..j'y viens) , il faudrait que tu expliques un peu plus pour chaque script/tutoriel l'usage que l'on peut en faire.. par exemple ce script d'authentification, tu nous le balance un peu comme une chaussette dans la soupe.. non?  
 
enfin voila je vais pas trop t'en vouloir non plus surtout si j'attends une réponse de ta part  :D  
 
allez je te balances mon test de ton script pépé! :p  :  
 

Code :
  1. <?
  2. session_start();
  3. $rssConn = mysql_connect('localhost','root','test');
  4. mysql_select_db('auth',$rssConn);
  5.    $arrOut = array(); 
  6.    $rs = null;
  7.    $data = array();
  8.    $isIdentifie = false;
  9.    $idUtilisateur = null;
  10. $req = "SELECT name, password,user id FROM autorized_user";
  11. echo mysql_error();
  12. $rs = mysql_unbuffered_query($req,$rssConn);
  13. while($data = mysql_fetch_row($rs)){   
  14.    $arrOut['name'][$i] = $data[0]; //login     
  15.    $arrOut['password'][$i] = $data[1]; //password     
  16.    $arrOut['user id'][$i] = $data[2];//idutilisateur     
  17.    $i++;
  18. }
  19. mysql_free_result($rs); //je libere le recordset de la memoire  
  20. //Je compare avec ce qu'il y a dans le tableau de resultat.
  21.    for($i=0;$i<count($arrOut);$i++){   
  22.    if($arrOut['name'][$i] == $_POST['name'] && $arrOut['password'][$i] == $_POST['password']){       
  23.    $isIdentifie = true;       
  24.    $idUtilisateur = $arrOut['id'][$i];//Récupére l'id de l'utilisateur identifié     
  25.    }
  26. }
  27. if($isIdentifie===true){   
  28.     $_SESSION['user id'] = $idUtilisateur;   
  29.     header('Location:index1.php');
  30.     exit();
  31.     }else{
  32.         header('Location:erreur.php');
  33.             exit();
  34.             }
  35.             mysql_close($rssConn);
  36. ?>


 
et l'erreur qui s'en suit, tiens prends ca! :sweat:  :
 
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 15
 
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\secretdb(2).php on line 21
 
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp\www\secretdb(2).php:15) in c:\program files\easyphp\www\secretdb(2).php on line 36

 
 
 :kaola: merci :jap:


 [:papy] Bendiou voila un jeune corbake encore au duvet qui se la jou aigles royal.
 
- Quand je parle d'autentification c'est d'avoir une zone privé pour toi. Le principe de login et mot de pass => connexion.
- Ton erreur SQL ne va pas s'afficher car tu as mal placé le echo mysql_error() il faut le placer après $rs = mysql_unbuffered_query($req,$rssConn);
affiche moi l'erreur qui en retourne.

Message cité 1 fois
Message édité par Berceker United le 28-12-2005 à 17:30:16
n°1274148
naceroth
Posté le 28-12-2005 à 17:37:44  profilanswer
 

Berceker United a écrit :

[:papy] Bendiou voila un jeune corbake encore au duvet qui se la jou aigles royal.
 
- Quand je parle d'autentification c'est d'avoir une zone privé pour toi. Le principe de login et mot de pass => connexion.
- Ton erreur SQL ne va pas s'afficher car tu as mal placé le echo mysql_error() il faut le placer après $rs = mysql_unbuffered_query($req,$rssConn);
affiche moi l'erreur qui en retourne.


 
Manque un _ entre user et id dans la requête je suppose :)
 
//Edit : zut, pas quoter la bonne personne. Pas grave, dieu reconnaïtra les siens :D

Message cité 1 fois
Message édité par naceroth le 28-12-2005 à 17:39:04
n°1274157
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 17:57:42  profilanswer
 

naceroth a écrit :

Manque un _ entre user et id dans la requête je suppose :)
 
//Edit : zut, pas quoter la bonne personne. Pas grave, dieu reconnaïtra les siens :D


Exacte, donc il devrait voir comme erreur comme quoi le champ n'existe pas.

n°1274161
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 18:16:31  profilanswer
 

D'ailleur il faut que je pense à le remplir un peut ce topic sa dor :/


Message édité par Berceker United le 28-12-2005 à 18:16:44
n°1274163
skeye
Posté le 28-12-2005 à 18:19:25  profilanswer
 

...et si tu commençais par corriger toutes tes fautes de français... :whistle:


---------------
Can't buy what I want because it's free -
n°1274176
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 19:12:57  profilanswer
 

skeye a écrit :

...et si tu commençais par corriger toutes tes fautes de français... :whistle:


Je vais te donner la réponse de mon chef de projet qui à une façon de code un peut  [:jofusion] et qu'en je fais une remarque il me dit " m'en fou Tant que ça fonctionne" donc je te repond "Tant que tu me comprend" [:ddr555]

n°1274177
skeye
Posté le 28-12-2005 à 19:13:55  profilanswer
 

Comprendre et avoir envie de lire sont des choses différentes...plus je te lis moins j'ai envie de continuer.:o


---------------
Can't buy what I want because it's free -
n°1274179
Berceker U​nited
PSN : berceker_united
Posté le 28-12-2005 à 19:17:33  profilanswer
 

skeye a écrit :

Comprendre et avoir envie de lire sont des choses différentes...plus je te lis moins j'ai envie de continuer.:o


Exacte :jap: mais je vais essayer de prendre un moment pour corriger cela mais en ce moment je suis un projet perso donc en là c'est  [:x-oni]

n°1285939
erwan83
Du Shift DEL tu te méfieras !
Posté le 17-01-2006 à 20:19:11  profilanswer
 

salut à tous... super tutoriel... effectivement je viens d'etre confronté au cas du gars qui appuie 2 fois sur le bouton "insertion"
Mais ceci étant mon problème est autre. j'ai une base de données couplée à un moteur de recherche (de ma conception si si si) en VB qui scanne des URL et ensuite, insertion dans la base de données.
Ensuite j'ai la commande "nettoyage" qui attribue les catégories, shoote les infos inutiles, trouve la langue de la page etc etc...
Je viens de me lancer dans un script pour virer les doublons. ce script copie la table dans une autre table et je voudrais qu'il vire les doublons. ensuite, il efface la table d'origine et reinjecte des données propres...
 
le soucis, c'est que ça marche pas à 100%
ce script me dit "vous avez un doublons pour telle ou telle donnée mais n'agit pas comme je voudrais.
voici ZE script...
 

Spoiler :

<?php
$db="...";
$link = mysql_pconnect("...", "...","..." );
mysql_select_db($db , $link);
 
$sql = mysql_query("CREATE TABLE `...`.`moteur2` (`date` timestamp NOT NULL default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,`insertion` text NOT NULL ,`categorie` text NOT NULL ,`type` text NOT NULL ,`navigateur` text NOT NULL ,`url` text NOT NULL ,`serveurenvoi` text NOT NULL ,`ipenvoi` text NOT NULL ,`motcle` text NOT NULL ,`description` text NOT NULL ,`match` text NOT NULL ,`cle` bigint( 20 ) NOT NULL AUTO_INCREMENT ,`truc` text NOT NULL ,PRIMARY KEY ( `cle` ) ) ENGINE = MYISAM DEFAULT CHARSET = utf8" );
 
$result = mysql_query("TRUNCATE moteur2 " );
$sql = mysql_query("INSERT INTO `moteur2` (`url`) VALUES ('zzz')" );
$result = mysql_query("SELECT * FROM moteur order by 'match' DESC " );
$num_rows = mysql_num_rows($result);
 
if($result) {
while($row = mysql_fetch_array($result)) {
 
$blanc =" ";
$motcle=$row["motcle"];
$categorie = $row["categorie"];
$type = $row["type"];
$insertion = $row["insertion"];
$url = $row["url"];
$type = $row["type"];
$categorie = $row["categorie"];
$motcle = $row["motcle"];
$description = $row["description"];
$match = $row["match"];
$truc = $truc;
print("<br>" );
 
// pour ce qui suit j'aurais p'tet besoin qu'on me le raccourcisse... c'est là que ca marche mal
// en effet il me trouve le NB de doublons mais il les ecrit quand meme dans moteur2....
 
 
  $select = " SELECT count(cle) FROM `moteur` WHERE `url` LIKE '($url)' ";
  $result2 = mysql_query($select,$link)  or die ('Erreur8 : '.mysql_error() );
  $row = mysql_fetch_row($result2);
  $affic = $row[0];
  if ($affic == 0)    
  {  
  $droit="0";
  $sql = mysql_query("INSERT INTO `moteur2` (`categorie`, `type`, `insertion`, `url`, `motcle`, `description`, `match`, `truc`) VALUES ('$categorie', '$type', '$insertion', '$url', '$motcle', '$description', '$match', '$truc')" );
  }
  else    
  {    
  $droit="1";
  print("doublon pour ".$url."... " );
  print("<br>" );
  }    
}
}
mysql_close($link);
 
// ------------------- merci
 
print("<br><br>---------------------------------------------------------" );
 
$db="...";
$link = mysql_pconnect("...", "...","..." );
mysql_select_db($db , $link);
 
$result = mysql_query("TRUNCATE moteur " );
$result = mysql_query("SELECT * FROM moteur2 order by 'match' DESC " );
$num_rows = mysql_num_rows($result);
 
if($result) {
while($row = mysql_fetch_array($result)) {
 
$motcle=$row["motcle"];
$categorie = $row["categorie"];
$type = $row["type"];
$insertion = $row["insertion"];
$url = $row["url"];
$type = $row["type"];
$categorie = $row["categorie"];
$motcle = $row["motcle"];
$description = $row["description"];
$match = $row["match"];
$truc = $row["truc"];
echo  $row["match"];
print("<br>" );
echo  $row["description"];
print("<br>" );
echo  $row["url"];
print("<br>" );
 
$sql = mysql_query("INSERT INTO `moteur` (`categorie`, `type`, `insertion`, `url`, `motcle`, `description`, `match`, `truc`) VALUES ('$categorie', '$type', '$insertion', '$url', '$motcle', '$description', '$match', '$truc')" );
}
}
mysql_close($link);
?>


 
 
EN TOUT CAS UN GRAND MERCI A TOUS...


Message édité par erwan83 le 17-01-2006 à 20:22:22

---------------
http://www.ypikay.com
n°1337215
Berceker U​nited
PSN : berceker_united
Posté le 02-04-2006 à 00:53:56  profilanswer
 

Au lieu de créer une table tu peux créer une table temporaire !
As tu testé ce que te retournais $row[0] et $affic ?

n°1337276
zapan666
Tout est relatif
Posté le 02-04-2006 à 12:42:20  profilanswer
 

tiens, autre truc que je viens d'apprendre :  
 
On a un objet qui gère les visiteurs :  

Code :
  1. // class Visiteur ( class.visiteur.php )
  2. class Visiteur {
  3. var $login;
  4. $var is_connected = false;
  5. function Visiteur() {
  6. }
  7. function getLogin() {
  8. return $this->login;
  9. }
  10. function setLogin($l) {
  11. $this->login = $l;
  12. $this->is_connected = true;
  13. }
  14. function estConnecte() {
  15. return $this->$is_connected;
  16. }
  17. }


 
On cree l'objet si besoin dans la session

Code :
  1. // A mettre au debut de chaune de vos pages
  2. include ('class.visiteur.php'); // si le fichier est inclu après session_start ça ne marche pas
  3. session_start();
  4. $visiteur = &$_SESSION['visiteur'];
  5. if (!is_object($visiteur)) {
  6. $visiteur = new Visiteur();
  7. }


et op, l'objet devient persistent !
Changement de page et op l'objet est encore là.
C'est pratique : il est possible de faire un objet Utilisateur contenant le login du visiteur etc
 
plus besoin de faire $_SESSION['login'], $_SESSION['pseudo'] etc... tout est dans un même objet
 
 
On peut donc interoger l'objet :  

Code :
  1. // Dans une page :  
  2. if ( $visiteur->estConnecte()) {
  3. echo $visiteur->getLogin();
  4. }


 
ou le modifier :  

Code :
  1. // Page de login (Qui fait la connexion du visiteur
  2. $visiteur->setLogin('mon_login');


 


Message édité par zapan666 le 02-04-2006 à 13:18:03

---------------
my flick r - Just Tab it !
n°1337279
Berceker U​nited
PSN : berceker_united
Posté le 02-04-2006 à 12:54:35  profilanswer
 

Oui c'est une technique mais attention au objet trop grosse parce que si le fichier session atteind une certaine taille ça ralenti conciderablement le serveur en sachant qu'un client = 1 fichier . helas en php il n'est pas possible d'avoir une session partagé.
Pour cela il faut faire attention.  
Inclure le fichier dabord puis faire un session_start() après.
;) Zapan si tu peux détailler le sujet je le placerais au sommaire

n°1337617
chaced
Posté le 03-04-2006 à 10:59:11  profilanswer
 

Petite fonction mail toute simple (un peut le meme genre que celle du controlle de mail de la 1ere page)
 

Code :
  1. //Envoi un mail simple, Attention, verifier les mails saisi par formulaire avec isemail
  2. function sendmail($mailsrc,$maildest,$sujet,$message)
  3. {
  4. //Modification des entetes pour envoyer le mail de l'expediteur
  5.        $ent="From: ".$mailsrc." \n";
  6.        $ent.="Reply-to: ".$mailsrc." \n";
  7.        return mail($maildest,strmailctrl($sujet),strmailctrl($message),$ent);
  8. }
  9. //Controlle si le mail $email est valide
  10. //les fonctions getmxrr et checkdnsrr fonctionnent que sous linux Apache. Si windows, mettre en commentaire et retourner true.
  11. function isemail($email)
  12. {
  13. //Vérification que le mail est bien sous la forme d'un mail avec un regexp, preg_match pour des raisons de performance
  14.       if(preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i",$email))
  15.       {
  16.         $host = substr(strstr($email, '@'), 1); // on reccupere le domaine, genre toto.com de titi@toto.com
  17.         if (getmxrr($host, $validate_email_temp) ) return TRUE; //Si le MX existe pour ce domaine, c'est ok
  18.         if(checkdnsrr($host,"ANY" ))     return TRUE; // Si le dns existe pour ce domaine, c'est ok
  19.         return FALSE;
  20.       }
  21.       return FALSE;
  22. }
  23. //remplace les chaines dangereuse dans un envoi mail par formulaire.
  24. function strmailctrl($str)
  25. {
  26. //La fonction mail de php est un gros troue de sécurité, et on peut passer en mettant des \n dans  
  27. //le sujet par exemple des arguments supplémentaire, et donc utiliser la fonction mail de votre formulaire pour spamer.
  28.         return stripslashes(str_replace(array('MIME','bcc:','cc:','multipart','Content-Type'),'#####',$str));
  29. }


Message édité par chaced le 03-04-2006 à 14:08:31

---------------
CPU-Z | Timespy | Mes bd
n°1337634
nargy
Posté le 03-04-2006 à 11:22:17  profilanswer
 

Générer un fichier à la volée pour téléchargement.
 
Dans les deux exemples suivants, l'internaute se voit proposer d'enregistrer un fichier nommé ``test.txt`` sur son disque, qui a été généré sans passer par un fichier temporaire sur le serveur.
 
1°) Pour tous navigateurs, avec .htaccess:
 
fichier ``test.txt``:

Code :
  1. <?php // attention: header() doit être utilisé avant echo
  2.   header('Content-Type: application/octet-stream');
  3.   echo "hello".rand(); // génération à la volée
  4. ?>

fichier ``.htaccess``:

Code :
  1. <Files test.txt>
  2.   ForceType application/x-httpd-php
  3. </Files>

fichier ``telecharge.html``:

Code :
  1. <html><body>
  2. <a href="test.txt">Cliquez ici</a> pour télécharger au format texte.
  3. </body></html>

NB: cette méthode fonctionne aussi avec de vieux navigateurs.
PS: je l'ai déjà posté mais je le perds à chaque fois.
 
2°) Pour navigateurs récents, sans .htaccess:
 
fichier ``test.php``:

Code :
  1. <?php // attention: header() doit être utilisé avant echo
  2.   header('Content-disposition: attachment; filename=test.txt');
  3.   header('Content-Type: application/force-download');
  4.   echo "hello".rand(); // génération à la volée
  5. ?>

fichier ``telecharge.html``:

Code :
  1. <html><body>
  2. <a href="test.php">Cliquez ici</a> pour télécharger au format texte.
  3. </body></html>


doc header(): http://fr.php.net/manual/fr/function.header.php
doc ForceType: http://httpd.apache.org/docs/trunk [...] #forcetype
mots-clés: exporte, extraction, format, enregistre


Message édité par nargy le 03-04-2006 à 18:41:09
n°1337677
chaced
Posté le 03-04-2006 à 12:13:37  profilanswer
 

2 methodes pour generer un mot de pass de n caracteres
 

Code :
  1. //Genere un mot aléatoire de $nb caracteres
  2. function genpass($nb=8)
  3. {
  4. $key='abcdefghjkmnpqrstuvwxyz23456789_'; // la clé ou sera piochée les lettres aléatoires, les lettre pouvant porter à confusion ne sont pas mises.
  5. $j=count($key)-1; // on réccupére la longeur de la chaine précedente
  6. for($i=0;$i<$nb;++$i) //une nouvelle chaine de longeur $nb
  7. {
  8.  $buf.=$key[rand(0,$j)]; //on prend un caractere au hazzard dans $key et on le concatene a $buf
  9. }
  10. return $buf;
  11. }
  12. //Un mot aléatoire facile à retenir, mais plus compliqué, basé sur sur les consonnes/voyelles
  13. function genpass2($len=8)
  14. {
  15.     $letter=array(
  16.        array("b","c","d","f","g","i","l","m","n","o","p","q","r","s","t","v","z" ),
  17.        array("a","e","i","o","u" ));
  18.     $set=round(rand(0,1)); //consonne ou voyelle ?
  19.     for ($i=0; $i<$len; ++$i) { // on boucle $len fois
  20.         $set=!$set; //passage de consonne a voyelle ou inversement
  21.         $idx=floor(rand(0, count($letter[$set])-1)); //on reccupere la position d'une lettre dans consonne ou voyelle
  22.         $pass.=$letter[$set][$idx];
  23.     }
  24.     return $pass;
  25. }
  26. //Genere un mot de passe facile a retenir, de $nbtotal caracteres et qui comprend x lettres et $nbint chiffres
  27. // ex : eritaz72
  28. function genpass3($nbtotal=8,$nbint=2)
  29. {
  30. $key1='aeiouy';
  31. $k1=5; // strlen($key1)-1;
  32. $key2='bcdfghjklmnpqrstvwxz';
  33. $k2=19; // strlen($key2)-1;
  34. $j=rand(0,1);// on commence par une consone ou une voyelle ?
  35. $nb=$nbtotal-$nbint; // total de lettre
  36. for($i=0;$i<$nb;++$i)
  37. {
  38.  if($j) $buf.=$key1{rand(0,$k1)};
  39.  else $buf.=$key2{rand(0,$k2)};
  40.  $j=!$j;
  41. }
  42. for($i=$nb;$i<$nbtotal;++$i)
  43. {
  44.  $buf.=rand(0,9);
  45. }
  46. return $buf;
  47. }


Message édité par chaced le 04-04-2006 à 16:44:28

---------------
CPU-Z | Timespy | Mes bd
n°1337732
Berceker U​nited
PSN : berceker_united
Posté le 03-04-2006 à 13:56:53  profilanswer
 

Houlala il y en a beaucoup en forme aujourd'hui. Des ce soir je vais mettre cela dans le sommaire :)
Je veux juste demander une petite chose [:aloy] si vous pouviez éditer le numéro du sommaire des que je l'aurais placé et si vous pouviez juste rajouter quelques commentaire parce qu'il y en a qui connaisse pas forcement le role des fonction. Exemple

Code :
  1. function genpass2($len=8){
  2.    //Place chaque lettre de l'alphabet dans un tableau
  3.    $letter=array(
  4.       array("b","c","d","f","g","i","l","m","n","o","p","q","r","s","t","v","z" ),
  5.       array("a","e","i","o","u" ));
  6.    $pass="";
  7.    $set=round(rand(0,1)); //Genere un numéro aléatoire entre 0 et 1
  8.    for ($i=0; $i<$len; ++$i) { //boucle sur la longueure du mot passé en parametre  
  9.        $set=!$set;
  10.        $idx=floor(rand(0, count($letter[$set])-1));
  11.        $pass.=$letter[$set][$idx];
  12.   }
  13.    return $pass;
  14. }


...
 
Disont que le but de ce topic c'est pas que les débutants fassent copier/coller mais qu'ils comprennent se qu'il font.
 
Merci quand meme pour vos intervention . Pphpy vous remercie [:papy]

n°1337745
chaced
Posté le 03-04-2006 à 14:12:20  profilanswer
 

c'est édité ;)


---------------
CPU-Z | Timespy | Mes bd
n°1337959
tuxbleu
renie ses origines
Posté le 03-04-2006 à 16:49:45  profilanswer
 

Pphpy is back :love:

n°1338079
nargy
Posté le 03-04-2006 à 18:50:54  profilanswer
 

A propos de la FAQ: 26 - Un string est un tableau de char.
 
J'ai été moi-même surpris d'apprendre que la syntaxe avec des crochets droits [] est obsolète:
http://www.php.net/manual/en/langu [...] ing.substr

n°1338354
Sebastien
Posté le 04-04-2006 à 08:27:07  profilanswer
 

Et ca relance le debat sur les variables dans les chaines de caractères :)

n°1338387
chaced
Posté le 04-04-2006 à 09:35:10  profilanswer
 

un tableau c'est un tableau, donc utilise des [] par contre, dans une chaine texte pour selectionner un caractere il faut utiliser des {} mais bon les crochets fonctionnent aussi tres bien.


---------------
CPU-Z | Timespy | Mes bd
n°1338400
Berceker U​nited
PSN : berceker_united
Posté le 04-04-2006 à 09:55:16  profilanswer
 

Au final, cela revient au même je pense plus que c'est pour pas faire de confusion sur le type de variable alors certe [] c'est pour un tableau mais les {} doit être un alias des crochets seulement dans le cas de caractère.
Du moin c'est mon hypothese.

n°1338403
nargy
Posté le 04-04-2006 à 09:57:20  profilanswer
 

> Et ca relance le debat sur les variables dans les chaines de caractères :)
- ha bon, ya débat? :lol:
 
> un tableau c'est un tableau, donc utilise des [] par contre, dans une chaine texte pour selectionner un caractere il faut utiliser des {} mais bon les crochets fonctionnent aussi tres bien.
- bien sûr, [] fonctionne, cette FAQ devrait peut être faire allusion à {}, non?

n°1338415
chaced
Posté le 04-04-2006 à 10:07:04  profilanswer
 

Question con, comment déclarer une variable pour pas que ça fasse des E_NOTICE ?


---------------
CPU-Z | Timespy | Mes bd
n°1338425
Sebastien
Posté le 04-04-2006 à 10:14:13  profilanswer
 

en l'initialisant si c'est une simple variable.
$var = '';  
$var = 0;
$var = TRUE;
tu mets un epu ce que tu veux

n°1338427
cinocks
Posté le 04-04-2006 à 10:14:37  profilanswer
 

en l'initialisant. $toto = ''; $toto=NULL;  
 
ce que tu veux, elle sera declarée implicitement.
 
edit: grillé


Message édité par cinocks le 04-04-2006 à 10:14:51

---------------
MZP est de retour
n°1338433
chaced
Posté le 04-04-2006 à 10:17:13  profilanswer
 

Sebastien a écrit :

en l'initialisant si c'est une simple variable.
$var = '';  
$var = 0;
$var = TRUE;
tu mets un epu ce que tu veux


 
Ok en fait il faut la remplir, c'est tout con.


---------------
CPU-Z | Timespy | Mes bd
n°1338441
Sebastien
Posté le 04-04-2006 à 10:21:44  profilanswer
 

et si c'est une variable de classe en l'initialisant en debut de classe

Code :
  1. <?php
  2. error_reporting(E_ALL);
  3. class Pers{
  4.     var $name = 'non initialisé';
  5.     function Nom($var)
  6.     {
  7.         $this->name = $var;
  8.         return $this->name;
  9.     }
  10.    
  11.     function afficheNom()
  12.     {
  13.         return $this->name;
  14.     }
  15. }
  16. $objet = new Pers();
  17. echo '<br />'.$objet->afficheNom();
  18. $objet->nom('Seb');
  19. echo '<br />'.$objet->afficheNom();
  20. ?>

n°1338499
Berceker U​nited
PSN : berceker_united
Posté le 04-04-2006 à 11:13:10  profilanswer
 

Sebastien a écrit :

et si c'est une variable de classe en l'initialisant en debut de classe

Code :
  1. <?php
  2. error_reporting(E_ALL);
  3. class Pers{
  4.     var $name = 'non initialisé';
  5.     function Nom($var)
  6.     {
  7.         $this->name = $var;
  8.         return $this->name;
  9.     }
  10.    
  11.     function afficheNom()
  12.     {
  13.         return $this->name;
  14.     }
  15. }
  16. $objet = new Pers();
  17. echo '<br />'.$objet->afficheNom();
  18. $objet->nom('Seb');
  19. echo '<br />'.$objet->afficheNom();
  20. ?>



 
L'initialiser dans le constructeur. En php il est possible de le faire dans la zone de déclaration des attributs mais tu ne peux pas faire par exemple var $mon_array = array(); .
Mon avis personnel c'est de pas le placer dans la zone des attributs mais dans le constructeur. J'ai tenté de le faire hors constructeur en C# et java et je me rappelle que je m'étais fais jeter en l'air comme un clep's  [:ciler]

Message cité 1 fois
Message édité par Berceker United le 04-04-2006 à 11:14:32
n°1338665
Djebel1
Nul professionnel
Posté le 04-04-2006 à 13:49:19  profilanswer
 

En PHP5, pas de problème pour un  
private $var = array()
 
Moi je trouvre ça bien pratique de les initaliser en début de classe. Sinon, tu te retrouves avec des lignes de déclaration, + des lignes d'initialisation dans le constructeur, c'est lourdingue.
 
Vous voyez une raison pour le faire dans le constructeur plutôt qu'en début de classe ?

n°1338757
Berceker U​nited
PSN : berceker_united
Posté le 04-04-2006 à 14:43:00  profilanswer
 

C'est vrai c'est pratique, je pense qu'il doit pas y avoir vraiment de contre indication juste faire attention que si vous changé de language ne pas garder certain reflexe surtout si vous faite des conversions de code. :)

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  6  7  8  9  10  11  12

Aller à :
Ajouter une réponse
 

Sujets relatifs
controles des champ et correction du formulaire PHP[PHP]Récupèrer une ressource d'un autre site et l'exploiter
Php et Html[HTML/PHP] Réaliser une message box
jpgraph et phpCode source d'un fichier PHP
Pervasive SQL et php[PROB] PHP debutant - Retour a la ligne
page précédente en phpRSS et PHP
Plus de sujets relatifs à : Tuto des scripts PHP les plus demandés et des astuces.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR