Originariamente inviato da sitodue
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