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

    Script per compleanni (confronto date)

    Salve a tutti!

    Dato che mi serviva uno sempliciSSimo script che mi segnalasse il giorno di un compleanno di "n" persone e non trovando niente che facesse al caso mio, ho voluto provare a crearmene uno mio.
    Ora il problema è che con PHP sono una schiappa così mi è venuto fuori uno script un po' scomodo!
    Ve lo mostro:

    codice:
    // Data odierna
    	$giorno = date("d",time());
    	$mese = date("m",time());
    	$frase1 = "Oggi è il compleanno di:";
    	$frase2 = "Tanti Auguri :-) !";
    	$immagine = "<img src=\"img/torta-trans.png\" alt=\"Torta\" />";
    	
    	// Data compleanno Persona1 - 27 Febbario
    	$giornoPersona1 = 27;
    	$mesePersona1 = 2;
    	
    	// Data compleanno Persona2 - 11 Maggio
    	$giornoPersona2 = 11;
    	$mesePersona2 = 5;
    	
    	// Data compleanno Persona3 - 23 Febbraio
    	$giornoPersona3 = 23;
    	$mesePersona3 = 2;
    	
    		if ($giorno == $giornoPersona1 && $mese == $mesePersona1)
    			echo "<p class=\"margine5\">$frase1
    <span style=\"color: #dd0000;\">Persona1</span>
    
    $frase2
    $immagine</p>";
    			
    		elseif ($giorno == $giornoPersona2 && $mese == $mesePersona2)
    			echo "<p class=\"margine5\">$frase1
    <span style=\"color: #dd0000;\">Persona2</span>
    
    $frase2
    $immagine</p>";
    		
    		elseif ($giorno == $giornoPersona3 && $mese == $mesePersona3)
    			echo "<p class=\"margine5\">$frase1
    <span style=\"color: #dd0000;\">Persona3</span>
    
    $frase2
    $immagine</p>";
    		
    		
    		else echo "<p class=\"margine5\">Oggi non ci sono compleanni!</p>";
    Come vedete non è bellissimo, oltretutto se due o più persone sono nate lo stesso giorno sono fregato...

    Potreste darmi suggerimenti per migliorarlo?


    grazie
    ciao
    drudo

    P.S. non posso usare alcun database (se non i soliti file di testo....)

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    <?php
    $giorno = date("d",time());
    $mese = date("m",time());
    $frase1 = "Oggi è il compleanno di:";
    $frase2 = "Tanti Auguri :-) !";
    $immagine = "<img src=\"img/torta-trans.png\" alt=\"Torta\" />";
    	
    $date=array(
    	"persona1"=>array("giorno"=>27,"mese"=>2),
    	"persona2"=>array("giorno"=>11,"mese"=>5),
    	"persona3"=>array("giorno"=>23,"mese"=>2),
    );
    foreach($date as $nome=>$compleanno){
    	if ($compleanno['mese'] == $mese && $compleanno['giorno'] == $giorno)		
    		echo "<p class=\"margine5\">$frase1
    <span style=\"color: #dd0000;\">$nome</span>
    
    $frase2
    $immagine</p>";
    }
    ?>

    think simple think ringo

  3. #3
    Grazie marketto sei stato eccezionale!
    (Non ci sarei arrivato... sti array dovrei proprio studiarli :P )

    Ma mi spunta un altro piccolo problema:
    vorrei che una frase informi che, eventualmente, "oggi" non vi sia alcun compleanno!
    Nello script precedente era:
    codice:
    else echo "<p class=\"margine5\">Oggi non ci sono compleanni!</p>";
    ma se metto un "else" dopo l' "if" che ce ora la frase si ripete tante volte quante sono gli array, il chè non andrebbe bene!
    Credo basti mettere un specie di else fuori o "incapsulare" (si dice così?) il ciclo, ma non so capace.
    Mi daresti/dareste ancora una mano?


    grazie
    ciao
    drudo

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    <?php
    $giorno = date("d",time());
    $mese = date("m",time());
    $frase1 = "Oggi è il compleanno di:";
    $frase2 = "Tanti Auguri :-) !";
    $immagine = "<img src=\"img/torta-trans.png\" alt=\"Torta\" />";
    	
    $date=array(
    	"persona1"=>array("giorno"=>27,"mese"=>2),
    	"persona2"=>array("giorno"=>11,"mese"=>5),
    	"persona3"=>array("giorno"=>23,"mese"=>2),
    );
    $output="";
    foreach($date as $nome=>$compleanno){
    	if ($compleanno['mese'] == $mese && $compleanno['giorno'] == $giorno)		
    		$output.="<p class=\"margine5\">$frase1
    <span style=\"color: #dd0000;\">$nome</span>
    
    $frase2
    $immagine</p>";
    }
    $output=$output == "" ? "<p class=\"margine5\">Oggi non ci sono compleanni!</p>" : $output;
    echo $output;
    ?>
    think simple think ringo

  5. #5
    Grazie ancora marketto ora è tutto a posto!
    Il prossimo passo magari sarà recuperare i nomi e le date da un file di testo, ma per quello c'è tempo, magari prima studio un poco di più :P


    ciao
    drudo

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    122
    utilizzo anche io il codice di cui sopra, molto semplice e facile

    Non lo utilizzo però x i compleanni bensì per segnalare degli eventi.

    Volevo sapere se fosse possibile segnalare ad ogni lunedì gli eventi della settimana contenuti nello script.

    Grazie.

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.