Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    foreach errore (form fwrite)

    Ciao,
    da un thread ho copiato vilmente del codice ma, ahime, non funzia.
    Mi appare sempre:
    Parse error: parse error, unexpected T_FOREACH in C:\www\provabestiale\c.php on line 50

    Chi è così bravo da dirmi dove sbaglio?
    Il codice è questo qua:


    <?
    if (!isset($_POST['Invia']))
    {
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>commenti</title>
    </head>
    <body>
    <form method="POST" action="index2.php">
    <table border="0" width="500" align="center" style="border-collapse: collapse">
    <tr>
    <td width="11%">nome</td>
    <td width="87%"><input type="text" name="dato[]" size="20"></td>
    </tr>
    <tr>
    <td width="11%">provenienza</td>
    <td width="87%"><input type="text" name="dato[]" size="20"></td>
    </tr>
    <tr>
    <td width="11%">opinione</td>
    <td width="87%"><textarea rows="6" name="dato[]" cols="50"></textarea></td>
    </tr>
    <tr>
    <td colspan="2">
    <p align="center"><input type="submit" value="Invia" name="Invia"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <?
    }
    else
    {
    foreach ($_POST['dato'] as $val)
    {
    if (trim($val)=="")
    {
    echo "completare tutti i campi";
    header("refresh:5;url=c.php");
    die();
    }
    }
    }
    $string="";
    $file=fopen("text.txt","a+") //apre il file in append, se non esiste lo crea
    foreach ($_POST['dato'] as $val)
    {
    $string.="|".$val; // costruisce la stringa |dato1|dato2|dato3|dato4 ecc...
    }
    $string=substr($string,1); // elimina il primo |
    fwrite ($file,$string); //scrive la stringa
    fclose ($file); //chiude il file
    ?>
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  2. #2
    Ciao,

    umilmente ti invito a rileggere sempre bene il codice...e cmq di solito quando ti da questo errore nn hai messo il ; di chiusura. In questo caso

    Codice PHP:
    $file=fopen("text.txt","a+"//apre il file in append, se non esiste lo crea 
    manca il ; finale

    Ciao

  3. #3

    gulp

    Ciao Beast,
    grazie mille! Cavoli e dire che l'ho letto per due ore... vabbé...
    Ho trovato altre piccole cose che producevano notice e altri avvisi.
    Posto il codice che alla fine ho usato.
    Il file si chiama c.php. Ma è solo una prova: così com'è non serve a niente

    Ciao!

    <?
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Language" content="it">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Inserimento cose</title>
    </head>
    <body>
    <form method="POST" action="c.php">
    <table border="0" width="500" align="center" style="border-collapse: collapse">
    <tr>
    <td width="11%">nome</td>
    <td width="87%"><input type="text" name="dato[]" size="20"></td>
    </tr>
    <tr>
    <td width="11%">provenienza</td>
    <td width="87%"><input type="text" name="dato[]" size="20"></td>
    </tr>
    <tr>
    <td width="11%">opinione</td>
    <td width="87%"><textarea rows="6" name="dato[]" cols="50"></textarea></td>
    </tr>
    <tr>
    <td colspan="2">
    <p align="center"><input type="submit" value="Invia" name="Invia"></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <?
    $string="";
    $file=fopen("text.txt","a+"); //apre il file in append, se non esiste lo crea
    if(!isset($val)) $val = '';
    if (trim($val)=="")
    foreach ($_POST['dato'] as $val)
    {
    $string.="|".$val; // costruisce la stringa |dato1|dato2|dato3|dato4 ecc...
    }
    $string=substr($string,1); // elimina il primo |
    fwrite ($file,$string); //scrive la stringa
    fclose ($file); //chiude il file
    ?>
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  4. #4

    gasp 2

    No fermi tutti compare:

    Warning: Invalid argument supplied for foreach() in C:\www\parmawatch2\c.php on line 41

    Se inserisco i dati crea il file text.txt e lo compila correttamente.
    In pratica: funziona ma c'è quella scritta lì. Perché?
    Firma opzionale che voglio compaia in fondo ai miei messaggi.

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    <?
    $string
    ="";
    $file=fopen("text.txt","a+"); //apre il file in append, se non esiste lo crea
    if(!isset($val)) $val '';
    if (
    trim($val)=="")
    foreach (
    $_POST['dato'] as $val)
    {
    $string.="|".$val// costruisce la stringa |dato1|dato2|dato3|dato4 ecc...
    }
    $string=substr($string,1); // elimina il primo |
    fwrite ($file,$string); //scrive la stringa
    fclose ($file); //chiude il file
    ?>
    rimpiazzalo con

    Codice PHP:
    <?
    if (isset($_POST['Invia']) && !empty($_POST['Invia']))
    {
    foreach (
    $_POST['dato'] as $key=>$val$_POST['dato'][$key] == trim($val);

    $string=implode("|",$_POST['dato']);
    $file=fopen("text.txt","w+");
    fwrite ($file,$string); //scrive la stringa
    fclose ($file); //chiude il file
    }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6

    mitico

    Grazie Dott.Watson,
    funziona proprio alla grande!!!! Mitico!!!
    Adesso cerco di capirlo/studiarlo... perché sono un po' testona

    Firma opzionale che voglio compaia in fondo ai miei messaggi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.