- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problema script per news aggiornabili
-
Guarda io uso Php e MySql da pochi mesi (indi non sono un esperto)......e ti posso dire che a parte la semplicità (la gestione del Db tramite PhpMyAdmin è "elementare") riesco ad ottenere quel che voglio, quasi sempre diciamo :D, certe volte tramite "ripieghi" (magari perchè non conosco tutti i comandi ovviamente) o implementando altri linguaggi tipo js
-
Perfetto sei la persona giusta per indicarmi cosa devo fare per raggiungere il mio obbiettivo.
come procedo?
ciao
-
prima di tutto controlla che il server dove hai l'Hosting supporti PHP5 ed abbia un database MySql 5.
Ti fai abilitare all'uso del Db ed una volta dentro vai in Phpmyadmin.....vedrai da solo il da fare.....io ora scappo senno' la tipa mi distrugge, ci becchiamo dopo
-
ok non ti preoccupare!
volevo realizzare il tutto sul mio server virtuale ho installato easyphp 1.8.0.1
non so se supporta php5 , se me dici cosa usi tu lo scarico cosi non ci sono problemi.
-
[si avvicina quatto quatto per non farsi scoprire :D:D]
allora installati Xampp, ha tutto dentro e si autoconfigura così non ti perdi nei settaggi :D:D:D
ariscappo
-
Non ho ancora avuto il tempo di scaricare xampp
no ce una soluzione col php4?
-
Puoi installarti i programmi uno per uno, ma configurarli diventa un po' macchinoso.
Con Xampp installi, metti quattro cose di configurazione e sei prontoEDIT: dimenticavo, oppure lasci stare il Db e gestisci tutto tramite un file di testo
-
gurda io vorrei la soluzione piu semplice, senza db posso aggiornare il tutto tramite un form? se si facciamo anche senza db, a me interessa solo tramite un form aggiornare una sezione...
ciau
-
Ok, togliamo il Db, gestiamo tutto con file di testo
creati un file news.txt e uppalo nella directory che vuoi, per comodità facciam finta che sia la root e che il file da dove ti posti le news si chiami control_panel.php (quello che dovrai creare per capirci ), ti gestisci tutto con lo stesso file:
La pagina con il form dovrà avere questa struttura:
[php]echo "<form action='control_panel.php' method='GET' name='news'>
<textarea tabindex=1 wrap=virtual name=text cols=28 rows=6>"; //** wrap virtual serve a non far mettere gli "a capo" anche se nella textarea ci andrai, cols e rows sono le colonne e le righe, giostratele per come preferisci */
echo "<input tabindex=2 type=submit value='Invia'>
<input type=reset tabindex=3 value='Reset'></form>";//** Tiriamoci su l'orario attuale /
setlocale(LC_TIME, "it_IT");
$DATE= time();
$ARRAY_DATA=getdate($DATE);
$H = $ARRAY_DATA['hours'];
$M = $ARRAY_DATA['minutes'];
$S = $ARRAY_DATA['seconds'];
$T = $ARRAY_DATA['mon'];
$D = $ARRAY_DATA['mday'];
$Y = $ARRAY_DATA['year'];
$DATE=mktime($H, $M, $S, $T, $D, $Y);
$DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);
//* in tal modo abbiamo la data ed ora attuale nel formato 2007-12-11 20:26:50 */$file="news.txt"; //* assegnamo il path del file /
$text="";
$text=$_GET['text']; // assegni quanto postato dalla text area alla variabile e quindi passi al controllo se la variabile ha un valore prima di scrivere sul file /
if ($text!="")
{
$handle = fopen ($file, "ab"); //* comando per l'apertura del file /
$write = $DATA."@".$text."\n"; //* scriverà singole righe (\n alla fine sta per newline) mettendo la data e poi il testo separati dal simbolo @ /
fwrite ($handle, $write); //* scriviamo sul file /
fclose($handle); //* ed infine chiudiamo il file, da non dimenticare MAI!!! */
}
[/php]
ovviamente questo è solo il form, poi i "fiorellini" li devi mettere tu (body e quant'altro).per visualizzare il contenuto del file, e quindi le news vere e proprie creerai il file news.php:
[php]$file="news.txt";
$textarray=file($file); //** ci tiriamo su un array delle varie righe del file */
$i=0;
echo "<table><caption align=center>NEWS</caption>";
while($i<count($textarray))
{$string=substr($textarray*, 0,-1);
list($data, $text)=explode("@", $string); //**esplodiamo la riga che lui troverà scritta nel segunte modo: 2007-12-12 20:26:50@testodellanews, e la separiamo assegnado quello che sta prima della @ a $data e quello che sta dopo a $text ed infine li facciam vedere */
echo '<tr valign=center>';
echo "<td>".$data."</td><td>".$text."</td>";
echo '</tr>';
}
echo '</table>'; [/php]
in tal modo ti intabellerà il tutto, come sempre ai fiorellini ci penserai teForse non è il metodo migliore, ripeto non sono un esperto, ma almeno è un metodo
Spero ti sia utile
Ciau
-
Grazie Samyorn, le tue conoscienze non sono niente male!
nel file conrol_panel.php cè un piccolo errore nell' html ( cè da chiudere la textarea </textarea>) no problem...;)
il problema che non sono invece in grado di risolvere e quello che
easyphp segnala alla seguente riga del file control_panel.php:$text=$_GET['text']; //* assegni quanto postato dalla text area alla variabile e quindi passi al controllo se la variabile ha un valore prima di scrivere sul file */
Infatti il tutto funziona però nella pagina news PHP non appare una sola volta il testo scritto nella textarea, Ma viene ripetuto moltissime volte
es:
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfgnel file di testo news.txt è scritto 2007-12-12 11:51:16 gfh... correttamente una sola volta,
qule puo essere l'errore? forse ho sbagliato qualcosa io...ti ringrazio della pazienza ciau!
-
@markez said:
nel file conrol_panel.php cè un piccolo errore nell' html ( cè da chiudere la textarea </textarea>) no problem...;)
opsss.....nella fretta
@markez said:
il problema che non sono invece in grado di risolvere e quello che
easyphp segnala alla seguente riga del file control_panel.php:$text=$_GET['text'];
uhm....cambia gli apici (')con le virgolette (") e togli pure il commento, non si sa mai@markez said:
Infatti il tutto funziona però nella pagina news PHP non appare una sola volta il testo scritto nella textarea, Ma viene ripetuto moltissime volte
es:
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfg
2007-12-12 11:51:16gfhfgfhfgfhfgnel file di testo news.txt è scritto 2007-12-12 11:51:16 gfh... correttamente una sola volta,
qule puo essere l'errore? forse ho sbagliato qualcosa io...ti ringrazio della pazienza ciau!
ho dimenticato di incrementare $i
a fine ciclo, prima di chiudere la parentesi graffa metti $i=$i++, ovvio che andava in loop XD scusa la sbadataggine
-
Mannagiuz!
news.php va ancora in loop ti posto il codice che php con la correzzione da te indacata:<?php
$file="news.txt";
$textarray=file($file); //** ci tiriamo su un array delle varie righe del file */
$i=0;
echo "<table><caption align=center>NEWS</caption>";
while($i<count($textarray))
{$string=substr($textarray*, 0,-1);
list($data, $text)=explode("@", $string); //**esplodiamo la riga che lui troverà scritta nel segunte modo: 2007-12-12 20:26:50@testodellanews, e la separiamo assegnado quello che sta prima della @ a $data e quello che sta dopo a $text ed infine li facciam vedere */
echo '<tr valign=center>';
echo "<td>".$data."</td><td>".$text."</td>";
echo '</tr>';
$i=$i++ ;
}
echo '</table>';
?>ps: ti faccio tribulare! graz
-
Modificalo con questo:
[PHP]<?php
$file="news.txt";
$textarray=file($file);
$i=0;
echo "<table><caption align=center>NEWS</caption>";
while($i<count($textarray))
{
$string=substr($textarray*, 0,-1);
list($data, $text)=explode("@", $string);
echo '<tr valign=center>';
echo "<td>".$data."</td><td>".$text."</td>";
echo '</tr>';
$i=$i+1 ;
}
echo '</table>';
?>[/PHP]risolto per control_panel.php invece? da' ancora errore?
-
risolto le news ora fuzionano, sapresti indicarmi una modificare il php per far si che le news piu recenti vengano visualizzate prima di quelle piu vecchie?
al posto di:
2007-12-12 11:51:16gfhfgfhfgfhfg2007-12-12 12:04:40provafare,
2007-12-12-12:04:40 prova
2007-12-12-11:51:16 gfhfgf...control_panel.php da ancora errore nonostante il codice l'abbia cambiato in questo modo:
<?php
echo "<form action='control_panel.php' method='GET' name='news'>
<textarea tabindex=1 wrap=virtual name=text cols=28 rows=6></textarea>"; //** wrap virtual serve a non far mettere gli "a capo" anche se nella textarea ci andrai, cols e rows sono le colonne e le righe, giostratele per come preferisci */
echo "<input tabindex=2 type=submit value='Invia'>
<input type=reset tabindex=3 value='Reset'></form>";//** Tiriamoci su l'orario attuale /
setlocale(LC_TIME, "it_IT");
$DATE= time();
$ARRAY_DATA=getdate($DATE);
$H = $ARRAY_DATA['hours'];
$M = $ARRAY_DATA['minutes'];
$S = $ARRAY_DATA['seconds'];
$T = $ARRAY_DATA['mon'];
$D = $ARRAY_DATA['mday'];
$Y = $ARRAY_DATA['year'];
$DATE=mktime($H, $M, $S, $T, $D, $Y);
$DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);
//* in tal modo abbiamo la data ed ora attuale nel formato 2007-12-11 20:26:50 */$file="news.txt"; //* assegnamo il path del file /
$text="";
$text=$_GET["text"];
if ($text!="")
{
$handle = fopen ($file, "ab"); //* comando per l'apertura del file /
$write = $DATA."@".$text."\n"; //* scriverà singole righe (\n alla fine sta per newline) mettendo la data e poi il testo separati dal simbolo @ /
fwrite ($handle, $write); //* scriviamo sul file /
fclose($handle); //* ed infine chiudiamo il file, da non dimenticare MAI!!! */
}
?>
-
[PHP]echo "<form action='control_panel.php' method='POST' name='news'>
<textarea tabindex=1 wrap=virtual name=text cols=28 rows=6></textarea>";
echo "<input tabindex=2 type=submit value='Invia'>
<input type=reset tabindex=3 value='Reset'></form>";setlocale(LC_TIME, "it_IT");
$DATE= time();
$ARRAY_DATA=getdate($DATE);
$H = $ARRAY_DATA['hours'];
$M = $ARRAY_DATA['minutes'];
$S = $ARRAY_DATA['seconds'];
$T = $ARRAY_DATA['mon'];
$D = $ARRAY_DATA['mday'];
$Y = $ARRAY_DATA['year'];
$DATE=mktime($H, $M, $S, $T, $D, $Y);
$DATA=strftime('%Y-%m-%d %H:%M:%S', $DATE);$file="news.txt";
$text="";
$text=$_REQUEST["text"];
if ($text!="")
{
$handle = fopen ($file, "ab");
$write = $DATA."@".$text."\n";
fwrite ($handle, $write);
fclose($handle);
} [/PHP]
modificalo così
se ti da ancora errore dimmi che errore èP.S.: ma hai messo i vari <html>, <body>, etc etc ho lo hai uppato direttamente così??
-
i tag li ho messo tutti
<html>
<head>...
</head>
<body>
<?php
....
?>
</body>
</html>
mi da ancora errore nella riga $text=$_REQUEST["text"];nonostante questo errore tutto funziona bene,
mi interessava come ti dicevo riuscire a mettere
le news piu recenti per prime
-
@markez said:
mi da ancora errore nella riga $text=$_REQUEST["text"];
nonostante questo errore tutto funziona bene,
mi sfugge perchè dia errore....ma mi par di capire che nonostante dia errore funge tutto, giusto?
@markez said:
mi interessava come ti dicevo riuscire a mettere
le news piu recenti per prime
basta invertire il ciclo, invece di far partire $i da 0 lo fai partire dal valore di count($textarray), ed invece di incrementarlo lo decrementi, ovvero $i=$i-1 ad ogni ciclo ;), ovviamente devi fermare il ciclo quando $i=0
-
ok ti ringrazio! nn ce l'avrei mai fatta da solo...
un ultima cosa scusa se me ne approfitto
per uscire dal ciclo quando $i=0 cosa devofare
-
<FONT face="Courier New">[php]$i=count($textarray);
echo "<table><caption align=center>NEWS</caption>";
while($i<=0)
{
$string=substr($textarray*, 0,-1);
list($data, $text)=explode("@", $string);
echo '<tr valign=center>';
echo "<td>".$data."</td><td>".$text."</td>";
echo '</tr>';
$i=$i-1 ;
}
echo '</table>';
?> [/php]
-
con il codice che mi hai dato in news.php non vedo niente ho provato a modificare la condizione del ciclo
da while($i<=0) a while($i>0)
cosi facendo vedo le news nel giusto ordine ma ho 2 errori nelle linee
$string=substr($textarray*, 0,-1);
list($data, $text)=explode("@", $string);devo cambiare qualcosa anche qua?