Newsgroup: it.comp.www.php
Titolo: News senza DB, piccolo problema

Ciao a tutti
ho utilizzato uno script trovato in rete per la creazione di news, l'ho
riadattato includendo la possibilità di inserire immagini (con upload
e resize delle stesse), fin qui tutto ok..
Lo script è Article Manager che si trova all'indirizzo:
http://www.interlogy.com/products/content/article/
In pratica utilizzo il file article_summary.html per mostrare le news
inserite, ad ogni nuovo inserimento sul file suddetto si aggiunge un
codice del genere:
<!--ARTICLE-->
<br>
<table width="350" border="0" cellspacing="2" cellpadding="0" id="ID
DELLA NEWS">
  <tr>
    <td width="32" height="38" valign="top"><img
src="uploads/IMMAGINE.jpg" align="middle">
    </td>
    <td width="312" valign="top"><b class="textsize10"><a
href=#>TITOLO</a></b><br>
      <div class="textsize10">TESTO DELLA NEWS </div>
    </td>
  </tr>
</table>
ora il problema rimane solo la cancellazione delle news, infatti non
sono proprio in grado di eliminare parte del contenuto di un file e
soprattuto "quella parte" del file,
è possibile?
sapete consigliarmi uno script per imparare cose del genere?
Thanks!

 è possibile?
Non puoi cancellare roba dal mezzo di un file, come non puoi
aggiungerne.
Puoi aggiungere e togliere solo alla fine del file.
Quindi se devi fare qualcosa in mezzo, l'unico modo e` rinominare il
sorgente e riscrivere un nuovo file evitando le parti da togliere.
Bye.

Alessandro Pellizzari ha scritto:

Ok , quindi penso che creerò un file per ogni news, per poi
cancellarlo o modificarlo secondo le necessità, in effetti avere tutto
in un file fa impazzire...
Grazie

 escribió en el mensaje 
news:1155589593.6...@i42g2000cwa.googlegroups.com...
Ciao a tutti
ho utilizzato uno script trovato in rete per la creazione di news, l'ho
riadattato includendo la possibilità di inserire immagini (con upload
e resize delle stesse), fin qui tutto ok..
Lo script è Article Manager che si trova all'indirizzo:
http://www.interlogy.com/products/content/article/
In pratica utilizzo il file article_summary.html per mostrare le news
inserite, ad ogni nuovo inserimento sul file suddetto si aggiunge un
codice del genere:
<!--ARTICLE-->
[cut]
</table>
ora il problema rimane solo la cancellazione delle news, infatti non
sono proprio in grado di eliminare parte del contenuto di un file e
soprattuto "quella parte" del file,
è possibile?
Dovresti modificare il propramma che salva gli articoli in modo da 
aggiungere un identificatore tipo <!--ARTICLE 123-->
Ti carichi tuo il file in una variabile in modo da poter cercare l'inizio 
dell'articolo con
$inicio= strpos($file_articoli,'<!--ARTICLE 123--> ');
a questo punto sai dove cominca l'articolo.
Se non vedo male gli articoli terminano con il tag </table> che non esiste 
nel corpo dell'articolo.
Quindi con substr() dividi il file in due pezzi, il primo è quello che 
precede l'inizio dell'articolo, il secondo il resto.
Nella seconda parte cerchi con lo stesso sistema la prima occorrenza di 
</table> e hai trovato la fine dell'articolo.
Dividi come prima e ti risulta la parte del file dopo la fine dell'articolo.
A queto punto unisci le parti che ti interessano, prima e dopo l'articolo e 
salvi il risultato.
Ciao
sicampa

$imgfile");
        /*== remove temp image ==*/
        unlink($tmpimg);
    }
    /*== setup final file location and name ==*/
    /*== change spaces to underscores in filename  ==*/
    $final_filename = str_replace(" ", "_", $imgfile_name);
    $newfile = $uploaddir . "/$final_filename";
    /*== do extra security check to prevent malicious abuse==*/
    if (is_uploaded_file($imgfile))
    {
       /*== move file to proper directory ==*/
       if (!copy($imgfile,"$newfile"))
       {
          /*== if an error occurs the file could not
               be written, read or possibly does not exist ==*/
          print "Errore durante l'upload del file. Prego ritentare...";
          exit();
       }
     }
    /*== delete the temporary uploaded file ==*/
    unlink($imgfile);
    /*== DO WHATEVER ELSE YOU WANT
         SUCH AS INSERT DATA INTO A DATABASE  ==*/
	$titolo = $HTTP_POST_VARS["titolo"];
	$testo = $HTTP_POST_VARS["testo"];
	$id = date("His");
	$testo1 = "<br>";
	$testo1 = $testo1 . "<table width='350' border='0' cellspacing='2'
cellpadding='0'><tr>";
	$testo1 = $testo1 . "<td width='32' height='38' valign='top'><img
src='uploads/".$final_filename."' align='middle'></td>";
   	$testo1 = $testo1 . "<td width='312' valign='top'><b
class='textsize10'><a href=#>".$titolo."</a></b><br>";
    $testo1 = $testo1 . "<div
class='textsize10'>".$testo."</div></td></tr>";
    $testo1 = $testo1 . "<tr><td colspan='2' height='5'
valign='top'><div class='textsize10'><img src='jpeg/lineaNews.jpg'
width='333' height='5'></div></td></tr>";
    $testo1 = $testo1 . "</table>";
    if ($titolo != "") {
	$filename = "news/news_".$titolo."_".$id.".txt";
	$handle2 = fopen($filename, "w");
	echo "Creato file ".$filename."";
	fclose($handle2);
	}
	if (is_writable($filename)) {
   // In questo esempio apriamo $filename in append mode.
   // Il puntatore del file è posizionato in fondo al file
   // è qui che verrà posizionato $testo quando eseguiremo fwrite().
   if (!$handle = fopen($filename, 'a+')) {
         echo "Non si riesce ad aprire il file ($filename)";
         exit;
   }
   // Scrive $testo nel file aperto.
   if (!fwrite($handle, $testo1) ===TRUE) {
       echo "Non si riesce a scrivere nel file ($filename)";
       exit;
   }
   fclose($handle);
} else {
   echo "Il file $filename non è accessibile";
}
}
?>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form action="<?=$SCRIPT_NAME; ?>" method="POST"
enctype="multipart/form-data">
  titolo<br>
  <input type="text" name="titolo">
  <br>
  testo <br>
  <textarea name="testo"></textarea>
  <br>
  immagine da caricare<br>
  <input type="file" name="imgfile"><input type="hidden"
name="MAX_FILE_SIZE" value="1000000"><br>
  <input type="submit" name="Submit" value="Salva">
</form>
<br><br><br>
News appena inserita:<br><br>
<?php
	$filenameR = "news/news_".$titolo."_".$id.".txt";
	if (file_exists($filenameR))
	{
	$handleR = fopen($filenameR, "r");
	$contents = fread($handleR, filesize($filenameR));
	echo "<br>".$contents."";
	fclose($handleR);
	}
?>
</body>
</html>
<?php
    /*== FUNCTIONS ==*/
    function getFileExtension($str) {
        $i = strrpos($str,".");
        if (!$i) { return ""; }
        $l = strlen($str) - $i;
        $ext = substr($str,$i+1,$l);
        return $ext;
    }
?>
In pratica dal form prendo il TITOLO il TESTO e l'immagine da inserire
nella news, salvo il tutto in un file txt in HTML del tipo:
<br>
<table width="350" border="0" cellspacing="2" cellpadding="0">
  <tr>
    <td width="32" height="38" valign="top"><img src="uploads/IMMAGINE
CHE HO UPLOADATO.jpg" align="middle">
    </td>
    <td width="312" valign="top"><b class="textsize10"><a
href=#>TITOLO</a></b><br>
      <div class="textsize10">TESTO</div>
    </td>
  </tr>
  <tr>
    <td colspan="2" height="5" valign="top">
      <div class="textsize10"><img src="jpeg/lineaNews.jpg" width="333"
height="5"></div>
    </td>
  </tr>
</table>
e poi lo rileggo con:
        $contents = fread($handleR, filesize($filenameR));
        echo "<br>".$contents."";
in modo che viene già formattato in html, poi se lo voglio cancellare
posso farlo con comodità!
Il tutto funziona, quindi sono felice!!!! :)))
Hai qualche suggerimento da darmi?

 Hai qualche suggerimento da darmi?
Io ne ho uno. :)
Stai usando funzioni, procedure, costanti, variabili, impostazioni
obsolete e deprecate.
Con PHP 5 (impostazioni di default) e con PHP 6, questo script non
funziona.
Leggi bene il manuale (
www.php.net
 -> documentation) sull'upload dei
file, sulle superglobals, su register_globals, sui cambiamenti tra PHP 3
e PHP 4 (perche` stai usando roba della versione 3, vecchia di almeno 5
anni)
Sarebbe lungo spiegarlo sul newsgroup, e visto che nel manuale e`
scritto tutto, fai prima tu a leggerlo li` e noi a non intasare il
newsgroup con discussioni che, peraltro, sono state gia` fatte negli
anni scorsi.
Bye.

Alessandro Pellizzari ha scritto:

Per la gestione dei file ho preso tutto da 
php.net
, quindi vanno bene,
l'upload l'ho scaricato dalla rete quindi ... lo correggerò :)
Per il momento funziona tutto, ed è quella la cosa importante
Ho solo fatto una cosetta che forse non è il massimo, ho salvato dei
file sul server con caratteri del tipo ' > < ecc ecc, abbastanza
dannosi infatti non me li fa più cancellare!
Come faccio?
Tnx