LupusMic

  • Signature
    Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
  • Site web
  • Nombre de sujets
    26
  • Nombre de messages
    1 684
  • Nombre de commentaires
    4
  • Nombre de news
    Aucune
  • Niveau en PHP
    Gourou

Ses derniers messages sur les forums

LupusMic
le 08/07/2011 à 11:31
Transfert de fichier
Un nom de fichier est une chaîne de caractères, ça n'a rien de particulier.

J'ai peur de comprendre ce que tu veux faire avec readfile.
Tout d'abord, il faut comprendre une chose lorsqu'on fait du développement Web : on n'affiche jamais rien. Certes, on le dit parce que ce serait trop pénible d'expliquer aux autres pourquoi c'est incorrect, mais dans l'absolu, on fabrique un document HTML qui sera analysé et dont une représentation visuelle sera affichée à l'utilisateur par le navigateur.

Pour « afficher » une image dans une page, il faut créer un élément img et définir le contenu de son attribut src qui désigne un point d'accès à l'image.

Par exemple :
<img src='/images/lolcat-1.jpeg' alt='Business cat' />


Si ton image n'est pas accessible depuis un répertoire exporté à travers ton serveur, ou si tu veux que l'image soit calculée à la volé, tu peux utiliser readfile pour lire le fichier et le cracher au client HTTP :

<img src='/images/lolcat-1.php?name=Serious%20Cat' alt='<?php echo htmlentities($nom_image, ENT_QUOTES, 'utf-8') ?>/>


<?php
// Je ne fais pas toutes les vérifications d'usage, ce script n'est pas sécurisé.
$img_nom = './photos/' . $_GET['name'] ;
header(sprintf('Content-length: %d', filesize($img_nom)) ;
readfile($img_nom) ;


Il existe une technique pour embarquer directement le contenu de l'image dans le HTML, mais ça peut poser d'autres problèmes.

Bref, ce qu'il faut comprendre ici, c'est que la construction du visuel de la page se fait en plusieurs temps.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 07/07/2011 à 22:05
Transfert de fichier
Personnellement, j'utiliserais un datetime pour renommer le fichier.
<?php

if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
{
if ($_FILES['monfichier']['size'] <= 1000000)
{
$infosfichier = pathinfo($_FILES['monfichier']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
// Le suffixe ne garantie pas le contenu du fichier

// Le nom aléatoire n'est jamais utilisé, du coup, il faudrait que tu l'utilise ;)
$nom_aleatoire = md5(uniqid(rand(), true));
if (in_array($extension_upload, $extensions_autorisees))
{
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($nom_aleatoire . '-' . $_FILES['monfichier']['name']));
echo "L'envoi a bien été effectué !";
}
}
}
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 07/07/2011 à 08:37
Executer un script php toute les X seconde.
J'aime beaucoup ton humour, 5s léger, haha ;)

J'ai du mal à voir qu'est-ce qui peut bien prendre 5s afin de déterminer quelque chose d'aussi simple. Tu peux nous montrer la requête SQL qui calcule ça ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 06/07/2011 à 23:34
htacces erreur redirection
Alors tu ne seras jamais bonne, car 'A' et 'a' seront toujours différents :p

Tu as un problème au niveau de ton expression régulière :
RewriteCond %{REQUEST_URI} !^/MONSITE.fr/*$


Devrait être :
RewriteCond %{REQUEST_URI} !^MONSITE.fr/.*$


Ceci dit, pourquoi utiliser un sous-domaine lorsqu'il suffit de charger les bons templates de ton application en fonction du UA ?

Quelque chose dans ce goût là :
<?php
// Fonction utilitaire pour déterminer si le client web est bien un périphérique mobile
funtion is_mobile()
{
$pattern = '@android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile@' ;
$ret = preg_match($pattern, $_SERVER['HTTP_USER_AGENT']) ;
if($ret === false)
/* Il faut gérer l'erreur*/ ;

return (bool) $ret ;
}

if(is_mobile())
$template = 'templates/portal.wap.php' ;
else
$template = 'templates/portal.html.php' ;

include $template ;
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 06/07/2011 à 23:17
Definir Racine de mon site
C'est quoi la racine (pour toi) ?
C'est quoi une constante racine ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 06/07/2011 à 23:16
Executer un script php toute les X seconde.
Le fichier n'est pas forcément plus léger, et peut introduire des bogues bien vicieux (écriture concurrente).

Une solution telle que Memcache sera certainement plus à propos. Mais il faut tester pour voir si l'optimisation vaut vraiment le coup. Peut-être qu'une procédure stockée suffira à ton problème de performance.

D'ailleurs, quel est le problème de performance (temps d'exécution de la requête) ?
As-tu analysé la requête SQL pour voir si elle ne peut pas être optimisée ?

Si tu veux exécuter une tâche toutes les 20s, tu as cron sur les serveurs Linux ou Unix.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 04/07/2011 à 01:00
Quel champ dans un table pour code zip
Les codes postaux ne sont pas des nombres. En France, il faut au moins 5 caractères alphanumériques. Si tu envisage d'avoir des codes postaux étrangers, prévoie une dizaine de caractères.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 28/06/2011 à 16:15
problem avec update
Ne t'excuses pas, le smiley était là pour dire que, bon d'accord ça m'énerve, mais je ne vais pas m'en formaliser plus avant.

Bon, par contre tu ne réponds pas à mes demandes d'information :-/ Essaye vraiment de ne pas utiliser d'abréviations, ou alors, définie-les.

En ce qui concerne ton problème, je pense que le problème se situe à la ligne 22 du fichier modification3.php. Je crois qu'il y a une virgule en trop qui se balade. Mais c'est vrai que le message d'erreur résultant n'est pas très clair.

En passant, on se demande pourquoi tu mets aussi à jour l'id. Laisse-le tranquille :
<?php
$sql = "UPDATE famillearticle
SET li_art = '$li_art'
WHERE id_fart = '$id_fart'" ;


Et pour finir, j'écris mon code en anglais, car je passe en mode anglais quand je code (non, le W-langage, je ne peux pas). Du coup, quand je lis « fart » ça me fait marrer ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 28/06/2011 à 11:26
problem avec update
Tout d'abord, je t'invite à bannir les formules telles que « veuillez faire quelque chose » ou « merci de » lorsque tu demandes de l'aide. Ces formules sont utilisées pour instaurer un rapport de force hiérarchique. Mais nous ne sommes pas tes chiens :)

Ensuite, tu ne dis pas ce que sont censé faire les différents scripts. Or, ils sont plein d'abréviations, ce qui rend le code illisible et incompréhensible, pour quelqu'un qui ne l'a pas écrit (ou toi, dans quelques mois ;) ).

J'ai bien d'autres questions, mais je vais attendre de connaître le workflow de ton application avant de te demander des précisions. Note qu'il est très fortement possible que tu trouve ton bogue une fois que tu auras décrit ce que tu veux faire, et ce que le script est censé faire.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LoadingChargement en cours