• User Attivo

    Blog Php + Database

    Salve ragazzi
    Ho un blog nel mio sito dove, inseriti i messaggi, vanno a registrarsi su un file di testo.
    Come potrei fare per trasportare tutto sul database My Sql?
    I file sono:
    Confic.php; Visualizzamessaggi.php; Insert.php; Form.php

    In piu' si puo' creare uno script che cerca i messaggi in un file di testo?
    (sono scritti in sequenza e non sono ovviamente contenuti in variabili).

    Grazie


  • Super User

    Ciao.
    Per il "trasporto" in mysql,è necessario postare i file per verificare il modo in cui sono inseriti i dati (delimitatori,campi ecc...)

    Per la ricerca certo che si può fare ma dipende comunque dai fattori detti sopra 😄 🙂
    ciao!


  • User Attivo

    Posso postarli?


  • Super User

    Certo 🙂 😄


  • User Attivo

    config.php

    [php]<? include("area_riservata.php"); ?>
    <html>
    <head>
    <title>Pannello di configurazione</title>
    </head>
    <body>
    <?php
    // Pannello di configurazione guestbook
    $home = "http://www.lavorasubito.org"; // Cambiate $home inserendo l'indirizzo web dell'homepage del vostro sito
    $file = "guest.txt"; // Nome del file dove verranno salvati i messaggi
    $risultati_per_pagina = 9; // Numero di messaggi visualizzati per pagina
    $word_lenght="100"; // Lunghezza massima di una parola nel messaggio
    ?>
    </body>
    </html>
    [/php]

    form.php
    [php]
    <?
    include("config.php");
    if (!(file_exists($file)))
    {fopen($file,"w");}
    $arr_mess=file($file);
    $count=count($arr_mess);
    $pagine_totali= ceil($count/$risultati_per_pagina);
    ?>
    [/php]
    insert.php
    [php]
    <?php
    include("config.php");
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $url=$_POST['url'];
    $messaggio=$_POST['messaggio'];
    // Rilevazione tag html, presenza del nome e del messaggio
    $cercanome = strstr($nome,"<");
    $cercanome2 = strstr($nome,">");
    $cercaem = strstr($email,"<");
    $cercaem2= strstr($email,">");
    $cercaurl = strstr($url,"<");
    $cercaurl2 = strstr($url,"<");
    $cercames = strstr($messaggio,"<");
    $cercames2 = strstr($messaggio,">");
    $parole=explode(" ",$messaggio);
    $dim_parole=count($parole);
    $check=1;
    for ($i=0;$i<$dim_parole;$i++)
    {
    if ( strlen($parole*) > $word_lenght )
    {
    $check=0;
    }
    }
    if ($check==1)
    {
    if ( $cercanome & $cercanome2 ){
    echo "<center><b><font size="2">Il tuo messaggio non è stato inserito perchè ci sono tag HTML</font></b></center><br>";
    echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
    }
    elseif ( $cercaem & $cercaem2 )
    {
    echo "<center><b><font size="2">Il tuo messaggio non è stato inserito perchè ci sono tag HTML</font></b></center><br>";
    echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
    }
    elseif ( $cercaurl & $cercaurl2 )
    {
    echo "<center><b><font size="2">Il tuo messaggio non è stato inserito perchè ci sono tag HTML</font></b></center><br>";
    echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
    }
    elseif ($cercames & $cercames2)
    {
    echo "<center><b><font size="2">Il tuo messaggio non è stato inserito perchè ci sono tag HTML</font></b></center><br>";
    echo "<center><b><font size="2"><a href="form.php">TORNA INDIETRO</a></font></b></center>";
    }
    elseif (($email!="") & !(ereg("([[:alnum:].-]+)(@[[:alnum:].-]+.+)", $email)))
    {
    echo "<center><b><font size="2">L'indirizzo E-Mail non è valido</font></b></center><br>";
    echo "<center><font size="2"><a href='javascript:history.back();'>TORNA INDIETRO</a></font></center>";
    }
    elseif ( ($url!="") & !(eregi("<A href="http://",$url">http://",$url)) )
    {
    echo "<center><b><font size="2">L'URL deve contenere http:// ALL'INIZIO</font></b></center><br>";
    echo "<center><font size="2"><a href='javascript:history.back();'>TORNA INDIETRO</a></font></center>";
    }
    else{
    if ($nome == "")
    { echo "<center><font size="2">Devi inserire il tuo nome</font></center><br>";
    echo "<center><font size="2"><a href="form.php">TORNA INDIETRO</a></font></center>";
    }

    elseif ($messaggio == "")
    { echo "<center><font size="2">Devi inserire il messaggio</font></center><br>";
    echo "<center><font size="2"><a href="form.php">TORNA INDIETRO</a></font></center>";
    }
    else{
    $messaggio=ereg_replace("\n","<br>",$messaggio);
    $messaggio=stripslashes($messaggio);
    $nome=stripslashes($nome);
    $data=date("d/m/Y");
    $orario=date("H.i");
    $commento=$nome."|".$email."|".$url."|".$messaggio."|".$data."|".$orario."\n";
    if (!(file_exists($file)))
    {fopen($file,"w");}
    // Scrittura del nuovo messaggio su file
    $new_mess=fopen($file,"a+");
    fwrite($new_mess,$commento);
    fclose($new_mess);
    $arr_mess=file($file);
    $count=count($arr_mess);
    $pagine_totali= ceil($count/$risultati_per_pagina);
    $tab_ins= "<table width="400" align="center" cellpadding="5" cellspacing="0" bordercolor="#333333" bgcolor="#FFFFFF" style="border:1px solid;">";
    $tab_ins .= "<tr><td><center><font family="Arial" size="2">IL TUO MESSAGGIO E' STATO INSERITO</font></center>";
    $tab_ins .= "</td></tr></table><br>";
    $tab_ins .= "<table width="400" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000" bgcolor="#FFFFFF" style="border:1px solid;">";
    $tab_ins .="<tr><td bgcolor="#FFFFCC"><center><font family="Arial" size="2"><a href='messaggi.php?pagina=$pagine_totali'>Visualizza i messaggi</a></font></center></td></tr></table>";
    echo $tab_ins;
    }
    }
    }
    else
    {
    echo "<center><font face="Verdana" size="2">Hai inserito nel messaggio una parola troppo lunga</font></center><br>";
    echo "<center><font size="2"><a href="form.php">TORNA INDIETRO</a></font></center>";
    }
    ?>
    [/php]
    Visualizzamessaggi.php
    [php]
    <?php
    include("config.php");
    // Creazione del file di testo se non esiste
    if (!(file_exists($file)))
    { fopen($file,"w"); }
    // Conteggio del numero di pagina e del numero di messaggi
    $pagina=$_GET['pagina'];
    $rows_file=file($file);
    $count=count($rows_file);
    $numero_messaggi=$count;
    if ($numero_messaggi == 0)
    {
    echo "<center><font family="Verdana" size="2">NON CI SONO ANCORA MESSAGGI</font></center>";
    }
    $inizio=0;
    $pagine_totali= ceil($count/$risultati_per_pagina);
    // Pagina che si sta visualizzando
    if (isset($pagina) AND $pagina > 0)
    {
    if ($pagina > $pagine_totali)
    {
    $pagina = $pagine_totali;
    } else
    {
    $inizio=$pagina*$risultati_per_pagina - $risultati_per_pagina;
    }
    } else {
    $pagina = 1;
    $inizio = 0;
    }
    $pagina_precedente = $pagina - 1;
    $pagina_seguente = $pagina + 1;
    if ($pagina_precedente < 1)
    {
    $pagina_precedente = 1;
    }
    if ($pagina_seguente > $pagine_totali)
    {
    $pagina_seguente = $pagine_totali;
    }
    ?>

    <?php
    // Estrazione dati e paginazione

    // Estrazione dei messaggi e stampa su schermo
    $mess_pag=array_slice($rows_file,$inizio,$risultati_per_pagina);
    $mess_pag=array_reverse($mess_pag);
    $cont1=count($mess_pag);
    $cont2=0;
    while ($cont2<$cont1) {
    $mess=$mess_pag[$cont2];
    $info=explode("|",$mess);
    $nome=$info[0];
    $email=$info[1];
    $url=$info[2];
    $messaggio=$info[3];
    $data=$info[4];
    $orario=$info[5];
    // Creazione della tabella contenente tutti i dati del messaggio
    if (($email=="") & ( $url==""))
    {
    $riga="<tr><td bgcolor="#FFFFCC"><font size="1" face="Verdana"><b>$nome</b> | data: $data | ore: $orario</font></td></tr>";
    $riga.="<tr><td bgcolor="#FFFFFF"><font size="1" face="Verdana">$messaggio</td></tr>";
    }
    if ( (!($email=="")) & ( $url==""))
    {
    $riga="<tr><td bgcolor="#FFFFCC"><font size="1" face="Verdana"><b>$nome</b> | data: $data | ore: $orario</font><a href="mailto:$email" title="Indirizzo email di $nome"><img src="http://www.giorgiotave.it/forum/images/email.gif" border="0" align="absmiddle"></a></td></tr>";
    $riga.="<tr><td bgcolor="#FFFFFF"><font size="1" face="Verdana">$messaggio</td></tr>";
    }
    if ( ($email=="") & (!( $url=="")) )
    {
    $riga="<tr><td bgcolor="#FFFFCC"><font size="1" face="Verdana"><b>$nome</b> | data: $data | ore: $orario</font><a href="$url" target="_blank" title="Sito di $nome"><img src="http://www.giorgiotave.it/forum/images/home.gif" border="0" align="absmiddle"></a></td></tr>";
    $riga.="<tr><td bgcolor="#FFFFFF"><font size="1" face="Verdana">$messaggio</td></tr>";
    }
    if ( (!($email=="")) & (!( $url=="")) )
    {
    $riga="<tr><td bgcolor="#FFFFCC"><font size="1" face="Verdana"><b>$nome</b> | data: $data | ore: $orario</font><a href="mailto:$email" title="Indirizzo email di $nome"><img src="http://www.giorgiotave.it/forum/images/email.gif" border="0" align="absmiddle"></a> <a href="$url" target="_blank" title="Sito di $nome"><img src="http://www.giorgiotave.it/forum/images/home.gif" border="0" align="absmiddle"></a></td></tr>";
    $riga.="<tr><td bgcolor="#FFFFFF"><font size="1" face="Verdana">$messaggio</td></tr>";
    }
    echo $riga;
    $cont2++;
    }
    ?>

    <? if (!($pagina == 1)){
    if (!($pagine_totali == 0)){ echo "<a href="messaggi.php?pagina=$pagina_precedente"><img src="http://www.giorgiotave.it/forum/images/left.jpg" width="200" height="20" border="0" title="Pagina precedente"></a>"; }} ?>
    </div></td>
    <td><div align="center">
    <? if (!($pagina == $pagine_totali)){
    if (!($pagine_totali == 0)){ echo "<a href="messaggi.php?pagina=$pagina_seguente"><img src="http://www.giorgiotave.it/forum/images/right.jpg" width="200" height="20" border="0" title="Pagina seguente"></a>"; }}?>

    [/php]

    ho postato solo i codici senza html, tanto non serve.


  • Super User

    mmh...non hai capito :D,io intendevo i files di testo usati come db! 🙂


  • User Attivo

    Ecco il messaggi vengono salvati cosi'

    Marco|email|nomesito|Ciao a tutti e Benvenuti nel blog di flory|17/05/2007|14.53


  • Super User

    Bene :),allora puoi provare a cercare i messaggi in questo modo:
    (la variabile che contiene la parola da cercare è $stringacercata)
    [php]
    foreach(file("guest.txt") as $riga){
    $el=explode("|",$riga);
    if($el[3]==$stringacercata){
    echo "risultati della ricerca di <B>".$stringacercata nel database:"</B><br />".$el[3];
    }
    }
    [/php]Ciao!


  • User Attivo

    Grazie mat , ma dove lo metto questo script?


  • Super User

    Crea un nuovo file (nome a tua discrezione) e inseriscilo lì.
    Poi richiama da browser: nomepagina.php?stringacercata=xyz
    xyz vanno sostituiti con il messaggio da ricercare nel db 😉
    Ciao!