Visualizzazione risultati 1 fino 9 di 9

Discussione: gestire articoli in HTML in un database [era: HTML in PHP]

  1. #1
    Guest

    Predefinito gestire articoli in HTML in un database [era: HTML in PHP]

    Non sapevo che titolo fosse apropriato quindi vengo subito al problema:
    ho trovato uno script che amministra degli articoli che sono contenuti all'interno del database e questo è lo script che li legge
    Codice PHP:
    <?php
    $db
    = mysql_connect($db_host, $db_user, $db_password);
    $id=$_GET['id'];
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "SELECT id, titolo, autore, email, giorno, mese, anno, testo FROM $tabella WHERE id='$id'";
    $result = mysql_query($query, $db);
    $row = mysql_fetch_array($result);
    $informazioni = "<p class=\"dettagli\">Questa guida risale al <u>$row[giorno]/$row[mese]/$row[anno]</u> scritta da <u>$row[autore]</u> contattabile a <a href=mailto:$row[email]?subject=Assistenza%20tutorial%20".$tipo."%20numero%20".$row[id].">$row[email]</a><br>" ;
    echo
    "<b class=\"titol\">$row[titolo]</b><br><br>";
    echo
    "<p class=\"testo\">$row[testo]</p><br><br>";
    if (
    $row[email] != "")
    echo
    "$informazioni" ;
    else
    echo
    "$row[giorno]/$row[mese]/$row[anno], $row[autore]<br>";
    echo
    "<br><a href=index.php><p class=\"link\">Torna in dietro</p></a>";
    mysql_close($db);
    ?>
    pero negli articoli c'è anche del html che deve essere interpretato ma questo non avviene come posso risolvere?

  2. #2
    Guest

    Predefinito

    Il problema non sta in questo file, ma in quello che memorizza.
    Postaci quest'ultimo.


    Ciao!

  3. #3
    Guest

    Predefinito

    umh mi sa che hai ragione perche ho guardato sul database e tutti gli apici, > e < sono "diversi"
    il codice comunque è questo
    Codice PHP:
    include ($url."inc/config.inc.php");
    $tipo=$_REQUEST['tipo'];
    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $email=$_REQUEST['email'];
    $voto=$_REQUEST['voto'];
    $difficolta=$_REQUEST['difficolta'];
    $descrizione=$_REQUEST['descrizione'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    if (
    $pass != $password): echo "Password errata";
    elseif (
    trim($titolo) == "" OR trim($testo) == ""):
    echo
    "I campi Titolo e Testo devono essere riempiti!";
    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $email = addslashes(stripslashes($email));
    $descrizione = addslashes(stripslashes($descrizione));
    $testo = addslashes(stripslashes($testo));
    $titolo = str_replace("<", "&lt;", $titolo);
    $titolo = str_replace(">", "&gt;", $titolo);
    $autore = str_replace("<", "&lt;", $autore);
    $autore = str_replace(">", "&gt;", $autore);
    $descrizione = str_replace("<", "&lt;", $descrizione);
    $descrizione = str_replace(">", "&gt;", $descrizione);
    $descrizione = nl2br($descrizione);
    $testo = str_replace("<", "&lt;", $testo);//credo che il problema sia qui
    $testo = str_replace(">", "&gt;", $testo);//e qui
    $testo = nl2br($testo);//e qui
    $giorno = date ("d");
    $mese = date ("m");
    $anno = date ("Y");
    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.inc.php");
    $query = "INSERT INTO tuto_$tipo (titolo, autore, email, giorno, mese, anno, voto, difficolta, descrizione, testo) VALUES ('$titolo', '$autore', '$email', '$giorno', '$mese', '$anno', '$voto', '$difficolta', '$descrizione', '$testo')";
    if (
    mysql_query($query, $db))
    echo
    "L'articolo è stato inserito correttamente";
    else
    echo
    "Errore durante l'inserimento";

    //endif;
    mysql_close($db);
    endif;
    // chiude la verifica della presenza dei dati
    Ultima modifica di webeasy : 24-12-2008 alle ore 12.30.19

  4. #4
    Guest

    Predefinito

    Lo puoi notare tu stesso: togli tutti i str_replace che convertono i simboli < e > nelle variabili.


    Ciao!

  5. #5
    Guest

    Predefinito

    Quello è uno script fatto nella guida "PHP/MySQL pratica" da HTML.it ...ma è fatto male!

  6. #6
    Guest

    Predefinito

    e... quindi?
    (utilità di questo tuo post?)


    Ciao!

  7. #7
    Guest

    Predefinito

    grazie mille era proprio questo il problema

    Citazione Originalmente inviato da sIM Visualizza messaggio
    Quello è uno script fatto nella guida "PHP/MySQL pratica" da HTML.it ...ma è fatto male!
    per questo lo modificato aggiugendoci varie parti

    volevo chiedere un ultima cosa ma non so se aprire un nuovo topic
    intanto faccio qua la domanda
    è possibile modificare la scritta "Hai raggiunto la soglia massima di queries che il tuo database può eseguire in un'ora, fai l'upgrade ad una classe superiore." visto che mi appare direttamente nel sito?
    Ultima modifica di webeasy : 24-12-2008 alle ore 12.52.16

  8. #8
    Guest

    Predefinito

    E' già stato chiesto migliaia di volte: non è possibile.


    Ciao!

  9. #9
    Guest

    Predefinito

    scusa
    comunque grazie
    ciao

Regole di scrittura

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