Visualizzazione risultati 1 fino 9 di 9

Discussione: codice php

  1. #1
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito codice php

    salve, spero che sia la sessione giusta.
    volevo chiedere come posso visionare i file di un txt con refresh che sto scrivendo da una pagina amministratore
    il codice è
    Codice:
    $nomefile="numeri.txt";
    $apro=fopen($nomefile,"r");
    $leggo=fread($apro,filesize($nomefile));
    fclose($apro);
    
    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    @fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    echo $var2[$a]."|";//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    }//fine ciclo for
    i miei problemi sono che mi legge più di 10 numeri (vorrei che mi facesse vedere sempre 10 numeri all'11 cancella il 1 e cosi via) e che la pagina user che visualizzi si aggiorni quando viene inserito un nuovo numero o almeno solo la casellina dei numeri...

    questo invece è il cosice nella opagina admin:
    Codice:
    $var1=$_POST['var1'];//recupero la variabile globale var1 di tipo POST
    if ($var1!=null){//Attiviamo PHP solo se il form è stato cliccato
    echo "Risultato del file di testo:<br>";
    $var=@fopen("numeri.txt","a+");//apro il file .txt (modalità lettura/scrittura)
    @fwrite($var,$var1."\n");//scrivo la variabile del form nel file .txt
    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    @fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    echo $var2[$a]."|";//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    }//fine ciclo for
    }//fine ciclo if
    ?>  <br><br><br>
    <div class="iframess"><table>
    <form action="index3.php" method="post">
    <tr><td>
    Inserisci i numeri
    </td></tr>
    <tr><td>
    <input type="text" name="var1" size="25" maxlength="80">
    <input type="submit" value="Invia">
    </form>
    </div>

  2. #2
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito

    ho davvero bisogno di aiuto adesso.... dove è l'errore ? il mio codice è :
    Codice PHP:
    <!numeri e roba varia">

    <div class="iframess">
    <?php
    $nomefile
    ="numeri.txt";
    $apro=fopen($nomefile,"r");
    $leggo=fread($apro,filesize($nomefile));
    fclose($apro);

    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    @fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    //for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    //echo $var2[$a];//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    switch ($var2) {
    case
    '0':
    echo
    "0";
    break;

    //}//fine ciclo for

    ?>
    </body>
    </html>
    in pratica lui mi legge i dati da un file txt e atraverso le variabili switch lui mi dice il numero. in questo caso nel caso "0" se nel txt c'e scritto 0 lui mi dice 0.... invece mi da errore cosa ho sbagliato ? come correggo ?
    Ultima modifica di alemoppo : 02-12-2016 alle ore 19.31.12 Motivo: [quote] -> [php]

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    I tuoi codici sono molto incasinati: l'ultimo ti da errore semplicemente perché non hai chiuso la graffa dello switch.

    Poi ad esempio la riga 11:
    Codice PHP:
    @fclose($var);//chiudo il file .txt
    Stai chiudendo un riferimento ad un file che non esiste. Tieni presente che non andrebbe mai usata la "@" per nascondere i messaggi: se ci son messaggi di errore significa che c'è qualcosa non fatto correttamente invece di nascondere bisognerebbe cercar di risolvere.

    In ogni caso qualche consiglio:

    • Per leggere un file intero, non usare la trafila fopen() + fread() + fclose(), ma semplicemente file_get_contents()
    • Per scrivere in un file, usa la file_put_contents()
    • Per leggere un file e trasformarlo in array va bene usare file(), ma ricorda che con file() non va usata la fclose(), anche perché il riferimento al file non ce l'hai nemmeno.
    • Per vedere il contenuto di una variabile o array non ti incasinare con cicli, semplicemente usa var_dump(). Se invece vuoi proprio eseguire un'azione ad ogni elemento dell'array, come stamparlo, allora è più comodo il foreach().


    Ciao!
    Ultima modifica di alemoppo : 02-12-2016 alle ore 19.41.15

  4. #4
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    I tuoi codici sono molto incasinati: l'ultimo ti da errore semplicemente perché non hai chiuso la graffa dello switch.

    Poi ad esempio la riga 11:
    Codice PHP:
    @fclose($var);//chiudo il file .txt
    Stai chiudendo un riferimento ad un file che non esiste. Tieni presente che non andrebbe mai usata la "@" per nascondere i messaggi: se ci son messaggi di errore significa che c'è qualcosa non fatto correttamente invece di nascondere bisognerebbe cercar di risolvere.

    In ogni caso qualche consiglio:

    • Per leggere un file intero, non usare la trafila fopen() + fread() + fclose(), ma semplicemente file_get_contents()
    • Per scrivere in un file, usa la file_put_contents()
    • Per leggere un file e trasformarlo in array va bene usare file(), ma ricorda che con file() non va usata la fclose(), anche perché il riferimento al file non ce l'hai nemmeno.
    • Per vedere il contenuto di una variabile o array non ti incasinare con cicli, semplicemente usa var_dump(). Se invece vuoi proprio eseguire un'azione ad ogni elemento dell'array, come stamparlo, allora è più comodo il foreach().


    Ciao!
    grazie mille, i miei codici sono molto incasinati perchè non ho molta dimstichezza con il php.
    fino all altro giorno usavo solo l html XD; a parte file_get_contents non so come usare il resto dei consigli, potresti farmi qualche esempio? in ogni caso sono andato avanti, ma ho un problema, praticamente se scrivo nella pagina admin 0 nel mio txt in queta visualizzo 00, se scrivo 1 visualizzo 10. non capisco perchè mi appaiaa uno 0 di troppo in tutti i miei numeri. grazie davvero per l'aiuto!
    <?php
    session_start(); echo "<meta http-equiv='refresh' content='10; $var2[$a]'>";
    $X="X";
    ?>
    <html>
    <head>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/reset.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />
    <link href='http://fonts.googleapis.com/css?family=Quicksand' rel='stylesheet' type='text/css' />
    <link href='http://fonts.googleapis.com/css?family=Playfair+Display' rel='stylesheet' type='text/css' />
    <link rel="stylesheet" type="text/css" media="screen" href="css/grid_12.css" />
    <link href='http://fonts.googleapis.com/css?family=Mr+De+Haviland' rel='stylesheet' type='text/css' />
    <link rel="stylesheet" type="text/css" media="screen" href="css/slider.css" />
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    <script type="text/javascript" src="js/tabs.js"></script>
    <link href='http://fonts.googleapis.com/css?family=Condiment' rel='stylesheet' type='text/css' />
    <link href='http://fonts.googleapis.com/css?family=Oxygen' rel='stylesheet' type='text/css' />
    <script src="js/jquery-1.7.min.js"></script>
    <script src="js/jquery.easing.1.3.js"></script>
    <script src="js/tms-0.4.x.js"></script>

    <!--[if lt IE 8]>
    <div style=' clear: both; text-align:center; position: relative;'>
    <a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode">
    <img src="http://storage.ie6countdown.com/assets/100/images/banners/warning_bar_0000_us.jpg" border="0" height="42" width="820" alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today." />
    </a>
    </div>
    <![endif]-->
    <!--[if lt IE 9]>
    <script type="text/javascript" src="js/html5.js"></script>
    <link rel="stylesheet" type="text/css" media="screen" href="css/ie.css">
    <![endif]-->
    </head>

    <!numeri e roba varia">

    <div class="iframess">
    <?php
    $nomefile="numeri.txt";
    $apro=fopen($nomefile,"r");
    $leggo=fread($apro,filesize($nomefile));
    fclose($apro);

    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    @fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    //echo $var2[$a];//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    switch ($var2[$a]) {
    case $var2[$a]=0:
    $var2[$a]=0;
    $X=$var2[$a];
    echo $X;

    break;

    case $var2[$a]=1:
    echo "1";
    break;
    case $var2[$a]=2:
    echo "2";
    break;

    case $var2[$a]=22:
    echo "22";
    break;
    }
    }
    //}//fine ciclo for

    ?>
    </body>
    </html>


    Risolto impostando echo con la variabile
    $var2[$a] anche se non mi spiego il perchè. adesso farò una prova ma è possibile inserire le variabili if dentro i case ? perche praticamente ho 30 casi di numeri ed a ogni caso pubblicherei un immagine diversa solo che devo creare un limite di visualizzazione di 10 e all'11 mi resetta il valore di un txt che mi reimpista la prima immagine col nuovo risultato e cosi via...
    esempio con 3 come limite

    escono i numeri 1,2,3 a loro mi corrispondono delle immagini che farò visualizzare sil mio sito in una posizione, successivamente digito il 4 perdo l'immagine 1 ed avrò 4,2,3 poi digitero 1 ed avro le seguenti immagini 4,1,3 scusate il chaos devo impare ad essere più ordinato lo so

    aggiungo un altro piccolo problema ho modificato il codice in maniera tale che ad un numero corrisponde un immagine solo che l immagine 1 mi rimane fissa accanto a quella del numero attuale
    case $var2[$a]==0:
    echo '<img src=numeri/0.png>';

    break;
    Ultima modifica di inucane : 05-12-2016 alle ore 16.50.05

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    In questa riga:
    Codice PHP:
    echo "<meta http-equiv='refresh' content='10; $var2[$a]'>";
    Ancora $var2[] non è stata dichiarata, non puoi usarla lì perché non sai cosa contiene.

    Comunque, intendevo una cosa del tipo:
    Codice PHP:
    <?php
    $nomefile
    ="numeri.txt";
    $leggo = file_get_contents($nomefile); //questo è come fare fopen+fread+fclose

    /* Tieni presente che $leggo non è mai usata, quindi se non lo usi nemmeno in eventuale codice sotto, puoi anche eliminare il codice sopra visto che è inutile */

    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    #nota: NON devi usare fclose in questo caso!
    foreach($var2 as $riga)
    {
    switch(
    $riga)
    {
    case
    0:
    //codice da eseguire quando leggi 0
    $X = 0;
    echo
    $X;
    break;
    case
    1:
    //codice da eseguire quando leggi 1
    echo '1';
    break;
    case
    2:
    //codice da eseguire quando leggi 2
    echo '2';
    break;
    default:
    //codice da eseguire quando accade un caso non specificato nei case
    break;
    }
    }
    Se ancora trovi lo 0 di troppo, credo che il file lo contenga e dovresti controllare la parte che scrive il file.

    Ciao!

  6. #6
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    In questa riga:
    Codice PHP:
    echo "<meta http-equiv='refresh' content='10; $var2[$a]'>";
    Ancora $var2[] non è stata dichiarata, non puoi usarla lì perché non sai cosa contiene.

    Comunque, intendevo una cosa del tipo:
    Codice PHP:
    <?php
    $nomefile
    ="numeri.txt";
    $leggo = file_get_contents($nomefile); //questo è come fare fopen+fread+fclose

    /* Tieni presente che $leggo non è mai usata, quindi se non lo usi nemmeno in eventuale codice sotto, puoi anche eliminare il codice sopra visto che è inutile */

    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    #nota: NON devi usare fclose in questo caso!
    foreach($var2 as $riga)
    {
    switch(
    $riga)
    {
    case
    0:
    //codice da eseguire quando leggi 0
    $X = 0;
    echo
    $X;
    break;
    case
    1:
    //codice da eseguire quando leggi 1
    echo '1';
    break;
    case
    2:
    //codice da eseguire quando leggi 2
    echo '2';
    break;
    default:
    //codice da eseguire quando accade un caso non specificato nei case
    break;
    }
    }
    Se ancora trovi lo 0 di troppo, credo che il file lo contenga e dovresti controllare la parte che scrive il file.

    Ciao!
    Grazie mille, vedrò adesso di fare un po di pulizia allego la parte che scrive che devo modificare aggiungendo che ad ogni input del form mi scriva anche un altro file di testo con dei numeri da uno a sette. c'é modo di visualizzare questi numeri / immagini a gruppi di 10? ho provato "a+"al posto di "w+" ma non sono riuscito ad impostargli un limite
    <!numeri e roba varia"><?
    $var1=$_POST['var1'];//recupero la variabile globale var1 di tipo POST
    if ($var1!=null){//Attiviamo PHP solo se il form è stato cliccato
    echo "Risultato del file di testo:<br>";
    $var=@fopen("numeri.txt","w+");//apro il file .txt (modalità lettura/scrittura)
    @fwrite($var,$var1."\n");//scrivo la variabile del form nel file .txt
    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    @fclose($var);//chiudo il file .txt
    $i=count($var2);//conto gli elementi nell'array
    for($a=0; $a<=$i; $a++){//uso il ciclo for per guardare nell'array
    echo $var2[$a];//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    }//fine ciclo for
    }//fine ciclo if
    ?> <br><br>
    <table>
    <center><form action="index3.php" method="post">
    <tr><td>
    Inserisci i numeri
    </td></tr>
    <tr><td>
    <input type="password" name="var1" size="25" maxlength="80">
    <input type="submit" value="Invia">
    </form></center>
    </div>

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Codice PHP:
    <!numeri e roba varia"><?
    if (isset($_POST['var1']))
    {
    //Attiviamo PHP solo se il form è stato cliccato
    $var1=$_POST['var1'];//recupero la variabile globale var1 di tipo POST
    $file = "numeri.txt";
    echo
    "Risultato del file di testo:<br>";
    file_put_contents($file,$var1);
    $var2=file("numeri.txt");//estraggo l'array dal file .txt
    foreach($var2 as $linea)
    {
    echo
    $linea;//scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
    }//fine ciclo
    }//fine ciclo if #l'if NON è un ciclo
    ?> <br><br>
    <table>
    <center><form action="index3.php" method="post"> <!-- sintatticamente qui non puoi metterci altri tag al di fuori di quelli delle tabelle (<tr>, ...) Inoltre evita il tag <center> che è obsoleto -->
    <tr><td>
    Inserisci i numeri
    </td></tr>
    <tr><td>
    <input type="password" name="var1" size="25" maxlength="80">
    <input type="submit" value="Invia">
    </form></center>
    </div>
    Ciao!

  8. #8
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito

    Citazione Originalmente inviato da inucane Visualizza messaggio
    Meraviglioso e grazie
    se adesso pero vorrei visualizzare 10 immagini con un minimo di spazio tra loro come potrei fare ?
    considerando che dopo la decima immagine deve cancellarmi prima la 1,poi la 2 e così via e non tutte e 10 insieme.
    con il codice vecchio avrei scritto fopen("numeri.txt","a+");però questo mi avrebbe dato più di 10 numeri e se anche avessi trovato un metodo per fare un conteggio eppoi cancellare il file numeri.txt perderei tutti i numeri e rinizierei a visualizzarli dal primo


    stavo anche pensado questa opzione se è funzionale, ma ci sono errori nel codici e non capisco quali

    l'idea era che invertendo l'array visualizzavo ad esempio solo i primi 10 numeri contenuti (in questo caso i 2 ) e pubblicavo queste due immagini a fianco. il risultato e che non mi pubblica solo le 2 immagini ma tante e nessuna si vede perchè hanno come url u.png al posto del numero

    ho provato varie idee ma nessuna funziona correttamente, non ce un modo che mi memorizzi solo 10 file e poi mi sovrascriva solo il primo della lista ?in modo da avere un naturale scorrimento delle immagini ? o boh..





    foreach($var2 as $numero)
    {

    echo " "."<img src="numeri/$var2[0].png" />"." ";
    echo " "."<img src="numeri/$var2[1].png" />"." ";
    echo " "."<img src="numeri/$var2[2].png" />"." ";
    echo " "."<img src="numeri/$var2[3].png" />"." ";
    echo " "."<img src="numeri/$var2[4].png" />"." ";
    echo " "."<img src="numeri/$var2[5].png" />"." ";
    echo " "."<img src="numeri/$var2[6].png" />"." ";
    echo " "."<img src="numeri/$var2[7].png" />"." ";
    echo " "."<img src="numeri/$var2[8].png" />"." ";
    echo " "."<img src="numeri/$var2[9].png" />"." ";
    }
    visualizzo con gli spazio le mie 9 immagini ma subito dopo in sequenza si ripetono 12 volte e non capisco il motivo io vorrei non visualizzare altro dopo i 9 risulotati del mio file di testo[/QUOTE]

    il problema era che mi ero dimencato a togliere il ciclo
    foreach XD aahahahahahaha. comunque consigli per centrare dato che il <center> è obsoleto e non funziona bene ?
    Ultima modifica di inucane : 06-12-2016 alle ore 18.00.17

  9. #9
    inucane non è connesso Utente giovane
    Data registrazione
    21-08-2007
    Messaggi
    36

    Predefinito

    ultimo problema, qualche idea o suggerimento ? dovrei inserire nella pagina user un bottone che normalmente e rosso mentre nella pagina admin verde. se clikkato quello user diventa verde e quello di admin diventa rosso. se ricliccato quello user non succede nulla, ma per resettare il funzionamento devo clikkare sul bottone rosso nella pagina admin (se clikkavo quando era verde non succedeva nulla) idee? progetti ?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •