Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Un semaforo in php

  1. #1

    Un semaforo in php

    Sono il webmaster di un sito della protezione civile, se dato un occhio al nostro link vedrete che in home page c'è una immagine con un semaforo che indica il livello di allerta della protezione civile (verde tutto ok, giallo c'è qualche casino, rosso siamo nella m... alta )

    Stavo cercando qualche anima pia in grado di scrivermi un brevissimo script in php che prenda a comando una delle tre immagini verde,giallo e rosso da una cartella x, dove sono parcheggiate come file, e la copi sulla root chiamandola semaforo.jpg

    Ho bisogno di poterlo fare da remoto perchè, per motivi di tempo, per me è imperativo poterlo fare anche quando non ho l'accesso ftp (cioè quando sono al lavoro)...

    Grazie sin da ora,

    raffaele

  2. #2
    Sì, ma poi come lo lanci? - non è una grande idea

    Senti, bisogna fare un piccolissimo pannello di amministrazione dove puoi decidere il colore del semaforo.
    Il colore viene memorizzato nel db o in un file di testo.
    E quando carica la pagina, il nome dell'immagine da visualizzare lo prende dal file o dal db

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    la cosa , al volo, che mi sembra piu fattibile in poco tempo è una pagina nascosta in php in cui passandogli 2 o 3 parametri in GET porti il semaforo al colore giusto...

    esempio http://www.sito.org/set_lamp?user=pi...semaforo=verde


    lo scrivi nel browser e lo lanci.

    il file no ti dà risposta ma in effetti cambia lo stato del semaforo in un file di testo o un db... quello dipende dalla struttura del sito
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Le idee (pannello di amministrazione o parametro in get) sono entrambe ottime, ma entrambe dovrebbero richiamare la stessa cosa: uno script in php che cambi l'immagine... ma in questo script, dentro, cosa c'è script?
    Grazie ancora...

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    dipende dalla structur del sito

    com'è structured il tuo sito now?
    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
    In maniera... elementare, Watson (scusa, non sono riuscito a resistere...)
    Aldilà delle battute, nella root ci sono i file html e nella cartella images i file: un file semaforo.jpg ed i tre file verde.jpg, giallo.jpg e rosso.jpg.
    L'host ha il supporto per php (infatti ho già installato phpBB, Gallery e Wordpress...)

  7. #7
    L'idea di dottwatson usando GET mi piace.
    Se sei in grado di realizzarla bene. Altrimenti te lo scrivo io, tanto è per una buona causa.

  8. #8
    Se riuscissi a scrivermelo potremmo affitare un Canadair* per portarti i ringraziamenti di tutti...




    * aerei della protezione civile

  9. #9
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    Ti crei una cartella imboscata e ci metti questo file che chiamerai come vuoi tu,
    e un file txt con una sola parola es.:ROSSO che chiamerai semaforo.txt
    A questo punto basterà chiamare il file php e dare i diritti di scrittura sul file txt.


    <?php //File da imboscare
    $filename = "semaforo.txt";
    if(isset($_POST['cambia'])){

    $handle = fopen($filename, "w");
    fwrite($handle,$_POST['colore']);
    fclose($handle);
    }

    $handle = fopen($filename, "r");
    $contents = fread($handle, filesize($filename));
    fclose($handle);
    $colori=array("ROSSO", "GIALLO", "VERDE"); // questi saranno anche i nomi delle immagini
    $opt="";
    foreach($colori as $value){
    if($contents == $value)$sel=" selected= selected";
    else $sel="";
    $opt.="<option ".$sel." value=\"".$value."\">".$value."</option>\n";
    }

    ?>
    <html>
    <body>



    <form name="sema" action="" method="post">
    <select name="colore">
    <?php echo $opt?>
    </select>
    <input type="submit" name="cambia" value="Cambia Colore" />
    </form>
    </p>
    </body>
    </html>
    //FINE FILE DA IMBOSCARE

    //*******************************

    // Nell'index o dove vuoi comunque prima di del tag img che ti interessa:
    <?php
    $handle = fopen($filename, "r");
    $imgSemaforo = fread($handle, filesize($filename));
    fclose($handle);
    ?>

    // nel tag img
    [img]images/<?php echo $imgSemaforo?>.jpg[/img]


    Con la stessa tecnica puoi anche crearti un accesso con password (magari in MD5) che se viene riconosciuta vieni sparato con una variabile di sessione ($_SESSION['loggato']=true)
    alla pagina per modificare i dati.
    ...altri 5 anni di purga...

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    uan buona azione merita un buon script..

    carica questi tre file sul tuo server nella root

    rispetta i nomi e la struttura eh!!!
    inoltre dovrai caricare sempre nella root i 3 colori con rosso.jpg,verde.jpg,giallo.jpg


    alert.php
    Codice PHP:
    <?php
    /* 3 files
    1. alert.php                    <-- il gestore del semaforo
    2. utenti (senza estensione)    <-- dove ci sono gli utenti abilitati
       
    struttura di utenti:

    pippo
    pass_pippo
    <------>
    tizio
    pass_tizio

    3. status (senza estensione)    <-- dove scriviamo lo stato del semaforo

    */

    if (isset($_GET['inform']) && $_GET['inform']=='status')
      {
      
    $now_status=strtolower(trim(file_get_contents('status')));
      echo 
    "document.getElementById('alert_status').innerHTML='<img src=\"$now_status.jpg\">';";
      die();
      }

      

    if ((isset(
    $_GET['user']) && !empty($_GET['user'])) &&
        (isset(
    $_GET['user']) && !empty($_GET['user'])) &&
        (isset(
    $_GET['user']) && !empty($_GET['user'])))
      {
      
      
    $request_status=urldecode(trim($_GET['status']));
      
    $now_status=file_get_contents('status');
      
      
    $login_user=urldecode(trim($_GET['user']));
      
    $login_pass=urldecode(trim($_GET['pass']));
      
      
      
    $utenti=explode('<------>',file_get_contents('utenti'));
      
      
      
    $logged=0;
      foreach (
    $utenti as $accoppiata)
        {
        list(
    $db_user,$db_pass)=explode("\n",$accoppiata);
        if (
    $login_user == trim($db_user) && $login_pass == trim($db_pass))
          {
          
    $link=fopen('status','w+');
          
    fwrite($link,$request_status);
          
    fclose($link);
          break;
          }
        }
      die();
      }
    echo 
    "ci hai provato eh fringuellino?? :D";
    die();
    ?>
    utenti
    Codice PHP:
    pippo
    pluto 
    status
    Codice PHP:
    rosso 
    test.html per provarlo
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <
    html>
      <
    head>
      <
    meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <
    meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">

      <
    title></title>
      </
    head>
      <
    body>
      <
    div id="alert_status"></div>
      <
    script src="alert.php?inform=status"></script>
      </body>
    </html> 

    se vuoi cambiare lo stato del semaforo
    direi che questo è tutto.. a che ora devo farmi trovare per il canadian??


    dimenticavo... gli utenti devi scriverli a mano e il file di testo status deve essere con permessi 777 per poter essere aggiornato

    inoltre se alla fine vorrai posizionare il semaforo sulla home page copia questo codice nella posizione in cui desideri che appaia
    codice:
      <div id="alert_status"></div>
      <script src="alert.php?inform=status"></script>
    adesso è veramente tutto

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.