Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  83  84  85  86  87  88  89  ...  97  98  99  100  Suivante
Auteur Message
2 visiteurs sur ce sujet (2 anonymes)
Page : Précédente  1  2  3  ...  83  84  85  86  87  88  89  ...  97  98  99  100  Suivante
Hors ligne Bilbax # Posté le 17/05/2008 à 14:27:27
www.bilbax.eu
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Une petite fonction de dév. pour connaitre aisément la valeur d'une variable sous cette forme :

Image utilisateur


Code :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
function dp($var, $return = false, $sub = 0)
{
	if($sub == 0) $r = '<pre style="border:1px solid #e3af43;background-color:#f8edd5;padding:10px;overflow:auto;">';
	else $r = '';
	
	$type = gettype($var);
	if($type == 'NULL')
		$r .= '<em style="color:#0000a0;font-weight:bold;">NULL</em>';
	elseif($type == 'integer')
		$r .= '<span style="color:red;font-weight:bold;">'.$var.'</span>';
	elseif($type == 'double')
		$r .= '<span style="color:#e8008d;font-weight:bold;">'.$var.'</span>';
	elseif($type == 'string')
		$r .= '<span style="color:#e84a00;">\''.$var.'\'</span>';
	elseif($type == 'array')
	{
		$r .= 'Tableau ('.count($var).')'."\r\n".str_repeat("\t", $sub).'{'."\r\n";
		foreach($var As $k => $e)
			$r .= str_repeat("\t", $sub+1).'['.dp($k, true, $sub+1).'] =&gt; '.dp($e, true, $sub+1)."\r\n";
		$r .= str_repeat("\t", $sub).'}';
	}
	elseif($type == 'object')
	{
		$r .= 'Objet « <strong>'.get_class($var).'</strong> »'."\r\n".str_repeat("\t", $sub).'{'."\r\n";
		$prop = get_object_vars($var);
		foreach($prop As $name => $val)
			$r .= str_repeat("\t", $sub+1).'<strong>'.$name.'</strong> =&gt; '.dp($val, true, $sub+1)."\r\n";
		$r .= str_repeat("\t", $sub).'}';
	}
	else
		$r .= 'Variable de type <strong>'.$type.'</strong>.';
	
	if($sub == 0) $r .= '</pre>';
	if($return) return $r;
	echo $r;
}

/////////////////// TEST

class Obj
{
	public $truc = 'ZzZ';
	public $super = Array('lol', 77.6 => NULL);
	public $na;
}
$monObj = new Obj();
$a = Array('Blabla', 'hihi', 'caca' => Array(NULL, 0.1, 'AAA', $monObj), 14, 0.8, NULL, Array('prout', 24));

dp($a);
?>


Concept repris de la fonction de Talus ^^ .
Hors ligne robocop # Posté le 17/05/2008 à 18:48:47
Avatar
Groupe : Membres
Je recherche une astucde qui permet d'enregistrer les valeurs par défaut des formulaires que l'on vient de remplir mais que l'on doit réemplir, parce qu'on a fait une erreur par exemple.

J'avais vu ça une fois sur le sdz, mais je ne me souvient plus ou.
Merci d'avance.
 
Hors ligne Artefact2 # Posté le 17/05/2008 à 19:02:12
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : robocop
Je recherche une astucde qui permet d'enregistrer les valeurs par défaut des formulaires que l'on vient de remplir mais que l'on doit réemplir, parce qu'on a fait une erreur par exemple.

J'avais vu ça une fois sur le sdz, mais je ne me souvient plus ou.
Merci d'avance.


Code : PHP
1
2
3
4
5
6
7
8
<?php
function ShowFillInput($Name, $Label, $DefaultValue = '', $Size = 30, $MaxLength = 255)
{
    if(isset($_POST[$Name]) AND !empty($_POST[$Name])) $DefaultValue = htmlspecialchars($_POST[$Name]);
    echo '<p><label for="'.$Name.'">'.$Label.'</label>
          <input type="text" name="'.$Name.'" id="'.$Name.'" size="'.$Size.'" 
          maxlength="'.$MaxLength.'" value="'.$DefaultValue.'" /></p>';
}


Je pense que ça ressemble de très près à ce que tu recherches :)
Édité le 18/05/2008 à 00:31:35 par Artefact2
 
Hors ligne robocop # Posté le 17/05/2008 à 21:00:02
Avatar
Groupe : Membres
Nan, en fait moi, j'avais vu une header, que l'on mettait en début de fichier.
 
Hors ligne Savageman # Posté le 17/05/2008 à 22:10:56
Insa : If inside
Avatar
Groupe : Membres
Tu parles de quand on fait "Page précédente" dans le navigateur ?
 
Hors ligne Dentuk # Posté le 17/05/2008 à 23:55:02
Yamo...
Avatar
Groupe : Membres
Citation : Artefact2
Citation : robocop
Je recherche une astucde qui permet d'enregistrer les valeurs par défaut des formulaires que l'on vient de remplir mais que l'on doit réemplir, parce qu'on a fait une erreur par exemple.

J'avais vu ça une fois sur le sdz, mais je ne me souvient plus ou.
Merci d'avance.


Code : PHP
1
2
3
4
5
6
7
8
<?php
function ShowFillInput($Name, $Label, $DefaultValue = '', $Size = 30, $MaxLength = 255)
{
    if(isset($_POST[$Name]) AND !empty($_POST[$Name])) $DefaultValue = $_POST[$Name];
    echo '<p><label for="'.$Name.'">'.$Label.'</label>
          <input type="text" name="'.$Name.'" id="'.$Name.'" size="'.$Size.'" 
          maxlength="'.$MaxLength.'" value="'.$DefaultValue.'" /></p>';
}


Je pense que ça ressemble de très près à ce que tu recherches :)

Attention aux injections XSS (htmlspecialchars);

Image utilisateur
 
Hors ligne TheDead Master # Posté le 18/05/2008 à 00:04:48
4 8 15 16 23 42
Avatar
Groupe : Membres
Citation : Dentuk
Citation : Artefact2
Citation : robocop
Je recherche une astucde qui permet d'enregistrer les valeurs par défaut des formulaires que l'on vient de remplir mais que l'on doit réemplir, parce qu'on a fait une erreur par exemple.

J'avais vu ça une fois sur le sdz, mais je ne me souvient plus ou.
Merci d'avance.


Code : PHP
1
2
3
4
5
6
7
8
<?php
function ShowFillInput($Name, $Label, $DefaultValue = '', $Size = 30, $MaxLength = 255)
{
    if(isset($_POST[$Name]) AND !empty($_POST[$Name])) $DefaultValue = $_POST[$Name];
    echo '<p><label for="'.$Name.'">'.$Label.'</label>
          <input type="text" name="'.$Name.'" id="'.$Name.'" size="'.$Size.'" 
          maxlength="'.$MaxLength.'" value="'.$DefaultValue.'" /></p>';
}


Je pense que ça ressemble de très près à ce que tu recherches :)

Attention aux injections XSS (htmlspecialchars);


Il est également inutile d'utiliser isset _et_ empty. Empty tout seul suffit.

Je n'ai plus internet depuis septembre 2008 pour une durée indéterminée.

Comité de lutte contre le langage sms et les fautes volontaires sur Internet.
 
Hors ligne Artefact2 # Posté le 18/05/2008 à 00:26:40
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : Dentuk
Attention aux injections XSS (htmlspecialchars);


:-° Oui. C'était un premier jet.
 
Hors ligne K-Phoen # Posté le 18/05/2008 à 00:29:11
Geek un jour, geek toujours !
Avatar
Groupe : Membres
Citation : Artefact2

:-° Oui. C'était un premier jet.


même pour un premier jet, ajouter un p'tit htmlspecialchars() ça mange pas de pain ;)

et pis comme ça on oubliera pas de le faire après :-°

La Geek Attitude
-----------------------
Tout sur Adobe AIR
 
Hors ligne Artefact2 # Posté le 18/05/2008 à 00:31:03
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : K-Phoen
Citation : Artefact2

:-° Oui. C'était un premier jet.


même pour un premier jet, ajouter un p'tit htmlspecialchars() ça mange pas de pain ;)

et pis comme ça on oubliera pas de le faire après :-°


Yes, of course ! Je suis pas du genre à laisser des failles pour des vrais scripts de prod'. Après faut voir si le fait de mettre du xHTML dans le value d'un input sera interprété ou pas (je pense que ça dépend du render engine).
 
Hors ligne shine-neko # Posté le 18/05/2008 à 06:21:08
Saite ita no wa My Rosy Heart
Avatar
Groupe : Membres
Citation : Savageman
Tu parles de quand on fait "Page précédente" dans le navigateur ?


Ouais :)

La v3 de Shine-Shiina est sortit
Qui n'a jamais rêver d'apprendre a dessiner , Cuisiné japonnais dévorer de nouveaux manga fait par des copains et d'apprendre le japonais ?
=> La réponse se trouve ici
Image utilisateur

 
Hors ligne Dentuk # Posté le 18/05/2008 à 08:59:24
Yamo...
Avatar
Groupe : Membres
Citation : Artefact2
Après faut voir si le fait de mettre du xHTML dans le value d'un input sera interprété ou pas (je pense que ça dépend du render engine).
Je pense pas, par contre à coups de " /> on peut sortir de l'input et mettre ce qu'on veut.

Image utilisateur
 
Hors ligne robocop # Posté le 18/05/2008 à 11:02:58
Avatar
Groupe : Membres
Citation : Savageman
Tu parles de quand on fait "Page précédente" dans le navigateur ?

Ouais, c'est ça ouais.
 
Hors ligne TimeSplitters # Posté le 18/05/2008 à 16:26:10
Avatar
Groupe : Membres
Hors ligne Savageman # Posté le 18/05/2008 à 16:40:55
Insa : If inside
Avatar
Groupe : Membres
TimeSplitters, la source du problème vient de l'utilisation des sessions. Leur utilisation fait que, par défaut, ces header() sont modifiés. En effet, l'utilisation des sessions est prévue pour des zones privées et donc susceptibles d'être modifiées. D'où le comportement par défaut.
Je pense qu'il est bon de connaître la source, et donc de le corriger à l'endroit le plus logique : session_cache_control() !
 
Hors ligne Artefact2 # Posté le 18/05/2008 à 18:59:02
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : robocop
Citation : Savageman
Tu parles de quand on fait "Page précédente" dans le navigateur ?

Ouais, c'est ça ouais.


Dans ce cas, faut utiliser les sessions :)
 
Hors ligne robocop # Posté le 18/05/2008 à 19:25:37
Avatar
Groupe : Membres
Ouais, mais c'est relou, si faut modifier tous ses formulaires...
 
Hors ligne JeromeJ # Posté le 18/05/2008 à 20:48:48
Avatar
Groupe : Membres
Citation : TimeSplittersPour citer ta réponse dans le lien que tu viens de passer: À quoi sert "Pragma" ? J'ai chercher sur Google sans succès. Merci d'avance :)








Secret (cliquez pour afficher)
Ce que je maitrise actuellement: XHTML, CSS, PHP, Action Script 2 et 3, JavaScript, SQL, Python, et un peu de C, C++ et d'erl
 
Hors ligne Joachim. # Posté le 19/05/2008 à 22:07:05
<?php echo 'Hello World'; ?>
Avatar
Groupe : Membres
Elle est un peu pourrie je trouve, mais bon, c'est pour pouvoir faire passer un texte en GET (par exemple le titre d'un sujet) :

Code : PHP
1
2
3
4
5
6
7
8
9
<?php
	function string_get($chaine)
	{
   	$chaine = strtolower($chaine);
	$chaine = strtr($chaine, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'aaaaaaceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyy');
     	$chaine = preg_replace('`([^.a-z0-9]+)`', '-',$chaine);
	return $chaine;
	}
?>
Édité le 19/05/2008 à 23:26:21 par Joachim.
 
Hors ligne Cortexd # Posté le 19/05/2008 à 22:53:18
Maouunnwww !
Avatar
Groupe : Membres
pourquoi mettre des majuscules dans le strtr() alors qu'il y a un strlower() juste avant ?
et le str_replace() fait redondance avec le preg_replace()

Comme l'or, il est caresse et volupté...
Image utilisateur Arrêt sur image


 
Hors ligne croky # Posté le 19/05/2008 à 23:01:08
Graor!
Groupe : Membres
Aussi, tu ne remplaces pas de maj. donc à la poubelle "i".
Hors ligne Joachim. # Posté le 19/05/2008 à 23:18:00
<?php echo 'Hello World'; ?>
Avatar
Groupe : Membres
Vous avez confirmé ce que je pensais à part pour les majuscules des caractères spéciaux ;)
En fait j'avais fait cette fonction à mes débuts en PHP, il y a 2 ans et je n'y avais plus retouché. En la postant, je me suis fait les mêmes remarques que vous sauf pour les trucs du type "Ä" car avec strtolower(), il ne reste comme ils sont :) et comme je ne veux pas qu'il soit remplacer par un "-", je les transforme d'abord en petit lettre ;)
Voici donc la finale :
Code : PHP
1
2
3
4
5
6
7
8
9
<?php
	function string_get($chaine)
	{
   	$chaine = strtolower($chaine);
	$chaine = strtr($chaine, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'aaaaaaceeeeiiiiooooouuuuyaaaaaaceeeeiiiioooooouuuuyy');
     	$chaine = preg_replace('`([^.a-z0-9]+)`', '-',$chaine);
	return $chaine;
	}
?>
Édité le 19/05/2008 à 23:26:41 par Joachim.
 
Hors ligne Cortexd # Posté le 20/05/2008 à 02:42:19
Maouunnwww !
Avatar
Groupe : Membres
strlower() lowerise aussi les caractères accentués donc inutile de mettre les majuscules dans le strtr()
les parenthèses dans le masque de l'expression régulière sont inutiles aussi
j'utiliserais plutôt celle-ci, qui supporte l'utf-8 (à placer dans un fichier encodé en iso-8859-1 à cause de strtr() qui ne supporte que cette encodage)
Code : PHP
1
2
3
4
5
6
7
8
<?php
function rewrite_escape_string($string, $encoding = 'UTF-8')
{
	$string = mb_convert_encoding($string, 'ISO-8859-1', $encoding);
	$string = strtr(strtolower($string), '@²³µ¹àáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'a23u1aaaaaaceeeeiiiinoooooouuuuyy');
	$string = preg_replace('`[^a-z0-9]+`', '-', $string);
	return trim($string, '-');
}

Comme l'or, il est caresse et volupté...
Image utilisateur Arrêt sur image


 
Hors ligne Tracker # Posté le 20/05/2008 à 10:45:12
Avatar
Groupe : Membres
Citation : Cortexd
strlower() lowerise aussi les caractères accentués donc inutile de mettre les majuscules dans le strtr()
les parenthèses dans le masque de l'expression régulière sont inutiles aussi
j'utiliserais plutôt celle-ci, qui supporte l'utf-8 (à placer dans un fichier encodé en iso-8859-1 à cause de strtr() qui ne supporte que cette encodage)
Code : PHP
1
2
3
4
5
6
7
8
<?php
function rewrite_escape_string($string, $encoding = 'UTF-8')
{
	$string = mb_convert_encoding($string, 'ISO-8859-1', $encoding);
	$string = strtr(strtolower($string), '@²³µ¹àáâãäåçèéêëìíîïñòóôõöøùúûüýÿ', 'a23u1aaaaaaceeeeiiiinoooooouuuuyy');
	$string = preg_replace('`[^a-z0-9]+`', '-', $string);
	return trim($string, '-');
}


Juste deux remarques:
- Ça supporte l'uft8 dans la mesure ou les caractères "transcodés" possèdent une représentation en ISO-8859-1
- Ton code source doit OBLIGATOIREMENT être en ISO-8859-1.

Donc finalement quel intérêt de manipuler de l'utf-8 ?

Tracker.
Édité le 20/05/2008 à 10:58:35 par Tracker

Un peu de lecture: PHP // MySQL // JavaScript // w3schools // SQL
 
Hors ligne Cortexd # Posté le 20/05/2008 à 17:30:31
Maouunnwww !
Avatar
Groupe : Membres
je ne comprends pas trop tes remarques, le but de la fonction est de renvoyer la chaîne avec uniquement certains caractères ASCII, donc tous les caractères non-ASCII ne seront de toutes façons pas affichés ; par conséquent les caractères UTF-8 non représentable en ASCII n'ont pas vraiment d'importance
par contre la conversion d'UTF-8 en ISO-8859-1 permet de récupérer les quelques caractères accentués qui seront désaccentués par la suite et donc conservés
d'ailleurs une meilleure conversion serait : $string = iconv($encoding, 'ISO-8859-1//TRANSLIT', $string); (pour tranformer € en eur par exemple)
quant au code source, seulement celui de cette fonction doit être en ISO-8859-1 (à mettre dans un fichier à part au pire) et ce n'est pas vraiment un problème, non ?

manipuler de l'utf-8 (ou autre) permet donc de récupérer le plus de caractères ASCII potentiels
Édité le 20/05/2008 à 17:31:24 par Cortexd

Comme l'or, il est caresse et volupté...
Image utilisateur Arrêt sur image


 
Hors ligne Tracker # Posté le 20/05/2008 à 17:38:25
Avatar
Groupe : Membres
Sauf que mb_convert_encoding(...) sur des caractères non retranscriptibles en iso-8859-1 devrait planter une erreur.

Sinon bien que ce soit ambigu (car en général on utilise utf8 pour se dégager des contraintes de langues) je suis d'accord, faut simplement faire gaffe...


Tracker.

Un peu de lecture: PHP // MySQL // JavaScript // w3schools // SQL
 
Hors ligne croky # Posté le 30/05/2008 à 20:26:43
Graor!
Groupe : Membres
Petite astuce pour les while().

Au lieu de vous taper tout ce code, par exemple :
Code : PHP
1
2
3
4
5
6
7
<?php
$x = 0;
while($x < 100) {
    echo 'while()';
    $x++;
}
?>


Vous pouvez simplement faire cela :
Code : PHP
1
2
3
4
5
<?php
while($x++ < 100) {
    echo 'while()';
}
?>

Hors ligne Cortexd # Posté le 30/05/2008 à 20:35:11
Maouunnwww !
Avatar
Groupe : Membres
pourquoi as-tu enlevé l'initialisation de la variable ? là ça va déclencher une notice

Comme l'or, il est caresse et volupté...
Image utilisateur Arrêt sur image


 
Hors ligne Asi # Posté le 30/05/2008 à 20:39:49
Mangeur de Lapins Crus
Avatar
Groupe : Membres
Puis je préfère utiliser l'opérateur de pré-incrémentation qui rend impossible ce genre de syntaxe.
 
Hors ligne Jeremie78 # Posté le 30/05/2008 à 20:50:15
Powered by GNU/Linux
Groupe : Membres
Tient j'ai une grande nouvelle, il parait qu'on a inventé la boucle FOR ...
Je dis ça comme ça, hein !

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne Artefact2 # Posté le 30/05/2008 à 22:25:04
C'est toi le bouc !
Avatar
Groupe : Membres
Citation : Asibasth
Puis je préfère utiliser l'opérateur de pré-incrémentation qui rend impossible ce genre de syntaxe.


Ouaip, en plus c'est plus rapide :D
 

Retour au forum "PHP" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 113 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.0823s (0.0663s)