J'ai le script suivant pour demander un mot de passe, puis demander à l'utilisateur s'il souhaite modifier une page. Cliquez sur une page l'ouvre dans le '<textarea>
', le bouton de sauvegarde devrait alors envoyer à nouveau le contenu de la zone de texte au script pour l'écriture. (Je suis conscient que ce n'est pas le moyen le plus sûr de s'authentifier, s'il y a un moyen de le faire sans SQL, je voudrais l'entendre.)
Le problème est que le contenu de la zone de texte n'est pas t étant transmis à la fonction updateFile().
<?
session_start();
$pass = 'generic_password';
$login ='<form action="?page=admin" method="post">
Password: <input type="password" name="pass" />
<input type="submit" />
</form>';
function updateFile($file){
$area=$_POST['area'];
$fd=fopen($file,"w");
fwrite($fd,$area);
fclose($fd);
echo $file.' has been saved';
}
if (!isset($_POST['pass']) && $_SESSION['authed'] == false){
echo $login;
$_SESSION['authed'] = false;
}
elseif ($_POST['pass'] == $pass || $_SESSION['authed'] == true){
$_SESSION['authed'] = true;
if(isset($_POST['submit'])){
updateFile($_POST['file']);
}
echo "Select a page to edit<br/>";
echo "<ul>";
foreach (glob("{*.html,*.css}",GLOB_BRACE) as $x){
echo "<li> <a href=\"?page=admin&edit=$x\">$x </a></li>";
}
echo "</ul>";
if (isset($_GET['edit'])){
echo '<script type="text/javascript" src="nicEdit.js"></script>
<script type="text/javascript">
bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
</script> ';
echo '<form method="post" action="?page=admin">You are editing: <a name="file">'.$_GET['edit'].'</a> <textarea name="area" style="width:920px;">';
include $_GET['edit'];
echo '</textarea>
<input name="submit" value="Save" type="submit" />
</form>';
}
}
else
echo "something went wrong";
?>
ce que dit var_dump ($ _ POST)? L'index 'area' défini mais vide ou non défini? –
Votre habitude de mettre la bride bouclée de fermeture au même niveau avec le bloc imbriqué est sacrément affreux –
@Shrapnel, comment proposez-vous que je arrange les accolades? –