Ciao a tutti, sto provando a passare ad un programma php dati sia tramite stringa che tramite form, ma non riesco a far coincidere le varie parti...
La pagina "inserisci.php" mi carica una serie di righe prese da un file di testo con il seguente formato:

(id|NumeroArticolo|Titolo|NumeroParagrafo|testo|fo to)

articoli.txt
1|1|titolo1|1|testo|foto|
2|1|titolo1|2|testo|foto|
3|1|titolo1|3|testo|foto|
4|2|titolo2|1|testo|foto|
5|2|titolo2|2|testo|foto|
6|2|titolo2|3|testo|foto|
7|2|titolo2|4|testo|foto|


e vicino ad ogni riga posiziona il link "salva" tramite il quale passo il numero articolo e il numero di paragrafo dell'eventuale testo o titolo modificato. Se posiziono il cursore sul link, mi visualizza le variabili correttamente

inserisci.php:

codice:
<?php

$textfile = fopen("articoli.txt", "r");

while ($rigafile = fgets($textfile,4096)) {
     $campiriga = explode("|", $rigafile);
     ?>
     <p align="center">
     <form action="update.php" method="POST">
         Numero articolo <?php echo $campiriga[1];?>
         <?php
         caricarticolo($campiriga[1],$campiriga[2],$campiriga[3],$campiriga[4]);
     </form>
     <?php
}                    
?>






<?php
    function caricarticolo($numart, $numpar, $titolo, $testo)  {
        ?>
        <a href = "updatearticolo.php?numart=<?php echo $numart;?>&numpar=<?php echo $numpar;?>">Salva</a>
        Titolo <textarea name="titolo" rows="1" cols="80"><?php echo $titolo;?></textarea>
        Testo <textarea name="passo" rows="19" cols="60"><?php echo $testo;?></textarea>
?>


Il link richiama questo script in cui con un ciclo controllo tutto il file di testo e quando trovo numero articolo e numero paragrafo passati dal link, sostituisco testo e titolo e trascrivo il file

update.php:


codice:
<?php

$numart = $_POST["numart"];           
$numpar = $_POST["numpar"];

$textfile = fopen("articoli.txt", "r");
$textfile_new = fopen("articoli_new.txt", "a");

while ($rigafile = fgets($textfile,4096)) {
    $cr = explode("|", $rigafile);
    if (($cr[1] == $numart)&&($cr[3] == $numart)) {
	$cr[2] = $_POST["titolo"];
	$cr[4] = $_POST["passo"];
        
        $nuovariga = $cr[0]."|".$cr[1]."|".$cr[2]."|".$cr[3]."|".$cr[4]."|".$cr[5]."|".$cr[6]."|\r\n";
	fwrite($textfile_new, $nuovariga);
        
    }else{
	fwrite($textfile_new, $rigafile);
    }
}


?>

Almeno questo dovrebbe essere il funzionamento ma quest'ultimo script mi da errore alle righe 2 e 3 come se non trovasse quelle variabili.
A questo script passo le variabili "numart" e "numpar" tramite link, mentre "titolo" e "passo" tramite fo