Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 35

Discussione: Come creare una pagina web tramite una pagina php

  1. #1
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito Come creare una pagina web tramite una pagina php

    Vorrei creare una specie di pagina in php che generi una pagina in html.

    Mi spiego meglio:

    C'è la pagina php che chiameremo generatore.php con dentro dei campi box tipo textarea e anche di selezione. Il numero delle textarea all'interno di generatore.php sono 7-8.

    Ci deve essere un campo per scrivere il titolo, un campo per il sottotitolo, un box per l'inserimento di un'immagine di sfondo background per il template, un campo per inserire il codice di un eventuale modulo form, un campo per inserire il corpo del testo centrale, un campo per selezionare il font del testo e il relativo colore e un campo per il footer.

    E infine un pulsante di nome "genera" che porta direttamente alla pagina html generata che chiameremo pagina.html.

    Ovviamente quando mi apparirà la pagina.html essa dovrà essere già formattata a livello testuale e grafico.

    Si può fare uan cosa del genere o è troppo complessa? Qualcuno sa come fare?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Quello che hai chiamato generatore è in realtà un compilatore. Questo compilatore riceve, come input, i dati da te indicati e produce un file HTML "statico" il quale sarà successivamente fruibile via browser. Viene prodotto un diverso file HTML per ogni gruppo di dati inseriti.

    Benché tecnicamente possibile (e non eccessivamente complesso), non è quanto si fa di solito in ambito web. Generalmente si utilizza una pagina HTML che mostra un modulo per inserire i dati i quali, alla pressione del tasto genera vengono inviati ad una pagina PHP che li inserisce in una base di dati. Una ulteriore pagina PHP, quando interrogata, recupera i dati dalla base di dati e genera dinamicamente la pagina da visualizzare. Quest'ultima pagina PHP è unica, a differenza del primo approccio in cui le pagine HTML sono tante quante ne sono state compilate. Questo tipo di impostazione è più semplice e considerato standard.

    Alla luce di questo, quale approccio intendi seguire?

    I suggerimenti che do più spesso:


  3. #3
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Se mi dici così intendo seguire l'approccio più semplice che hai illustrato. Basta che non devo creare un database (come mi sembra di aver capito vuoi creare tu), perché su alterivista quando devo creare db non mi funziona mai e mi da sempre errore. Se si potesse fare senza db sarebbe meglio...

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Basta che non devo creare un database (come mi sembra di aver capito vuoi creare tu), perché su alterivista quando devo creare db non mi funziona mai e mi da sempre errore.
    Il database non sono io a volerlo creare, sei tu ad averne bisogno !
    Se riscontri degli errori quando cerchi di crearne uno la soluzione migliore è correggerli, non privarti di uno strumento così utile e versatile.

    I suggerimenti che do più spesso:


  5. #5
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Ok, se proprio non se ne può fare a meno. Se ci sarà qualche problema chiederò ragguagli.
    Qualche codice relativo alle due pagine in questione e al database?

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    generatore-pagina.html
    Mostra il modulo per generare le pagine, quando compilato invia i dati a generatore.php. Potrai personalizzarla in seguito con stili ed altri elementi.
    Codice HTML:
    <form action="generatore.php" method="POST">
        <input type="text" name="title" placeholder="Titolo">
        <input type="text" name="subtitle" placeholder="Sottotitolo">
        <input type="text" name="image-url" placeholder="URL immagine di sfondo">
        <textarea name="form-code" placeholder="Codice per un eventuale modulo"></textarea>
        <textarea name="main-text" placeholder="Corpo del testo centrale"></textarea>
        <input type="text" name="font-name" placeholder="Nome font">
        <input type="text" name="font-color" placeholder="Colore font">
        <textarea name="footer" placeholder="Footer"></textarea>
        <button type="submit">Genera</button>
    </form>

    generatore.php
    Riceve i dati per la creazione di una pagina e li memorizza nella base di dati. Questo è solo lo scheletro, va resa sicura tramite opportuni controlli sull'input.
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    // Checks input (to do!)
    $title $_POST['title'];
    $subtitle $_POST['subtitle'];
    $image_url $_POST['image-url'];
    $form_code $_POST['form-code'];
    $main_text $_POST['main-text'];
    $font_name $_POST['font-name'];
    $font_color $_POST['font-color'];
    $footer $_POST['footer'];

    // Connects to database
    $dbh = new PDO('mysql:host=localhost;dbname=my_podset''podset'null);
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

    // Writes data
    $query "INSERT INTO page(title, subtitle, image_url, form_code, main_text, font_name, font_color, footer)"
           
    " VALUES(:title, :subtitle, :image_url, :form_code, :main_text, :font_name, :font_color, :footer)";
    $sth $dbh->prepare($query);
    $sth->execute([
        
    ':title' => $title,
        
    ':subtitle' => $subtitle,
        
    ':image_url' => $image_url,
        
    ':form_code' => $form_code,
        
    ':main_text' => $main_text,
        
    ':font_name' => $font_name,
        
    ':font_color' => $font_color,
        
    ':footer' => $footer
    ]);

    echo 
    "New page created. ID = " $dbh->lastInsertId() . ".";
    $dbh null;
    ?>
    pagina.php
    Recupera le informazioni dalla base di dati e costruisce dinamicamente la pagina da mostrare. Richiede che le sia passato l'identificatore della pagina tramite GET.
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    // Connects to database
    $dbh = new PDO('mysql:host=localhost;dbname=my_podset''podset'null);
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

    // Reads page data
    $page_id $_GET['id'];
    $query "SELECT * FROM page WHERE id = :id";
    $sth $dbh->prepare($query);
    $sth->execute([':id' => $page_id]);
    $page_data $sth->fetch();

    if (!
    $page_data) {
        die(
    "Errore: la pagina con id $page_id non esiste.");
    }

    $dbh null;
    ?>

    <!-- Shows page -->
    <html>
      <head>
        <style>
          body {
            background-image: url(<?= $page_data['image_url']; ?>);
            font-face: <?= $page_data['font-name']; ?>
            color: <?= $page_data['font-color']; ?>
          }
        </style>
      </head>

      <body>
        <h1><?= $page_data['title'?></h1>
        <h2><?= $page_data['subtitle'?></h2>
        <div>
          <?= $page_data['form-code']; ?>
        </div>
        <main>
          <?= $page_data['main_text']; ?>
        </main>
        <footer>
          <?= $page_data['footer']; ?>
        </footer>
      </body>
    </html>
    Tabella page
    Rappresenta una singola pagina.
    Codice:
    CREATE TABLE page (
        id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
        title VARCHAR(255) NOT NULL,
        subtitle VARCHAR(255) NOT NULL,
        image_url VARCHAR(255) NOT NULL,
        form_code TEXT,
        main_text TEXT NOT NULL,
        font_name VARCHAR(255) NOT NULL,
        font_color VARCHAR(255) NOT NULL,
        footer TEXT NOT NULL,
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP(),
        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
    );
    Verifica che non ci siano errori di sintassi o simili, possono sempre sfuggire.
    Ultima modifica di mzanella : 26-04-2019 alle ore 11.50.52

    I suggerimenti che do più spesso:


  7. #7
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Bene, ora lo provo e ti faccio sapere...

  8. #8
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Allora ho provato i codici e creato la tabella del databse.

    Non so se il databse l'ho creato come si deve ma non mi ha dato il solito errore che mi da sempre, quindi credo vada bene così.

    Per quanto riguarda il resto devi perdonare la mia ignoranza ma forse il non funzionamento dello script ha a che vedere con i tuoi avvertimenti che mi hai dato quando hai postato i codici, ma non so dove mettere le mani.
    Quindi spero tu possa chiarirmi i miei dubbi su cosa devo modificare nel settaggio delle due pagine php (ovvero generatore.php e pagina.php)

    Ti scrivo qui sotto quali avvertimenti mi ha dato il browser per quanto riguarda le due pagine:

    Per quanto riguarda generatore.php mi dice questo:

    Notice: Undefined index: title in /membri/podset/generatore/generatore.php on line 5

    Notice: Undefined index: subtitle in /membri/podset/generatore/generatore.php on line 6

    Notice: Undefined index: image-url in /membri/podset/generatore/generatore.php on line 7

    Notice: Undefined index: form-code in /membri/podset/generatore/generatore.php on line 8

    Notice: Undefined index: main-text in /membri/podset/generatore/generatore.php on line 9

    Notice: Undefined index: font-name in /membri/podset/generatore/generatore.php on line 10

    Notice: Undefined index: font-color in /membri/podset/generatore/generatore.php on line 11

    Notice: Undefined index: footer in /membri/podset/generatore/generatore.php on line 12

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'title' cannot be null' in /membri/podset/generatore/generatore.php:31 Stack trace: #0 /membri/podset/generatore/generatore.php(31): PDOStatement->execute(Array) #1 {main} thrown in /membri/podset/generatore/generatore.php on line 31

    Mentre per quanto riguarda pagina.php mi dice:

    Notice: Undefined index: id in /membri/podset/generatore/pagina.php on line 9

    Notice: Undefined variable: stmt in /membri/podset/generatore/pagina.php on line 13

    Fatal error: Call to a member function fetch() on null in /membri/podset/generatore/pagina.php on line 13

    Cosa devo modificare in queste pagine per far funzionare il tutto?

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Ok, un errore di sintassi che avevo fatto e va sistemato: bisogna modificare pagina.php, riga 13, da
    Codice PHP:
    $page_data $stmt->fetch(); 
    in
    Codice PHP:
    $page_data $sth->fetch(); 
    Gli errori in generatore.php sono causati dal fatto che non riceve correttamente i dati tramite POST. Verifica che il form nella pagina HTML li stia inviando correttamente tramite POST e che i nomi dei campi corrispondano. Non provare ad aprire direttamente generatore.php dal browser: vi si può accedere solo in conseguenza all'invio del form presente in generatore-pagina.html.

    L'errore in pagina.php è simile: siccome la pagina è costruita dinamicamente leggendo i dati dalla base di dati, bisogna indicarle cosa leggere. Per farlo puoi usare una variabile id passata tramite GET. Per visualizzare la pagina dovrai quindi visitare http://podset.altervista.org/pagina.php?id=3, http://podset.altervista.org/pagina.php?id=2, http://podset.altervista.org/pagina.php?id=50 e così via. Questo funzionerà solo dopo che nel database saranno state inserite delle pagine.

    I suggerimenti che do più spesso:


  10. #10
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Così a naso mi sembra che le cose che non vanno sono queste, magari tu puoi confermarmelo:
    nel file generatore-pagina.html la riga <input name="image-url" type="text" placeholder="" /> credo che gli manchi qualche cosa (tipo i nomi) rispetto alle altre sue colleghe della stessa natura. Confermi?

    Poi, per quanto riguarda la verifica del form nella pagina HTML l'ho fatta (anche se siccome è una prova non ho compilato tutti i campi es. modulo form e backgruond non li ho)e cliccando sul tasto genera mi restituisce questo: New page created. ID = 2.

    Il numero 2 sta a significare che è la seconda prova che ho fatto finora.

    Ovviamente credo che non sia il messaggio che dovrebbe apparire ma dovrebbe venire fuori la pagina php
    Giusto?

    Per quanto riguarda la pagina php non ho capito se mi hai detto che devo modificare qualcosa nel codice, oppure no. Se devo modificare qualcosa potresti dirmi su quali righe mi devo muovere?

    P.S: un altro dubbio è questo: cosa ci devo scrivere nel campo relativo allo sfondo background, cioè come lo devo scrivere?
    E nel campo relativo al font basta scrivere il colore in inglese per es. "blue" se voglio far apparire il testo in blu? Oppure devo inserire il codice html del colore?
    Ultima modifica di podset : 26-04-2019 alle ore 11.48.39

  11. #11
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    nel file generatore-pagina.html la riga <input name="image-url" type="text" placeholder="" /> credo che gli manchi qualche cosa (tipo i nomi) rispetto alle altre sue colleghe della stessa natura. Confermi?
    Il nome c'è, come puoi vedere è name="image-url". Mancava un "=" nel placeholder, benché questo non infici il funzionamento, si può correggere in:
    Codice HTML:
    <input type="text" name="image-url" placeholder="URL immagine di sfondo">


    Ovviamente credo che non sia il messaggio che dovrebbe apparire ma dovrebbe venire fuori la pagina php
    Giusto?
    No, il codice attuale inserisce i dati nella base di dati, mostra quel messaggio e si ferma lì. Se vuoi mostrare la pagina devi modificare queste due righe:
    Codice PHP:
    echo "New page created. ID = " $dbh->lastInsertId() . ".";
    $dbh null
    in
    Codice PHP:
    $dbh null;
    header("location:pagina.php?id=" $dbh->lastInsertId()); 
    questo codice reindirizza alla pagina appena creata.



    Per quanto riguarda la pagina php non ho capito se mi hai detto che devo modificare qualcosa nel codice, oppure no. Se devo modificare qualcosa potresti dirmi su quali righe mi devo muovere?
    Se non l'hai già fatto, modifica la riga 13 come indicato nel messaggio #9.



    P.S: un altro dubbio è questo: cosa ci devo scrivere nel campo relativo allo sfondo background, cioè come lo devo scrivere?
    Devi inserire l'URL dell'immagine da mostrare come sfondo.



    E nel campo relativo al font basta scrivere il colore in inglese per es. "blue" se voglio far apparire il testo in blu? Oppure devo inserire il codice html del colore?
    Puoi inserire qualsiasi valore compatibile con la proprietà color di CSS. Vano bene il codice esadecimale, le notazioni rgb e rgba, ed i nomi inglesi. <color> - CSS mostra diversi esempi di valore.

    I suggerimenti che do più spesso:


  12. #12
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Ok, ora farò le modifiche che mi hai detto e ti faccio sapere.
    Mi sono permesso di correggere una mancanza nel file pagina.php al rigo 27.
    Ovvero ho aggiunto una "@" in questo modo: @ font-face: <?= $page_data['font-name']; ?>
    Perché l'editor me lo faceva apparire in rosso. E' giusto così?

    ------

    Ho già fatto le modifiche e il test e mi da questo errore nella pagina generatore.php:
    Fatal error: Call to a member function lastInsertId() on null in /membri/podset/generatore/generatore.php on line 34
    Ultima modifica di podset : 26-04-2019 alle ore 12.45.11

  13. #13
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Ovvero ho aggiunto una "@" in questo modo: @ font-face: <?= $page_data['font-name']; ?>
    In realtà avevo sbagliato, non è font-face la proprietà da usare, ma font-family:
    Codice:
    font-family: <?= $page_data['font-name']; ?>
    senza la chiocciola.



    Ho già fatto le modifiche e il test e mi da questo errore nella pagina generatore.php:
    Errore mio , queste due righe vanno invertite, da così
    Codice PHP:
    $dbh null;
    header("location:pagina.php?id=" $dbh->lastInsertId()); 
    a così:
    Codice PHP:
    header("location:pagina.php?id=" $dbh->lastInsertId());
    $dbh null

    I suggerimenti che do più spesso:


  14. #14
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Bene, ho provato e questa volta funziona, però ci sono ancora un paio di cose...
    Nella pagina che viene fuori dal pulsante "genera", insieme al testo della pagina formattata mi è venuto fuori questo avvertimento: Notice: Undefined index: form-code in /membri/podset/generatore/pagina.php on line 37

    Ha per caso a che fare col fatto che non ho compilato lo spazio adibito al modulo form? Se è così allora non è un problema.

    Poi, siccome mi è venuto fuori la pagina con il testo posizionato sulla sinistra, come posso fare per far venire titolo e sottotitolo al centro, il corpo del testo lasciarlo a destra, e il form posizionarlo dove voglio (per es. a sinistra o al centro)?

  15. #15
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Ha per caso a che fare col fatto che non ho compilato lo spazio adibito al modulo form? Se è così allora non è un problema.
    C'erano un paio di errori di sintassi che ho sistemato. La versione corretta di pagina.php diventa:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    // Connects to database
    $dbh = new PDO('mysql:host=localhost;dbname=my_podset''podset'null);
    $dbh->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

    // Reads page data
    $page_id $_GET['id'];
    $query "SELECT * FROM page WHERE id = :id";
    $sth $dbh->prepare($query);
    $sth->execute([':id' => $page_id]);
    $page_data $sth->fetch();

    if (!
    $page_data) {
        die(
    "Errore: la pagina con id $page_id non esiste.");
    }

    $dbh null;
    ?>

    <!-- Shows page -->
    <html>
      <head>
        <style>
          body {
            background-image: url(<?= $page_data['image_url']; ?>);
            font-family: <?= $page_data['font_name']; ?>
            color: <?= $page_data['font_color']; ?>
          }
        </style>
      </head>

      <body>
        <h1><?= $page_data['title'?></h1>
        <h2><?= $page_data['subtitle'?></h2>
        <div>
          <?= $page_data['form_code']; ?>
        </div>
        <main>
          <?= $page_data['main_text']; ?>
        </main>
        <footer>
          <?= $page_data['footer']; ?>
        </footer>
      </body>
    </html>


    Poi, siccome mi è venuto fuori la pagina con il testo posizionato sulla sinistra, come posso fare per far venire titolo e sottotitolo al centro, il corpo del testo lasciarlo a destra, e il form posizionarlo dove voglio (per es. a sinistra o al centro)?
    Quello mostrato è lo solo scheletro della pagina, puoi personalizzarlo usando HTML e CSS "standard". Come puoi vedere, a parte le prime 20 righe circa, si tratta di una normale pagina HTML.
    Per la centratura puoi usare la proprietà text-align: center; di CSS, per spostare corpo del testo e form puoi intervenire sul posizionamento con position: absolute; (dopo aver creato un contenitore comune con position: relative;), quindi width: 50%; e right: 0;. Oppure puoi usare framework come Bootstrap.

    I suggerimenti che do più spesso:


  16. #16
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Ho fatto un ulteriore test dello script ed ho notato che la parte relativa al font non funziona. Cioè, questa volta ho voluto cambiare un po' i parametri rispetto agli altri test che ho svolto, ovvero ho messo tipo di font "verdana" anziché "arial" e colore font "red" anziché "blue".

    Il risultato che il programma mi ha restituito è stato colore del font in nero e il tipo di font che non era verdana. Sei sicuro che il codice relativo al font sia giusto?

    Poi, per quanto riguarda le direttive che mi hai dato sopra adesso le proverò. Vedrò di capirci qualcosa.
    Ma i parametri css che mi hai dato in quale file li devo inserire. Nel file pagina.php?

    E' in questo punto del file pagina.php che devo inserire i parametri css?
    <style>
    body {
    background-image: url(<?= $page_data['image_url']; ?>);
    font-family: <?= $page_data['font_name']; ?>
    color: <?= $page_data['font_color']; ?>
    }
    </style>
    Lì devo aggiungere queste righe?

    <style>
    body {
    background-image: url(<?= $page_data['image_url']; ?>);
    font-family: <?= $page_data['font_name']; ?>
    color: <?= $page_data['font_color']; ?>
    text-align: center;
    position: absolute;
    position: relative;
    width: 50%;
    right: 0;
    }
    </style>
    Poi se volessi usare il bootstrap, poi dopo non è necessario aggiungere il css come hai scritto di sopra? il bootstrap fa le stesse cose dei parametri css che hai scritto. Giusto?
    Ultima modifica di podset : 27-04-2019 alle ore 16.30.52

  17. #17
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Il risultato che il programma mi ha restituito è stato colore del font in nero e il tipo di font che non era verdana. Sei sicuro che il codice relativo al font sia giusto?
    ...relativamente !
    Ribadisco che il codice che vedi è uno scheletro, spiega a grandi linee quali sono i passi da fare e le strategie da utilizzare. Nel caso di colore e stile del font si tratta di recuperare i dati dalla base di dati ed usarli per generare dinamicamente delle proprietà CSS.
    Scrivendo codice alla cieca, ovvero senza testarlo, ci sono molte cose che possono non funzionare: un punto e virgola che manca, il nome di una variabile sbagliato, eccetera, ma si tratta di piccolezze che si possono risolvere facilmente con un minimo di debug. In questo caso specifico puoi esaminare dal browser il sorgente della pagina prodotta e verificare che il codice CSS sia stato prodotto in modo corretto. Se hai difficoltà puoi riportare il link ad una di queste pagine in modo da poter controllare "di persona".

    Lì devo aggiungere queste righe?
    [...]
    La zona in cui intervenire è quella, ma usando la semantica di CSS in maniera opportuna: non è il body a dover essere largo il 50% e spostato a destra, né può avere contemporaneamente posizione sia assoluta che relativa. Sono i singoli elementi/contenitori a dover avere le proprietà adatte. Se hai dubbi su questo potresti aprire una discussione apposita nella sezione HTML, XTHML e CSS.

    Poi se volessi usare il bootstrap, poi dopo non è necessario aggiungere il css come hai scritto di sopra? il bootstrap fa le stesse cose dei parametri css che hai scritto. Giusto?
    L'uso di Bootstrap ha senso se è uno strumento che già conosci o che intendi comunque studiare nel prossimo futuro. L'uso delle classi offerte da Bootstrap perlopiù ti evita di dover scrivere a mano il CSS per alcuni effetti (per esempio l'allineamento a destra).
    Tutto questo comunque riguarda solamente la resa grafica della pagina, quindi la parte HTML e CSS.

    I suggerimenti che do più spesso:


  18. #18
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Questo è il link della pagina del test di prova

    Come vedi non manca nulla, eppure il font è apparso in nero anche questa volta e il font è sempre lo stesso...

    La zona in cui intervenire è quella, ma usando la semantica di CSS in maniera opportuna: non è il body a dover essere largo il 50% e spostato a destra, né può avere contemporaneamente posizione sia assoluta che relativa. Sono i singoli elementi/contenitori a dover avere le proprietà adatte. Se hai dubbi su questo potresti aprire una discussione apposita nella sezione HTML, XTHML e CSS.

    RISPOSTA: perdonami, ma devi tenere presente che non sono un esperto quindi non so come approcciare il codice nel modo giusto. Per il css pensavo me lo potessi far vedere tu.

    Un'altra cosa: è possibile togliere il rombo con dentro il punto interrogativo al verbo essere [é]?
    Ultima modifica di podset : 27-04-2019 alle ore 17.33.23

  19. #19
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Come vedi non manca nulla, eppure il font è apparso in nero anche questa volta e il font è sempre lo stesso...
    Esaminando la pagina prodotta si ottiene questo:
    Codice HTML:
    ...
        <style>
          body {
            background-image: url();
            font-family: verdana        color: red      }
        </style>
    ...
    da cui è evidente che mancano dei punti e virgola. Si sistema facilmente:
    Codice PHP:
    font-family: <?= $page_data['font_name']; ?>;
    color: <?= $page_data['font_color']; ?>;

    perdonami, ma devi tenere presente che non sono un esperto quindi non so come approcciare il codice nel modo giusto. Per il css pensavo me lo potessi far vedere tu.
    Dai ad un uomo un pesce e lo sfamerai per un giorno, insegnali a pescare e lo nutrirai per la vita!
    Posso fornire qualche indicazione su come fare, che sono più o meno quelle dei messaggi precedenti, ma il forum serve più che altro come strumento di supporto per chiarire dubbi che emergono dopo aver almeno tentato di scrivere del codice ed avere avuto dei problemi specifici. Altrimenti diventa scrittura di codice su commissione , che è un discorso diverso.
    In ogni caso è meglio sistemare prima la questione del codice PHP in modo da avere un sistema funzionante, e pensare alla resa grafica in un secondo momento.


    Un'altra cosa: è possibile togliere il rombo con dentro il punto interrogativo al verbo essere [é]?
    È il classico problema di charset. Aggiungi
    Codice HTML:
    <meta charset="UTF-8">
    in pagina.php, in questo modo:
    Codice:
    ...
    <!-- Shows page -->
    <html>
      <head>
        <meta charset="UTF-8">
    ...

    I suggerimenti che do più spesso:


  20. #20
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Adesso i parametri che inserisco per quanto riguarda il font coincidono.
    C'è sempre però quel pugno in un occhio del rombo col punto interrogativo.
    Non è che forse la riga <meta charset="UTF-8"> va messa prima dell'apertura <head> anziché metterla dopo. Tipo in questo modo:

    <!-- Shows page -->
    <html>
    <meta charset="UTF-8">
    <head>
    Per quanto riguarda il tuo appunto io ho provato a scrivere il codice css da solo ma come hai visto non riesco a farlo nel modo appropriato. Anche perché mi sembra che vada mischiato il codice css con codice php e per me diventa complesso.

    Per cui ti chiedo, se fosse possibile farmi vedere solo il pezzo di codice css relativo al posizionamento dei vari elementi nella pagina te ne sarei grato.

  21. #21
    darbula è connesso ora AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,081

    Predefinito

    Codice HTML:
    <meta charset="ISO-8859-1">
    prova così... Poi dovrai smanettare e vedere che enconding usa il tuo editore (probabilmente WINDOWS-1252).

  22. #22
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Per quanto riguarda il tuo appunto io ho provato a scrivere il codice css da solo ma come hai visto non riesco a farlo nel modo appropriato. Anche perché mi sembra che vada mischiato il codice css con codice php e per me diventa complesso.
    Comincia col dare un'occhiata a Layout e posizionamento e CSS Website Layout.

    I suggerimenti che do più spesso:


  23. #23
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Che vuol dire poi dovrai smanettare per vedere che tipo di enconding usa il tuo editore? Per me è arabo. Non so nemmeno come dovrei fare per individuare questo encoding.Comunque ora provo con <meta charset="ISO-8859-1"> e ti faccio sapere. Poi con i due link che mi hai dato cosa ci dovrei fare? I parametri me li hai già dati nella risposta 18. Si tratta solo di metterli in ordine.

  24. #24
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Allora... ho rifatto il template della pagina e il tutorial di w3schools.com è stato più utile di quanto pensassi.
    Ho aggiunto del codice sia nel css che nella parte relativa all'html. Poi ho rifatto l'ennesimo test e mi è venuto fuori questo...
    (ovviamente non ho inserito ne il backgroung ne il modulo form ma comunque il risultato è soddisfacente. Rimane solo il solito difetto del rombo col punto interrogativo che non so come eliminare.

    Qui ti inserisco anche il codice del template da me rifatto perché vorrei mi dicessi se la sintassi è giusta o se manca qualcosa nel codice che nell'editor mi fa apparire alcune parti in rosso.

    <!-- Shows page -->
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <style>
    * {
    box-sizing: border-box;
    }
    body {
    background-image: url(<?= $page_data['image_url']; ?>);
    font-family: <?= $page_data['font_name']; ?>;
    color: <?= $page_data['font_color']; ?>;
    padding: 10px;
    }
    /* Header/Blog Title */
    .header {
    padding: 30px;
    text-align: center;
    }

    .header h1 {
    font-size: 50px;
    }
    /* Create two unequal columns that floats next to each other */
    /* Left column */
    .leftcolumn {
    float: left;
    width: 75%;
    }

    /* Right column */
    .rightcolumn {
    float: left;
    width: 25%;
    padding-left: 20px;
    }

    /* Fake image */
    .fakeimg {
    width: 100%;
    padding: 20px;
    }

    /* Add a card effect for articles */
    .card {
    padding: 20px;
    margin-top: 20px;
    }

    /* Clear floats after the columns */
    .row:after {
    content: "";
    display: table;
    clear: both;
    }

    /* Footer */
    .footer {
    padding: 20px;
    text-align: center;
    margin-top: 20px;
    }

    /* Responsive layout - when the screen is less than 800px wide, make the two columns stack on top of each other instead of next to each other */
    @media screen and (max-width: 800px) {
    .leftcolumn, .rightcolumn {
    width: 100%;
    padding: 0;
    }
    }
    </style>
    </head>

    <body>
    <div class="header"
    <h1><?= $page_data['title'] ?></h1>
    <h2><?= $page_data['subtitle'] ?></h2>
    </div>
    <div class="row">
    <div class="leftcolumn">
    <div class="card">
    <h2>&nbsp;</h2>
    <h5>&nbsp;</h5>
    </div>
    </div>
    <div class="rightcolumn">
    <div class="card">
    <h2>Form</h2>
    <?= $page_data['form_code']; ?>
    <div class="fakeimg" style="height: 100px;">Image</div>
    <p>&nbsp;</p>
    </div>
    </div>
    </div>
    <main>
    <?= $page_data['main_text']; ?>
    </main>
    <div class="footer">
    <?= $page_data['footer']; ?>
    </div>
    </body>
    </html>
    L'ho rifatto senza mettere i parametri che mi hai suggerito nella conversazione 18

  25. #25
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Allora... ho rifatto il template della pagina e il tutorial di w3schools.com è stato più utile di quanto pensassi.
    [...]
    Qui ti inserisco anche il codice del template da me rifatto perché vorrei mi dicessi se la sintassi è giusta o se manca qualcosa nel codice che nell'editor mi fa apparire alcune parti in rosso.
    Ben fatto !
    A prima vista non mi sembra ci siano errori nel CSS, e la pagina che hai ottenuto sembra infatti essere mostrata correttamente. Quali sono le parti evidenziate in rosso?

    Rimane solo il solito difetto del rombo col punto interrogativo che non so come eliminare.
    Come suggeriva darbula potrebbe essere il set di caratteri usato dall'editor con cui scrivi il codice. Però non è da escludere che sia invece quello impostato per la base di dati.
    Nel dubbio io utilizzerei UTF-8 ovunque: database, pagina e editor. Puoi impostarlo tramite PHPMyAdmin per la base di dati, per la pagina c'è il tag <meta charset="UTF-8">. Per l'editor, dipende da quale usi.

    I suggerimenti che do più spesso:


  26. #26
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Come editor non uso nessun tipo di editor interno al pc, ma uso solo quello all'interno del mio account altervista, quindi uso il vostro. E' con quello che faccio tutte le operazioni e i test.

    Per quanto riguarda le altre questioni ora farò l'ennesima prova con l'ultimo tuo suggerimento e vediamo come va

    Le parti in rosso sono in questi punti:

    <div class="header"
    <h1><?= $page_data['title'] ?></h1>
    <h2><?= $page_data['subtitle'] ?></h2>
    </div>
    Appare in rosso i due tag <h1 e </h1>

    E poi questa parte:

    </div>
    </body>
    </html>
    Che è la parte finale del template.

    Non so forse c'è qualche <div> da chiudere o qualcuno da aggiungere, perché ho dovuto fare un po' di selezione del codice ed eliminare alcune parti di css e codice html per togliere la parte relativa al menu navbar, in quanto esso non mi interessa averlo. quindi non so se c'è da aggiungere qualche contenitore o chiusura.
    Ultima modifica di podset : 29-04-2019 alle ore 17.57.14

  27. #27
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Il problema degli errori in rosso è rientrato. Mi è bastato aggiungere la chiusura al <div class="header"> che m i ero dimenticato di chiudere.

    Ma la stringa <meta charset="ISO-8859-1"> la devo togliere e devo aggiungerci <meta charset="UTF-8"> ? Come la devo scrivere?

    Per quanto riguarda il databse devo andare nella tabella e aggiungere <meta charset="UTF-8"> ?

    Per quanto riguarda il problema dell'editor cambia qualcosa se uso quello di altervista?

    -------

    Per esempio, ora che ho fatto un altro test ho notato che il problema esiste solo quando digito [è] ma se digito [E'] maiuscolo oppure [e'] con l'accento spostato a destra il punto interrogativo non compare. Come mai questo fatto?
    Ultima modifica di podset : 29-04-2019 alle ore 18.56.40

  28. #28
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,757

    Predefinito

    Per esempio, ora che ho fatto un altro test ho notato che il problema esiste solo quando digito [è] ma se digito [E'] maiuscolo oppure [e'] con l'accento spostato a destra il punto interrogativo non compare. Come mai questo fatto?
    Il set di caratteri determina come vengono rappresentati i caratteri dal calcolatore. Più o meno tutti i set di caratteri sono tra loro d'accordo su come memorizzare le lettere dell'alfabeto latino, cioè i simboli a, b, c, ..., z ed altri simboli come gli apostrofi o le cifre. Quindi qualsiasi sia il set di caratteri usato è abbastanza probabile che se ti limiti all'alfabeto latino ed alla punteggiatura, come e' o E' non ci siano problemi. Quando invece inizi ad usare dei simboli che non fanno parte dell'alfabeto latino, per esempio le lettere accentate italiane o dittonghi stranieri come æ, œ, ecc., queste potrebbero venire salvate nel database con una codifica, per semplificare diciamo il codice binario 11001010100, ma lette dalla pagina con una codifica diversa in cui il codice binario 11001010100 corrisponde ad un carattere completamente diverso o -come capita spesso- non corrisponde a niente, quindi il browser non sa cosa mostrare e ci mette un punto interrogativo.

    Ma la stringa <meta charset="ISO-8859-1"> la devo togliere e devo aggiungerci <meta charset="UTF-8"> ? Come la devo scrivere?
    Esatto, ti basta sostituire ISO-8859-1 con UTF-8.


    Per quanto riguarda il databse devo andare nella tabella e aggiungere <meta charset="UTF-8"> ?
    Prova a seguire la guida Default MySQL Character Set and Collation, solo la parte relativa a PHPMyAdmin. Puoi usare utf8_general_ci come indicato nella guida.
    Non ricordo se la modifica abbia effetto retroattivo sui dati già inseriti, dopo aver applicato le modifiche ti conviene effettuare una nuova prova.


    Per quanto riguarda il problema dell'editor cambia qualcosa se uso quello di altervista?
    Con quello non dovresti avere nessun problema.

    I suggerimenti che do più spesso:


  29. #29
    darbula è connesso ora AlterGuru
    Data registrazione
    24-04-2011
    Messaggi
    2,081

    Predefinito

    ecco gli esadecimali è verbo essere in ISO-8859-1 è E8 (siccome non esiste tale esadecimale in utf-8 si vede il rombo) mentre in UTF-8 C3 A8 (questi esadecimali esistono in ISO-8859-1 "Â" e "¨") se il verbo essere proviene da MySQL sta lì il problema.

    Questo per impostare correttamente utf-8 con php Problema PDO con utf8
    Ultima modifica di darbula : 29-04-2019 alle ore 20.52.08

  30. #30
    podset non è connesso Utente giovane
    Data registrazione
    07-07-2016
    Messaggi
    85

    Predefinito

    Ho provato ad impostare il tutto con il tutorial suggerito da mzanella ma non ho risolto nulla.
    Darbula sono andato a vedere la discussione che mi hai suggerito e non ci ho capito molto su quello che dovrei fare. Per uno che ha le mie competenze non è facile capire le dinamiche di un'altra discussione e usarle per risolvere il problema presentato nella mia discussione.

    Se mi potessi mettere in ordine tu i vari step che dovrei eseguire per risolvere il problema mi faresti un gran favore. Ora dovrei usare UTF-8 C3 A8 al posto di UTF-general-ci?

    N.B: io ho trovato questo in giro, secondo voi questo potrebbe risolvere il problema?
    UTF in PHP si usa questa istruzione:

    <?php header('Content-Type: text/html; charset=utf-8'); ?>

    Oppure ho trovato questa pagina...

    --------------------------------

    Ragazzi, mi sono fatto un giro sul web per approfondire la cosa del punto interrogativo e ho capito che è tutto un po' troppo complicato, perché anche se riesco a risolvere io il problema sul mio browser, poi magari qualcun'altro che ha un browser diverso dal mio vedrà lo stesso il punto interrogativo, quindi penso che non valga la pena perderci tempo. Che dite voi?

    Se avete qualche altra dritta da dirmi sarei contento di attuarla altrimenti direi di lasciare tutto com'è e mi concentrerei sul fare un'altra domanda:

    "Ma se io volessi inserire la direttiva di farmi restituire per esempio il titolo di un colore diverso rispetto al resto del testo, basta inserire il campo [Colore font] subito dopo il campo [Titolo], oppure bisogna fare in un altro modo?
    Ultima modifica di podset : 30-04-2019 alle ore 18.22.49

Pagina 1 di 2 12 UltimoUltimo

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •