Aide syntaxe PHP
Résolu
index
Messages postés
1861
Date d'inscription
Statut
Membre
Dernière intervention
-
index Messages postés 1861 Date d'inscription Statut Membre Dernière intervention -
index Messages postés 1861 Date d'inscription Statut Membre Dernière intervention -
Bonjour.
J'aimerais que vous m'aidiez à trouver mon erreur dans cette ligne PHP:
Je vous remercie.
J'aimerais que vous m'aidiez à trouver mon erreur dans cette ligne PHP:
<?php if (isset($_POST['value'])) {$value=$_POST['value'];} { exec(('nircmd.exe changesysvolume ['value']'));} else {$value=0;} ?>
Je vous remercie.
A voir également:
- Aide syntaxe PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Alert php ✓ - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
- Trouver erreur de syntaxe fichier txt ✓ - Forum PHP
9 réponses
Parceque je débute en php et que j'ai compris le fonctionnement de ma commande mais je bloque sur la syntaxe ...
J'aimerai éxecuter la commande :
nircmd.exe changesysvolume [valeur en php]
En fait, intégrer une valeur variable dans une même commande.
La valeur est prise selon un input range en html.
le reste du code est:
J'aimerai éxecuter la commande :
nircmd.exe changesysvolume [valeur en php]
En fait, intégrer une valeur variable dans une même commande.
La valeur est prise selon un input range en html.
le reste du code est:
<form method="post" action="#"> <fieldset> <input style="margin-left:4%;width:82%" type="range" step="10000" name="value" value="10000" min="10000" max="60000" list="accroissement" onchange="this.form.submit()" onclick="this.form.submit()"> <datalist id="accroissement">> <option>10000</option> <option>20000</option> <option>30000</option> <option>40000</option> <option>50000</option> <option>60000</option> <datalist> <input type="hidden" name="f2wt" value=""/> </fieldset> </form>
Bonjour,
Ton if corrigé :
Ou encore plus simplement avec l'écriture ternaire :
Ton if corrigé :
if (isset($_POST['value'])) { $value=$_POST['value']; exec("nircmd.exe changesysvolume $value"); }else { $value=0; }
Ou encore plus simplement avec l'écriture ternaire :
$value = isset($_POST['value']) ? $_POST['value'] : 0; if($value !=0){ exec("nircmd.exe changesysvolume $value"); }
Merci beaucoup.
Sans vouloir remettre tes conaissances en question cette partie du script semble poser problème:
En effet le :
Je pense qu'il voit la commande comme si "$valeur" était un nombre, car rien ne se passe.
Sans vouloir remettre tes conaissances en question cette partie du script semble poser problème:
exec("nircmd.exe changesysvolume $value");
En effet le :
$valuen'est pas compris par nircmd.exe
Je pense qu'il voit la commande comme si "$valeur" était un nombre, car rien ne se passe.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai mis ça:
Ca ne marche pas, mais ça me semble pourtant correct ?
<? $cmd ="nircmd.exe setsysvolume [$value]"; if (isset($_POST['value'])) { $value=$_POST['value']; echo: $cmd ; }else { $value=0; } ?>
Ca ne marche pas, mais ça me semble pourtant correct ?
$value = !empty($_POST['value']) ? $_POST['value'] : 0; if($value !=0){ $cmd = escapeshellcmd("nircmd.exe setsysvolume ".$value); echo: $cmd //le temps des tests pour savoir ce que contient la ligne de commande exec($cmd, $outputAndErrors, $return_value); // Affichage des erreurs lors de l'appel à la fonction : if(!empty($outputAndErrors)){ echo "<br>outputAndErrors<br>"; print_r($outputAndErrors); } if(!empty($return_value)){ echo "<br>return_value :".$return_value; } }
Je viens de regarder sur le net .. il n'y a pas les crochets visiblement...
j'ai aussi ajouter l'instruction escapeshellcmd qui permet de protéger les caractères spéciaux du Shell
J'ai aussi remplacé ISSET par !EMPTY pour s'assurer que l'utilisateur ne passe pas une valeur "vide"..
Et enfin, j'ai ajouté les variables contenant les éventuelles erreurs et/ou code de retour lors de l'appel au programme
Voir notice : https://www.php.net/manual/fr/function.exec.php
Tout fonctionne, tu es vraiment fort.
Si j'ai quelque chose qui peut être gênant, mais enfin, rien de grave;
Lorsque je sélectionne la valeur avec la barre, cette dernière revient à zéro lorsque la valeur est envoyé ...
Elle ne reste pas sur la valeur que je veux lui donner.
Mais la commande nircmd fonctionne à merveille !
Si tu sais et que tu as envie de regarder, sinon je te remercie beaucoup.
Si j'ai quelque chose qui peut être gênant, mais enfin, rien de grave;
Lorsque je sélectionne la valeur avec la barre, cette dernière revient à zéro lorsque la valeur est envoyé ...
Elle ne reste pas sur la valeur que je veux lui donner.
Mais la commande nircmd fonctionne à merveille !
Si tu sais et que tu as envie de regarder, sinon je te remercie beaucoup.
Facile...
Il faut rebalancer la valeur après le submit :
Bien sûr.. il te faut des VALUE dans tes options.. pour comparer avec la valeur passée dans le POST.
Au passage, tu peux créer tes "option" dans une boucle de 1 à 6
Un truc du genre :
Il faut rebalancer la valeur après le submit :
Bien sûr.. il te faut des VALUE dans tes options.. pour comparer avec la valeur passée dans le POST.
Au passage, tu peux créer tes "option" dans une boucle de 1 à 6
Un truc du genre :
<form method="post" action="#"> <fieldset> <input style="margin-left:4%;width:82%" type="range" step="10000" name="value" value="10000" min="10000" max="60000" list="accroissement" onchange="this.form.submit()" onclick="this.form.submit()"> <datalist id="accroissement">> <?php $valeur_post = !empty($_POST['value']) ? $_POST['value'] : NULL; for($i=1;$i<=6;$i++){ $valeur = $i*10000; $selected = $valeur == $valeur_post ? " selected='selected' " : ''; echo "<option value='$valeur' $selected>$valeur</option>"; } ?> <datalist> <input type="hidden" name="f2wt" value=""/> </fieldset> </form>
ou alors (je n'ai pas utilisé ce contrôle jusqu'à maintenant.. c'est peut être juste un VALUE à mettre dans l'input :
<?php $valeur_post = !empty($_POST['value']) ? $_POST['value'] : '10000'; ?> <form method="post" action="#"> <fieldset> <input style="margin-left:4%;width:82%" type="range" step="10000" name="value" value="<?php echo $valeur_post;?>" min="10000" max="60000" list="accroissement" onchange="this.form.submit()" onclick="this.form.submit()"> <datalist id="accroissement">> <?php for($i=1;$i<=6;$i++){ $valeur = $i*10000; echo "<option value='$valeur'>$valeur</option>"; } ?> <datalist> <input type="hidden" name="f2wt" value=""/> </fieldset> </form>
Ta dernière solution fonctionne, un génie !
En tout cas, j'aimerais avoir ton niveau en PHP !
Je te remercie pour ta patience.
En tout cas, j'aimerais avoir ton niveau en PHP !
Je te remercie pour ta patience.
Bonsoir.
Jordane45, est ce que tu sais comment on peut grâce à un bouton, copier du texte dans le presse papier de l'utilisateur ?
J'ai essayé avec une fonction "onclick" et une fonction javascript mais rien à faire :/
Il parait que c'est impossible d'après de nombreux site, tu veux bien m'aider ?
Je te remercie.
(ou si quelqu'un d'autre sait) merci.
Jordane45, est ce que tu sais comment on peut grâce à un bouton, copier du texte dans le presse papier de l'utilisateur ?
J'ai essayé avec une fonction "onclick" et une fonction javascript mais rien à faire :/
Il parait que c'est impossible d'après de nombreux site, tu veux bien m'aider ?
Je te remercie.
(ou si quelqu'un d'autre sait) merci.