Bonjour,
Voila je rencontre un petit problème avec mon code.
Alors j'ai repris la tuto de grafikart panneau d'option personaliser
https://www.grafikart.fr/tutoriels/wordpress/option-panel-wordpress-358
Ou je teste le opendir dans ce code ça fonctionne bien même en ligne !! j'avais peur que non mai si.
Le problème n'est donc pas de savoir si ça fonctionne ou non !!
<th scope="row">
<label style="line-height:0;" for="bodybg">Ajouter un Background perso</label>
</th>
<td>
<select name="options[bodybg]" id="bodybg">
<?php
$themeroot = get_theme_root();
$dirname = $themeroot. '/neec_mmo/upload/background';
$dir = @ opendir($dirname); //on masque l'erreur si le chemin est incorect
$nb_fichier = 0;
if($dir !== false) {
while(false!==($file = readdir($dir))) {
//$file != '.' && $file != '..' && !is_dir($dirname.$file) && $file != 'index.html' && $file != 'index.php'
if($file != "." && $file != ".." && stristr($file,'.jpg') || stristr($file,'.png')){
//on affiche que des images ici que des .png et .jpg
$nb_fichier++;
if($file == get_option('bodybg')){
?>
<option value="<?php echo $file; ?>" selected><?php echo get_option('bodybg'); ?></option>
<?php
}else{
?>
<option value="<?php echo $file; ?>"><?php echo $file; ?></option>
<?php
}
}
}
closedir($dir);
}
?>
</select>
<p class="description" id="tagline-description">
<?php
if($dirname =! $dir){
echo 'Erreur Dossier mal renseigner';
}else{
?>
Actuelement réglé sur : <strong style="color:#3b8416;"><?php echo get_option('bodybg','default.png'); ?></strong> | Il y a <strong style="color:#b94a48;"><?php echo $nb_fichier; ?></strong> fichier(s) dans ce dossier
<?php
}
?>
</p>
</td>
<td>
</tr>
Je voudrais bien savoir si c'est bien sécuritaire !! le but est d'avoir un background dynamique donc jusque la ça fonctionne mai je suis un peut peureux au niveau de la sécurité.
voila aussi le traitement du formulaire :
if(!wp_verify_nonce($_POST['pannel_noncename'], 'my-bg')){
die('<div id="message" class="error notice"><p>Problème survenue Token non valid</p></div>');
}
foreach($_POST['options'] as $name =>$value){
if(empty($value)){
delete_option($name);
}else{
update_option($name, $value);
}
} echo '<div id="message" class="updated notice">
<p>Sauvgardée avec succès</p>
</div>';
}
Donc voila le sript fonctionne bein etc... pas de probleme a ce niveau !! mai comme di c'est la secu qui m'inquiète toujours, donc si vous avez des idée je vous en remercie :)