[PHP] Modificare pagina web online

  • Creatore Discussione Creatore Discussione pfranco
  • Data di inizio Data di inizio

pfranco

Nuovo Utente
12 Dic 2017
6
0
1
60
Sono un insegnante di una scuola media. L'istituto dove insegno mi mette a disposizione un minisito, dove posso pubblicare materiale didattico per gli studenti. Il sito (sia per questioni di sicurezza che altre) è molto limitato: posso usare HTML, CSS, Javascript, PHP, ma non database e quindi nemmeno CMS (Drupal, Joomla o Wordpress).
Ho realizzato un sito di 3 pagine ed avrei necessità di cambiare il contenuto di almeno una di queste pagine con frequenza giornaliera (a volte anche un paio di volte al giorno).
Il fatto di collegarmi con il programma FTP, prendere la pagina, modificarla con un altro programma e poi ripubblicarla, mi richiede tempo, passaggi macchinosi e l'uso di un computer dove ho i programmi per la manutenzione del sito. A volte devo modificare solo un paio di linee nella pagina (per esempio gli esercizi per i compiti a casa) e sarebbe comodo poterlo fare da qualunque postazione, semplicemente aprendo la pagina e modificarla direttamente online.
C'è un modo per poter modificare la pagina e salvare le modifiche direttamente online?
Ho provato tinymce, ma ho difficoltà nel salvare i contenuti modificati (praticamente dovrei riscrivere la pagina su se stessa, una volta modificata).
Se qualcuno riesce a darmi una mano, ne sarei grato e una volta testato e perfezionato il meccanismo, sarei ben lieto di renderlo disponibile a tutti qui nel forum.
 
ciao
se non puoi usare il db la vedo dura (sicurezza? non esiste in internet)
comunque provo (buttata giu di brutto) a darti un'idea usando un file txt (sicurezza zero)


file dati.txt così composto
questa è la prima riga
questa è la seconda riga
questa e la teza riga
ec...

le righe corrispondono alle parti variabili della pagina html/php
PHP:
<?php
$righe=file(dati.txt);//riga è un array
?>
<div>testo e/o fisso 1<?php echo $righe[0]; ?></div>
<div>testo e/o fisso 2<?php echo $righe[1]; ?></div>
<div>testo e/o fisso 3<?php echo $righe[3]; ?></div>
<!-- eccetera-->
ti fai una pagina php modifica.php
PHP:
<?php
$righe=file(dati.txt);
?>
<form action="dove_vuoi.php" method="post">
<input name="riga" type="text" value="aa" />
<?php
foreach($righe as $riga){
    echo "<input name=\"riga\" type=\"text\" value=\"$riga\" /><br />";   
}

?>
<input name="modifica" type="submit" value="modifica" />
</form>
nella pagina modifica.php riscrivi il file dati.txt

considera però che questa è un'idea nata così a naso e che quindi abbisogna di approfondimento
 
Potresti semplicemente attravero un'editor wysiwyg " quoto per il più utilizzato e pieno di plugin ckeditor" recuperare il contenuto di un file di testo come ti ha segnalato @borgo italia , o in alternativa creare delle "pagine" basate su file, potresti optare per diverse strade:
  1. Crei dei file e prima di sovrascrivere il contenuto riversi il contenuto del vecchio nella directory "archivio"
  2. Utilizzi la struttura json per memorizzare i file e recuperi sempre l'ultimo item.
in questo modo potresti recuperare diverse pagine tramite _GET e avere uno storico di quanto scritto.
 
Potrei sbagliarmi ma sembra tutto molto più complicato che modificare la pagina e ripubblicarla.
Per evitare di essere sempre in quella postazione potresti tenere su una chiavetta USB una copia aggiornata del sito e filezilla fare la tua modifica da qualsiasi PC e pubblicare immediatamente con FileZilla! Molto più semplice e pulito senza errori
 
Ultima modifica:
Ragazzi! Vi ringrazio per le risposte e i suggerimenti tecnici.
La risposta di @borgo italia è quella che più si avvicina a quanto volevo sentire, ma devo provare quanto mi suggerisce e non ne ho ancora avuto il tempo.
La sicurezza non è un problema, perché il sito è su una rete interna della scuola (dall'esterno praticamente non ci può accedere nessuno, tranne gli studenti e i professori, dotati di una login personale).
Modificare la pagina da scuola è un problema per via degli strumenti a mia disposizione (editor HTML et similia), mentre modificare la pagina al di fuori della rete della scuola è un dramma per via delle limitazioni di accesso (ma avrei tutti gli strumenti sul mio PC personale, che non è abilitato nella rete della scuola e non me lo fanno collegare proprio per questioni di sicurezza).
Pertanto, se potessi modificare la pagina direttamente quando la vedo nel browser, vi assicuro che sarebbe un sollievo!
Grazie anche a @macus_adi per il suo suggerimento: in luogo di ckeditor, ho usato Tinymce (me l'hanno consigliato) e sono già riuscito a rendere editabili le tre zone della pagina che vorrei modificare, sono riuscito a farle passare ad un'altra pagina, ma non riesco a risalvare la pagina originale su se stessa, con le modifiche apportate.
 
Diciamo che in linea di massima una cosa del genere dovrebbe funzionare, scrivi il contenuto corrente in un file db.json ed il vecchio lo metti in in archivio... Il codice seppur funzionante è solo a scopo evocativo,.

PHP:
ini_set('display_errors', '1');
if(isset($_POST['salva'])){
    //prelevo il contenuto precedente
    $cnt_file=file_get_contents( 'local_db/current/db.json');
    //apro il file
    $handle=fopen('local_db/archivio/'.time().'.json','w+');
    //prelevo il contenuto dell'archivio
    //scrivo il contenuto vecchio in archivio in un nuovo file
    fwrite( $handle, $cnt_file);
    //chiudo il file archivio
    fclose( $handle);
    //apro il file corrente
    $handle=fopen('local_db/current/db.json','w+');
    //scrivo le informazione nel file
    fwrite( $handle, json_encode(['titolo'=>$_POST['titolo_pagina'],'contenuto'=>$_POST['contenuto'],'creazione'=>date('d-m-Y H:i:s')],128));
    //chiudo il file
    fclose($handle);
}
?>
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Project-</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
    <script src="plugin/ckeditor5/ckeditor.js"></script>
</head>
<body>
<div class='container'>
    <div class='row'>
        <div class='col-md-12'>
            <form method='post'>
                <div class='col-md-12'>
                <label>Titolo Pagina</label>
                <input type='text' name='titolo_pagina' class='form-control'>
                </div>
                <div class='col-md-12'>
                    <label>Contenuto Pagina</label>
                    <textarea name='contenuto' rows='10' id='editor' class='form-control'></textarea>
                </div>
                <div class='col-md-12 text-right'>
                    <button class='btn btn-success' type='submit' name='salva'>Salva</button>
                </div>
            </form>
        </div>
    </div>
</div>
<script>
    ClassicEditor
        .create( document.querySelector( '#editor' ) )
        .then( editor => {
        console.log( editor );
    } )
    .catch( error => {
        console.error( error );
    } );
</script>

</body>
</html>
 
ciao
scusate una cosa che forse non ho capito, pfranco dice
sul mio PC personale, che non è abilitato nella rete della scuola
se non può accedere dall'esterno come fa a operare?
da quello che ho capito può operare solo a scuola, dall'esterno non ha accesso consentito, ho sbaglio?
se è così solo dal server della scuola può operare
 
ciao
scusate una cosa che forse non ho capito, pfranco dice
se non può accedere dall'esterno come fa a operare?
da quello che ho capito può operare solo a scuola, dall'esterno non ha accesso consentito, ho sbaglio?
se è così solo dal server della scuola può operare

Probabilmente mi sono spiegato non molto chiaramente. Dall'esterno ci sono due modalità di accesso: una che permette di consultare alcune pagine del sito scolastico (cui hanno accesso sia gli studenti, che i professori), l'altra che permette di avere accesso alle cartelle personali poste sul server (questo accesso ce l'hanno solo alcuni professori, tra cui io) e dove si possono modificare i sorgenti delle pagine di cui si è amministratore.
Dall'esterno io posso accedere alla mia cartella sul server (dove risiedono le mie pagine personali), ma non per esempio a quelle di altri colleghi o dell'istituto.
Quando sono a scuola, posso accedere con le stesse modalità come da fuori, oppure direttamente attraverso la rete interna della scuola.
Spero di essermi spiegato meglio.
 

Discussioni simili