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 28/07/2014 à 08:40
Tableau dynamique
Il y a deux choses à considérer :
- le traitement côté client (l'aspect interactif)
- le traitement côté serveur (l'aspect dynamique)

Une solution basique serait d'avoir ton tableau HTML, au-dessus duquel tu as un élément interactif « ajouter une ligne », qui va effectivement appeler la routine pour ajouter une ligne au tableau avec les éléments du formulaire.

Bref, quelque chose dans ce goût là :

<!DOCTYPE html>
<html>
<body>
<form action='' method='post'>
<span class='line-adder'>Ajouter une ligne</span>
<table>
<tr><td>Blah</td><td>Beuh</td></tr>
</table>
</form>

<script type='application/javascript'>
// <!--
document.getElementsByClassName('line-adder')[0]
.addEventListener('click', function(ev)
{
var table = this.parentNode.getElementsByTagName('table')[0];
var od = table.ownerDocument;

var line = table.appendChild(od.createElement('tr'));
var cell = line.appendChild(od.createElement('td'));
var input = cell.appendChild(od.createElement('input'));

input.setAttribute('name', 'first[]');

cell = line.appendChild(od.createElement('td'));
input = cell.appendChild(od.createElement('input'));
input.setAttribute('name', 'second[]');
});

// -->
</script>
</body>
</html>


Pour le côté serveur, je crois que c'est assez évident maintenant.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 09/07/2014 à 20:39
Une solution pour compter le nombre de personnes qui ont visité le site
1. mysql_real_escape_string est ton ami, et son collègue sprintf permet de construire les requêtes de manière lisible.
<?php
$sql = sprintf('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip='%s'''
, mysql_real_escape_string($_SERVER['REMOTE_ADDR']));
mysql_query($sql);


2. Quel est le sens de cette requête ?
SELECT COUNT(id) FROM connectes WHERE id=visites


3. Timestamp est un type MySQL, ça m'étonnerais que ce SQL soit accepté.
UPDATE connectes SET timestamp=


4. Quand tu appelles une fonction, quelle quelle soit, si sa documentation explicite des codes retours, tu dois les vérifier. C'est entre autres le cas avec mysql_query.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 09/07/2014 à 20:32
Nouveau problème avec les caractères dans les tables sql
Paphio-King, dans le second exemple, tu remarqueras qu'il n'utilises pas PDO mais un basique MySQLi. Bref, ce n'est pas son soucis.

Bref, vérifie que:

Le HTML gébéré est bien en UTF-8.
Que le formulaire a bien l'attribut accept-charset pour dire au navigateur de répondre en UTF-8.
La requête HTML est bien servie en UTF-8. Au pire, il faut que tu mettes un http-equiv dans l'en-tête du document HTML, au mieux, c'est un en-tête HTTP (que tu définis dans Apache, directive DefaultCharset) ou depuis ton PHP.

<?php header('Content-type: text/html; charset=utf-8');
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 08/07/2014 à 17:36
Aide pour une CLASS PHP PDO
J'ai posé la question à tout hasard, au cas où tu avais une clé définie plusieurs fois, PHP ne râle pas.

Es-tu certain que PDO se connecte en autocommit ? Le problème que tu rencontres est assez classique : les update et insert ne sont pas envoyés tant que tu ne le requiert pas explicitement ; même en fin de programme. Du coup, il faut appeler la fonction membre commit sur l'objet PDO (ou s'assurer que PDO est en mode auto-commit).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 08/07/2014 à 11:37
Aide pour une CLASS PHP PDO
Tu es certain de "col_name" ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 07/07/2014 à 13:06
SITE WEB EN LOCAL / need help pls
Ce n'est pas que c'est mieux, c'est la seule plateforme sérieuse de développement (web). Il faut toujours avoir un MS Windows pour les tests, mais bon, c'est pour les tests, rien d'autre.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 04/07/2014 à 11:59
SITE WEB EN LOCAL / need help pls
Dans l'absolu, je suis d'accord, c'est à ton maître de stage de déployer. Ou au moins de te guider.

Mais tu es sérieux à propos de Linux ? Tu es au courant que le dev web est principalement déployé en environnement Unix ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 03/07/2014 à 18:09
soucis avec les cookies
Moi je parie plus sur les multiples session_start(), ça fout toujours la merde ça.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 03/07/2014 à 18:09
SITE WEB EN LOCAL / need help pls
WampServer n'est pas une base de données, évites de raconter ça dans ton rapport de stage ;)

Pourquoi ne peux-tu pas utiliser le serveur web de l'association ? Limitations techniques ?

De ce que j'en sais, les capacités réseau de Microsoft Windows dépendent de la licence, ce n'est donc pas forcément un choix judicieux pour servir une application web. Le remplacer par une box sous Linux, voire réviser le plan d'hébergement web, pourrait être une solution à envisager. Si tu es vraiment coincer avec du MS Windows, ben, bon courage.

Ne passes pas par MS IIS.

Avec Wamp, tu as déjà un serveur Web (Apache). Il faut le rendre accessible depuis l'extérieur (capacité d'être contacté depuis le réseau, pare-feu ouvert sur le port 80, etc).

Bref, essaye de voir si tu as épuisé Google.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LupusMic
le 19/06/2014 à 16:56
Besoin d'aide
En effet, c'est côté client que ça se gére.

En gros, tu affiches une cartouches HTMl que tu identifie avec un ID, puis tu créés un évènement pour supprimer le noeud.

DOM

<div id='message'>C'est formidable !</div>
<script type='application/javascript>
SetTimeout(5 * 1000 /* après 5 secondes */, function ()
{
var node = document.getElementById('message');
node.parentNode.removeChild(node);
}
</script>


Le message sera supprimé. Si tu veux quelque chose de plus progressif, il faudra réduire progressivement la taille de la boîte de dialogue jusqu'à ce que tu la supprimes. Mais bon, il existe des bibliothèques qui aident à faire ça (comme jQuery UI).
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
LoadingChargement en cours