PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#3 Re : Forum Général PHP » alarme sonore » 16-01-2015 15:16:39

Salut,

Php n'intervient côté navigateur il ne s'exécute que sur le serveur.

Il te faut voir du côté du front, dans ton cas je dirais Javascript pour une requête Ajax (vers le serveur) qui indiquera s'il y a ou non une nouvelle commande.

Pour cela il te faut déterminer comment tu sais qu'une commande est nouvelle. (Ajout d'un drapeau en base ou dans un fichier par exemple).
Ensuite la requête Ajax récupère un booléen (1 ou zéro) et suivant le cas tu active la lecture d'un son sur le navigateur (balise html audio et un fichier son a ta convenance wink ).

@+

#4 Re : MySQL, PostgreSQL, etc... » faire plusieurs enregistrements sur une table » 31-08-2013 08:54:37

Salut,

C que veux dire MK c'est que c'est :
- tu peux faire une seule requête pour insérer plusieurs lignes dans une table (spécifique mysql)
- tu doit utiliser la clef primaire de ta table pour la sauvegarde des données.

Côté html cela commence par mettre en value des checkbox la clef primaire de la table (qui généralement est auto incrémenté).
Une clef primaire c'est une référence unique pour une ligne de table elle est donc la chose a utiliser lorsque l'on veux désigner une ligne en particulier.

Côté SGBD (mysql dans ton cas), afin d'avoir un modèle relationnel correct on va créer une table qui va contenir la référence vers la table "des gens" ainsi que la références vers la table qui représente ceux qui coche les cases.
Ensuite il te "suffit" d'insérer ces deux références dans la table pour sauvegarder l'information.

Pour réafficher l'info il faut faire une jointure sur les tables.

Si tu explique le but de la chose (comment tu identifie les gens qui coche les cases je peux te faire un exemple plus concret).

@+

#5 Re : Forum Général PHP » easyphp: des problèmes un jour sur l'autre! » 18-08-2013 01:31:19

canardcache a écrit :

Pour le système de fichier... ben heu qu'entends tu par là?

ton disque dur est a une structure plus moins correcte (secteur défectueux etc) du coup écrire dessus occasionne une perte de donné (même infime) qui fait que le fichier est corrompu).

Après je suis pa un spécialiste système mais un check disque semble une première approche.
tu peux le faire sans réparation histoire de voir s'il y a des secteur défectueux ou pas.


Pour ce qui est de l'hébergement, t’inquiète pas il s'agit de machines, normalement, robuste, monté en raid etc etc.
donc pas de perte de donnée, les bases ne s'arrête quasiment jamais la perte de donnée ne devrais pas exister (il y a aussi, généralement, des sauvegardes).


@+

#6 Re : Forum Général PHP » easyphp: des problèmes un jour sur l'autre! » 18-08-2013 01:31:19

salut,

malheureusement tes urgences en sont pas les nôtres, donc oui il faut attendre.

Le log indique que les fichiers que mysql utilise sont corrompus.
Cela peux être dû a pas mal de chose, comme un arrêt peu orthodoxe (forcer le crash de l'appli serveur par exemple) ou (cas N°3) un système de fichier foireux.
pour le second cas tu peux utiliser un utilitaire de disque pour vérifier le disque qui semble poser problème et les corriger au besoin.
Attention ce type d'utilitaire faisant rarement dans la dentelle une sauvegarde préalable des données est p^ primordiale wink

@+

#7 Re : Forum Général PHP » Où placer mes Regex ... ? » 17-08-2013 13:12:25

salut,

Pourquoi vouloir forcément utiliser des expressions régulières ?

Ce n'est pas obligatoire, il tout a fait possible de valider un formulaire sans les utiliser.

Ton code semble être un mélange de toute les aide que tu as pu trouver sur le net, du coup je pense que tu te mélange les pinceaux wink

Le principe pour la validation d'un formulaire c'est :
1/ tester dans les tableaux $_GET ou $_POST si les infos dont l'on a besoin existe (ou pas). pour cela nous avons les fonctions isset ou empty
2/ Vérifier la cohérence des données. avec empty tu sais déjà que les variables ne sont pas vides (voir la doc pour le détail). Attention si le chiffre zéro est une valeur acceptable pour un champs de formulaire tu ne peux pas employer empty (cf doc).
Pour cela tu peux utiliser la fonction filter_var.


Amélioration possible :
* Le champ téléphone peu être de type tel plutôt que number
* Le champ mail peux être de type email plutôt que texte

exemple de validation pour ton formulaire

<?php
if (!empty($_POST['secteur']) && !empty($_POST['mail']) && !empty($_POST['telephone']) && !empty($_POST['adresse']) &&
    !empty($_POST['message']) && !empty($_POST['nom']) && !empty($_POST['prenom'])) {

    // Validation de l'email
    if(filter_var($_POST['mail'],FILTER_VALIDATE_EMAIL) === true) {
        // ok
        // validation du numéro de téléphone avec une expression régulière
        if(preg_match('^((\+\d{1,3}(-| )?\(?\d\)?(-| )?\d{1,5})|(\(?\d{2,6}\)?))(-| )?(\d{3,4})(-| )?(\d{4})(( x| ext)\d{1,5}){0,1}$',$_POST['telephone'])){
            // ok
            // nom, prenom, secteur, adresse et message ne sotn pas vide, si pas de contrôle particulier on peux tout prendre pour envoyer l'email
        }else {
            // N° de téléphone KO => message d'erreur
            $TO = "alioui.mehdi2303@gmail.com";
            $subject = "Devis";
            $h = "From: " . $TO;
            $message = 'nom '.$_POST['nom'].PHP_EOL;
            $message .= 'prenom '.$_POST['prenom'].PHP_EOL;
            $message .= 'secteur '.$_POST['secteur'].PHP_EOL;
            $message .= 'email '.$_POST['mail'].PHP_EOL;
            $message .= 'telephone '.$_POST['telephone'].PHP_EOL;
            $message .= 'adresse '.$_POST['adresse'].PHP_EOL;
            $message .= 'message '.$_POST['message'].PHP_EOL;
            if(mail($TO,$subject,$message,$h)){
                // ok, redirection avec php pas besoin d'imondice html / js
                header('Location: redirection.html');
            }else {
                // erreur mail, cas assez improbable mais à traité quand même. donc un beau message d'erreur
            }
        }

    }else {
        // email KO un beau message d'erreur
    }

} else {
    // Erreur au moins un des champs obligatoire est vide
}

Pour faire bien cette validation devraient être faite sur la même page que l'affichage du formulaire, comme ça, en cas d'erreur, il est possible d'afficher un beau message d'erreur, proprement dans la page, et de pré remplir le formulaire avec ce qui à déjà été remplis. (et pourquoi pas appliquer une css sur le champs en erreur, par exemple font rouge, avec cadre rouge pour marquer l'emplacement de l'erreur).

La seul différence avec ce que j'ai fait c'est, qu'en général, on utilise le bouton submit (auquel on donne un nom) pour savoir si le formulaire est posté ou pas.

@+

#8 Re : Forum Général PHP » PB BDD et/ou arborescence récursif » 10-11-2012 22:51:58

Sans code je ne peux te répondre que :

- c'est peux être un nom différent ?
- le traitement prend compte d'un paramètre que tu ne connais pas ?


@+

#9 Re : Forum Général PHP » PB BDD et/ou arborescence récursif » 10-11-2012 22:51:58

salut,

Mico a écrit :

Suite de mon PB

en fait dans le formulaire il y a un champs hidden avec en  l'ID  value récupéré  via une variable GET
et je viens de m'apercevoir qu'avec un bouton radio activé avec l'ID en value   toujours récupéré  via la même variable GET ça fonctionne

d'où ma question : y a t'il une différence dans l'enregistrement dans une BDD entre un champs hidden et un bouton radio ou autre ?

Merci d'avance pour les réponses
Mico


non un champs est un champ le traitement est le même si la donnée est envoyée.

par contre si ton bouton n'est pas coché la valeur n'es pas transmise, alors que la valeur du champ caché l'est toujours.


@+

#10 Re : Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

moijhd a écrit :

Justement quand je parle de gros sites, je pense facebook ou d'autres sites à grand traffic ou des comparateurs d'offres, et maintenant, j'ai l'impression qu'ils ne développent plus qu'en C/C++ d'où ma question de savoir comment un tel développement s'organise.


Comment peux tu le savoir ?

En les consultant ?

#11 Re : Forum Général PHP » Un site internet compilé ? » 10-11-2012 20:34:43

salut,


j'ajouterais qu'il faut voir ce que l'on entend par "lourdeur".

souvent un système de cache est une première approche utile suffisant a soulager un peu le serveur.

Ensuite comme le souligne Maljuna Kris, optimiser les requetes et le code en générale c'est une première chose.

Une application web JEE c'est beaucoup plus lourd pour le serveur que du code php (JVM etc), donc suivant les besoins ce n'est pas forcément adapté.


pour info il existe d'autre possibilité comme ruby (et ruby on rails) ou python.

tu parle de "gros" site, certain, comme facebook, sont fait en php et tournent pas mal wink


@+

#12 Re : Forum Général PHP » Formation ou pas formation ? » 10-11-2012 14:46:36

salut,

N'étant pas web designer je ne peux t'aider sur les formations.

Par contre pour le début il existe plein de site qui peuvent te permettre de progresser, par les tutos et par l'aide des forums.

par exemple alsacreations


@+

#13 Re : MySQL, PostgreSQL, etc... » Développement en SGBDR Epais - Introduction / Outils / Astuces » 10-05-2012 06:51:42

Yop,

pourquoi addslashes ?

Alors que PDO propose la méthode quote

Le coté rappel d'utilisation de mysql (fonction, proc stock, validation sur le SGBDR) est sympa, c'est vrai que l'on vois rarement ce genre de chose dans les tutos.
Par contre je trouve que ce type de fonctionnement, perd la lisibilité du code et impose un traitement en plus.

le coté perf, je connais pas, et je reste étonné

Ils n'utilisent par exemple les bases de données QUE pour gérer la persistance des données.

heu c'est le role d'un sgbd dans une appli n-tiers, ou je n'ai pas compris le sens de la phrase :s
La validation des données étant, bien sur a réaliser aussi sur le SGBDR (et la gestion d'intégrité si besoin) peut être est ce que tu entend par la.



@+

#14 Re : Forum Général PHP » Changement d'année complexe (pour moi !!!) » 02-01-2012 21:08:35

salut,

en gros tu part sur le principe d'afficher   n - 1 / n ou n / n + 1 si le mois est inférieur ou supérieur et égale à 09
en gros
[php]
<?php
if ( date('m') < 9) {
echo (date('Y') -1) . ' / ' . date('Y');
}
else{
echo date('Y') . ' / ' . (date('Y') + 1);
}
?>[/php]

bon a tester faudra p'tet faire le calcul avant mais le principe est la wink

@+

#15 Re : Forum Général PHP » Vérifier doublons fichier CSV avant d'utiliser fput() » 02-12-2011 13:45:16

ce que MK indique c'est que si le fichier est utiliser en même temps pour une autre page php ou par un autre logiciel tu risque de corrompre le fichier (suivant les modifs effectuée) le dernier qui enregistre va supprimer les données du 1er smile

regarde la fonction flock()

@+

#16 Re : Forum Général PHP » Protection des requetes SQL » 02-12-2011 10:25:54

yop,

perso je rappelerais la doc de addslashes

Un exemple d'utilisation d'addslashes() est lorsque vous entrez des données dans une base de données. Par exemple, pour insérer le nom O'reilly dans la base, vous aurez besoin de le protéger. Il est fortement recommandé d'utiliser les fonctions de protection spécifiques à chaque base de données (telle que mysqli_real_escape_string() pour MySQL et pg_escape_string() pour PostGreSQL), mais si la base de données que vous utilisez n'a pas de fonction spécifique, et que cette base utilise \ pour protéger les caractères spéciaux, vous pouvez utiliser cette fonction. Grâce à elle, \ sera ajouté. Si la directive PHP magic_quotes_sybase  est activée, ' sera protégé par un autre '.

La directive PHP magic_quotes_gpc  est à on par défaut, et elle appelle addslashes() sur toutes les données GET, POST et COOKIE. N'utilisez pas addslashes() sur des données déjà protégées avec magic_quotes_gpc sinon vous doublerez les protections. La fonction get_magic_quotes_gpc() est utile pour vérifier ce paramètre.

donc avec l'extension mysql(i) mysql(i)_real_escape_string
avec PDO quote() (et pas de requête préparée à tout va svp wink)

pourquoi ?
parce que comme le dit la doc de mysqli_escape_string

Les caractères encodés sont NUL (ASCII 0), \n, \r, \, ', ", and Control-Z.

alors que addslashes dit

Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NUL (le caractère NULL).

Ca fait le même taff en mieux smile

quand au htmlentities, à réserver pour l'affichage, ceci rien que pour garder la possibilité de faire autre chose que du html avec ta base de donnée, par exemple utilise un soft fait dans un autre, java, C, ce que l'on veux pour utiliser en dehors d'un contexte web, ou plus simplement pour un export sur différent support, comme PDF ou n'importe quoi d'autre wink

@+

#18 Re : Forum Général PHP » pb d'accès à l'espace prive d'un site » 09-11-2011 13:40:56

salut,

le message indique que tu essai de redéclarer une une fonction qui existe déjà, ceci à la ligne 64 de inc-calcul.php3 dans la fonction eval.

la seule chose à faire est de voir cette ligne de code et de modifier le nom de la fonction si possible, sinon ne pas re déclarer cette fonction !




@+

#19 Re : Forum Général PHP » moteur de recherche php » 23-10-2011 12:21:17

tu utilise une méthode d'utilisation des formulaires qui n'est plus utilisable par défaut avec php. Je te conseil donc de revoir la validation des formulaires
http://www.phpdebutant.org/article56.php

ligne 40 à 100 (ou par la) pourquoi deux requetes sql ? tu fait directement la dexième et utilise mysql_num_rows pour la condition ce sera plus simple.

je te conseil de reprendre ton code morceau par morceau de les valider un par un puis de les assembler.

@+

#20 Re : Forum Général PHP » utilisation de jpgrap pour les sataistiques de ma base de donnée » 23-10-2011 12:28:16

je répète pas ce que j'ai dit sur phpfrance
tes liens vers jpgraph ne sont correct pas corrige et ça devrait aller un peux mieux.

de plus les remarques de Jc sont intéressante, perso j'ai même pas regardé wink

@+

#21 Re : Forum Général PHP » duplication de données dans ma base de donnée » 09-10-2011 13:02:36

salut,

peut tu être plus clair sur le problème ? (avec des exemples de données par exemple)

$sql = "INSERT INTO tuteur(id_tuteur, nomtuteur, prenomtuteur, teltuteur,celtuteur) VALUES('','$_POST[nomtuteur]','$_POST[prenomtuteur]','$_POST[teltuteur]','$_POST[celtuteur]')";

la t'a un problème il faut délimiter les index de post !

$sql = "INSERT INTO tuteur(id_tuteur, nomtuteur, prenomtuteur, teltuteur,celtuteur) VALUES('','{$_POST['nomtuteur']}','{$_POST['prenomtuteur']}','{$_POST['teltuteur']}','{$_POST['celtuteur']')"; devrait aller un peux mieux smile

mysql_real_escape_string est à utiliser sur toutes les valeurs issues de $_POST (au pire une titre fonction de derrière les fagot avec array_walk le fera a ta place).

A priori tu n'a pas de doublon dans les requetes.

Tu peux afficher les $sql avant les mysql_query histoire de suivre le déroulement smile

@+

#22 Re : Forum Général PHP » Comment laisser une fenêtre pop up s'ouvrir sans le template » 14-09-2011 20:57:19

sur combien de forum a tu posé la question ? http://forum.phpfrance.com/php-debutant … 60375.html

pour répondre a ta question il faut savoir comment fonctionne le système, a priori la fonction javascript appel la page directement en sachant où elle doit trouver la page. il te suffit de modifier ce comportement, soit en modifiant le fichier cible soit simplement en indiquant le bon nom directement.

Le mieux serait peut être de demander à l'auteur de l'appli ?

@+

#25 Re : Forum Général PHP » Champs déroulant en php » 04-09-2011 10:59:58

pour te donner plus d'info dans le sens de MK :
tu aura 3 tables pour régions, départements, communes
départment contiendra la clef primaire de régions
communes contiendra la clef primaire de départements (pour savoir qui appartient a qui).

dans la table qui va concerner, disons l'utilisateur tu mettra la clef primaire de la commune (qui te permettra de remonter jusqu’à la région smile


@+

Pied de page des forums

Propulsé par FluxBB