vetrina in php con mirc

frozenwolf

Nuovo Utente
19 Set 2012
5
0
0
salve ho creato questa pagina con il quale da una lista di elementi per "tabelle" chiamata vetrina... a questo punto vorrei sapere
come far si che ogni tot minuti il bot in php legge la vetrina e restituisce su mirc i file che ci sono su una categoria,,come posso fare?
Codice:
<?

	require_once('config.php');
	require_once('function.php');

	class InsiemeVetrine
	{
		private $vetrine;
		private static $istanza;
		
		public static function creaInsiemeVetrine()
		{
			if( isset($istanza) )
			{
				return InsiemeVetrine::$istanza;
			}
			else if( is_file(STATOVETRINA) )
			{
				if( ($fp = fopen(STATOVETRINA, "r")) )
				{
					if( (InsiemeVetrine::$istanza = unserialize(fread($fp, filesize(STATOVETRINA)))) === false )
						InsiemeVetrine::$istanza = new InsiemeVetrine();

					fclose($fp);
					return InsiemeVetrine::$istanza;
				}
			}
			else
			{
				InsiemeVetrine::$istanza = new InsiemeVetrine();
				return InsiemeVetrine::$istanza;
			}
		}

		public function eliminaVetrine()
		{
			if( (is_file(STATOVETRINA) === true) && (unlink(STATOVETRINA) === true) )
				if( (is_file(VETRINACONF) === true) && (unlink(VETRINACONF) === true) )
					InsiemeVetrine::$istanza = NULL;
		}
		
		private function __construct()
		{
			$vetrine = array();
			if ( file_exists(VETRINACONF) )
				unlink(VETRINACONF);
		}
		
		// aggiunge una vetrina
		public function aggiungiVetrina($nomeVetrina)
		{
			if( !isset($this->vetrine[$nomeVetrina]) )
			{
				$this->vetrine[$nomeVetrina] = array();
				$this->salvaStatoInsiemeVetrine();
				return true;
			}
			return false;
		}
		
		// elimina completamente la vetrina passata
		public function eliminaVetrina($nomeVetrina)
		{
			if( isset($this->vetrine[$nomeVetrina]) )			//se esiste la vetrina
			{
				unset($this->vetrine[$nomeVetrina]);			// allora posso fare l'unset della vetrina passata
				$this->salvaStatoInsiemeVetrine();				// salvare lo stato dell'oggetto vetrina su file
				
				if( (is_file(VETRINACONF) === true) && unlink(VETRINACONF) === true )		//e se riesco ad eliminare la cache delle vetrine
					$this->salvaVetrineSuFile();				// e la cache
				
				return true;
			}
			return false;
		}
		
		// svuota dagli elementi la vetrina passata
		public function svuotaElemVetrina($nomeVetrina)
		{
			if( isset($this->vetrine[$nomeVetrina]) )				//se esiste la vetrina passata
			{
				unset($this->vetrine[$nomeVetrina]['listaElem']);	//posso fare l'unset di listaElem
				$this->salvaStatoInsiemeVetrine();					//e salvare lo stato dell'oggetto
				return true;
			}
			return false;
		}
		
		// crea l'associazione bot<-->vetrina
		public function aggiungiBotAllaVetrina($nomeVetrina, $nomeBot)
		{
			if( isset($this->vetrine[$nomeVetrina]) )		//se è definita la vetrina passata
			{
				if( seBotEsiste($nomeBot) )					//e se esiste il bot passato
				{
					if( !isset($this->vetrine[$nomeVetrina]['listaBot']) )		//se non è definito listaBot, ed è quindi il primo bot, devo aggiungere il :
					{
						$this->vetrine[$nomeVetrina]['listaBot'] = ":".$nomeBot.":";
						$this->salvaStatoInsiemeVetrine();
						return true;
					}
					else if( stripos($this->vetrine[$nomeVetrina]['listaBot'], ":".$nomeBot.":") === false )		//se è definita listaBot controllo che nomeBot non esista, e allora posso concatenarlo alla listaBot esistente
					{
						$this->vetrine[$nomeVetrina]['listaBot'] .= $nomeBot.":";
						$this->salvaStatoInsiemeVetrine();
						return true;
					}
				}
			}
			return false;
		}
		
		// elimina l'associazione bot<-->vetrina
		public function togliBotAllaVetrina($nomeVetrina, $nomeBot)
		{
			if( isset($this->vetrine[$nomeVetrina]) && 	isset( $this->vetrine[$nomeVetrina]['listaBot'] ))		//se è definita la vetrina passata e questa contiene almeno un bot
			{
				if( stripos($this->vetrine[$nomeVetrina]['listaBot'], ":".$nomeBot.":") !== false )		//se esiste il bot passato
				{
					//salvo temporaneamente il valore di [listaBot] per poi farne l'unset, e ricostruirlo senza il bot passato
					$listaBot = $this->vetrine[$nomeVetrina]['listaBot'];
					unset($this->vetrine[$nomeVetrina]['listaBot']);
					
					$bot = strtok($listaBot, ":");
					
					while( $bot !== false )
					{
						if( $bot != $nomeBot )
						{
							$this->aggiungiBotAllaVetrina($nomeVetrina, $bot);
						}
						$bot = strtok(":");
					}
					
					//se la vetrina contiene un solo bot, ed è quello passato, e l'aggiornamento vetrine è in modalità automatica allora devo cancellare la lista di elementi
					if( !isset($this->vetrine[$nomeVetrina]['listaBot']) )
					{
						if( (AGGIORNAMENTOVETRINE == "Automatico") && isset($this->vetrine[$nomeVetrina]['listaElem']) )
						{
							unset($this->vetrine[$nomeVetrina]['listaElem']);
							$this->caricaElementiVetrina($nomeVetrina);
						}
					}
					
					$this->salvaStatoInsiemeVetrine();
					$this->salvaVetrineSuFile();
					return true;
				}
			}
			return false;
		}
		
		// aggiunge un elemento alla vetrina
		public function aggiungiElementoAllaVetrina($nomeVetrina, $nomeElemento)
		{
			if( isset($this->vetrine[$nomeVetrina]) )		//se esiste la vetrina passata
			{
				if( !isset($this->vetrine[$nomeVetrina]['listaElem']) )		//se è il primo elemento ad essere aggiunto devo mettere il :
				{
					$this->vetrine[$nomeVetrina]['listaElem'] = ":".$nomeElemento.":";
					$this->salvaStatoInsiemeVetrine();
					return true;
				}
				//nel caso in cui esistono già elementi , controllo che l'elemento passato non esista, e che il numero di elementi sia <= al numero di elementi consentito, per aggiungere l'elemento passato
				else if( (stripos($this->vetrine[$nomeVetrina]['listaElem'], ":".$nomeElemento.":") === false) && (substr_count($this->vetrine[$nomeVetrina]['listaElem'], ":") <= MAXELEMPERVETRINA) )
				{
					$this->vetrine[$nomeVetrina]['listaElem'] .= $nomeElemento.":";
					$this->salvaStatoInsiemeVetrine();
					return true;
				}
			}
			return false;
		}

		// toglie un alemento dalla vetrina
		public function togliElementoAllaVetrina($nomeVetrina, $nomeElemento)
		{
			if( isset($this->vetrine[$nomeVetrina]) )		//se esiste la vetrina passata
			{
				if( isset($this->vetrine[$nomeVetrina]['listaElem']) )		//e se esistono degli elementi in questa vetrina
				{
					if( stripos($this->vetrine[$nomeVetrina]['listaElem'], ":".$nomeElemento.":") !== false )		//e se l'elemento passato esiste negli elementi di questa vetrina
					{
						//salvo temporaneamente il valore di [listaElem] per poi farne l'unset, e ricostruirlo senza il bot passato
						$listaElem = $this->vetrine[$nomeVetrina]['listaElem'];
						unset($this->vetrine[$nomeVetrina]['listaElem']);
						
						$elem = strtok($listaElem, ":");
						while( $elem !== false )
						{
							if( $elem != $nomeElemento)
								$this->aggiungiElementoAllaVetrina($nomeVetrina, $elem);
							$elem = strtok(":");
						}
						
						$this->salvaStatoInsiemeVetrine();
						$this->salvaVetrineSuFile();
					}
				}
			}
		}

		// ridimensiona dal numero di elementi la vetrina
		public function ridimensionaVetrine($numElem)
		{
			$listaVetrine = array_keys($this->vetrine);

			foreach ($listaVetrine as $nomeVetrina)
			{
				if( isset($this->vetrine[$nomeVetrina]['listaElem']) && ((substr_count($this->vetrine[$nomeVetrina]['listaElem'], ":")-1) > $numElem) )
				{
					$numElemTemp = 0;
					$listaElem = $this->vetrine[$nomeVetrina]['listaElem'];
					unset($this->vetrine[$nomeVetrina]['listaElem']);

					$elem = strtok($listaElem, ":");
					while( ($elem !== false) && ($numElemTemp < $numElem) )
					{
						$this->aggiungiElementoAllaVetrina($nomeVetrina, $elem);
						$elem = strtok(":");
						$numElemTemp++;
					}
				}
			}
			
			$this->salvaStatoInsiemeVetrine();
			$this->salvaVetrineSuFile();
		}

		// fa la vetrina in automatico e ne salva su file la configurazione
		public function caricaElementiVetrina($nomeVetrina)
		{
			if( isset($this->vetrine[$nomeVetrina]) && isset($this->vetrine[$nomeVetrina]['listaBot']) )
			{
				if( isset($this->vetrine[$nomeVetrina]['listaElem']) )
					unset($this->vetrine[$nomeVetrina]['listaElem']);
				
				$numeroBot = substr_count($this->vetrine[$nomeVetrina]['listaBot'], ":")-1;
				$numeroElemPerBot = ceil(MAXELEMPERVETRINA/$numeroBot);
				
				$listaBot = $this->vetrine[$nomeVetrina]['listaBot'];
				$bot = strtok($listaBot, ":");
				
				$numeroElementi = MAXELEMPERVETRINA;
				
				/* funziona con un solo bot, perchè uso piu strtok contemporaneamente */
				while( $bot !== false )
				{
					if( ($fileBot = seBotEsiste($bot)) )
					{
						if( ($fp = fopen($fileBot, "r")) )
						{
							if( preg_match_all("/] ([0-9]{4}\-[0-9]{1,2}\-[0-9]{1,2}) ([0-9]{2}:[0-9]{2}) (.+)/mi", fread($fp, filesize($fileBot)), $match) )
							{
								for($i=(count($match[3])-1), $numeroElemPerBotTemp=$numeroElemPerBot; ( ($numeroElementi>0) && ($i>=0) && ($numeroElemPerBotTemp>0) ); $i--)
								{
									$poscor = 0;
									$posdef = 255;
									$index = $i;
									
									for($j=(count($match[3])-1); $j>=0; $j--)
									{
										if( $match[3][$i] != $match[3][$j] )
										{
											if( ($poscor = $this->similStringhe($match[3][$i], $match[3][$j])) )
											{
												if( $poscor<$posdef )
												{
													$index = $j;
													$posdef = $poscor;
												}
											}
										}
									}
									
									if( $this->aggiungiElementoAllaVetrina($nomeVetrina, substr($match[3][$index], 0, $posdef)) == true )
									{
										$numeroElementi--;
										$numeroElemPerBotTemp--;
									}
								}
							}
						}
					}
					$bot = strtok(":");
				}
				$this->salvaVetrineSuFile();
				return true;
			}
			return false;
		}
		
		public function caricaElementiVetrine()
		{
			$listaVetrine = array_keys($this->vetrine);

			foreach ($listaVetrine as $nomeVetrina)
				$this->caricaElementiVetrina($nomeVetrina);
		}
		
		/* restituisce 0 se le due stringhe sono diverse, > 0 se sono simili */
		public function similStringhe($str1, $str2)
		{
			$temp = 0;
			$temp1 = 0;

			$lenstr1 = strlen($str1);
			$lenstr2 = strlen($str2);
				
			if( abs($lenstr1-$lenstr2) <= 2 )
			{

				if( $lenstr1 < $lenstr2 )
				{
					$min = $lenstr1;
					$max = $lenstr2;
				}
				else
				{
					$min = $lenstr2;
					$max = $lenstr1;
				}
						
				for($i=0; $i<$min; $i++)
				{
					if( $str1[$i] == $str2[$i] )
						$temp++;
					else
						break;
				}

				for($i=($lenstr1-1),$j=($lenstr2-1); ($i>$temp && $j>$temp); $i--,$j--)
				{
					if( $str1[$i] == $str2[$j] )
						$temp1++;
					else
						break;
				}

				if( abs($max-($temp+$temp1)) <= 2 )
					return $temp;
					
			}
			return 0;
		}

		/* fa una copia su file dell'oggetto */
		public function salvaStatoInsiemeVetrine()
		{
			if( $fp = fopen(STATOVETRINA, "w") )
				fwrite($fp, serialize(InsiemeVetrine::$istanza));
				
			fclose($fp);
		}
		
		/* salva la configurazione delle vetrine su un file di testo */
		public function salvaVetrineSuFile()
		{
			if( is_file(VETRINACONF) !== false )
				unlink(VETRINACONF);

			if( $fp = fopen(VETRINACONF, "w+") )
			{
				$listaVetrine = array_keys($this->vetrine);

				foreach ($listaVetrine as $nomeVetrina)
				{
					if( isset($this->vetrine[$nomeVetrina]['listaElem']) )
					{
						$temp = $nomeVetrina."|".$this->vetrine[$nomeVetrina]['listaElem']."\r\n";
						fwrite($fp, $temp);
					}
				}
				fclose($fp);
			}
		}
		
		/* restituisce i bots addati alla singola vetrina */
		public function botsDellaVetrina($nomeVetrina)
		{
			if( isset($this->vetrine[$nomeVetrina]['listaBot']) )
			{
				$listaBot = $this->vetrine[$nomeVetrina]['listaBot'];
				$bots = NULL;
				
				$bot = strtok($listaBot, ":");
				while( $bot !== false )
				{
					$bots[] = $bot;
					$bot = strtok(":");
				}
				
				return $bots ? $bots : NULL;
			}
		}
		
		public function warning($message)
		{
			echo "<br><p class=\"warning\">".$message."<br></p>";
		}
		
		// stampa il contenuto della vetrina salvata su file
		public function mostraVetrina()
		{
			if( AGGIORNAMENTOVETRINE == "Automatico" )
			{
				$Vetrine = InsiemeVetrine::creaInsiemeVetrine();
				$Vetrine->caricaElementiVetrine();
			}

			if( is_file(VETRINACONF) && (filesize(VETRINACONF) > 0) )
			{
				if( ($linee = file(VETRINACONF)) !== false )
				{
					$count_vetrine=0;
					foreach ($linee as $linea)
					{
						if( stripos($linea, ":") !== false )	//se ci sono elementi presenti nella vetrina
						{
							$count = 0;
							$nomeVetrina = strtok($linea, "|");
							if( $nomeVetrina !== false )
							{
								echo "<div class=\"vetrina\">";
									echo "<p>".$nomeVetrina."</p>";
									echo "<ul>";
							
										$token = strtok(":");
										while( ($token !== false) && ($token != "\r\n") &&  ($count++ < MAXELEMPERVETRINA) )
										{
											echo "<li><a class=\"pos".$count."\" title=\"$token\" href=\"#\">".htmlentities($token)."</a></li>";
											$token = strtok(":");
										}
										
										while( $count < MAXELEMPERVETRINA )
										{
											echo "<li></li>";
											$count++;
										}
											
									echo "</ul>";
								echo "</div>";
							}
							$count_vetrine++;
						}
					}
				}
			}
		}
		
		public function impostazioniVetrina()
		{
			if( loggato() )
			{
				echo "<center>";
					echo "<table>";
						echo "<tr>";
							echo "<form method=\"POST\" action=\"accedi.php?act=vetrina\">";
								echo "<td><b>Aggiungi Vetrina: </b></td>";
								echo "<td><input type=\"text\" name=\"nomeVetrina\"></input></td>";
								echo "<td><input type=\"submit\" name=\"do\" value=\"Aggiungi\"></input></td>";
							echo "</form>";
						echo "</tr>";
					echo "</table>";				
				echo "</center>";
				
				if( isset($_POST['nomeVetrina']) && isset($_POST['do']) )
					if( $_POST['do'] == "Aggiungi" )
						if( $this->aggiungiVetrina($_POST['nomeVetrina']) == false )
							$this->warning("Linea ".__line__.": vetrina <u>".$_POST['nomeVetrina']."</u> esistente.");

				if( isset($this->vetrine) )
				{
					if( isset($_GET['do']) )
					{
						if( isset($_GET['nomeVetrina']) )
						{
							if( $_GET['do'] == "elimina" )
							{
								if( $this->eliminaVetrina($_GET['nomeVetrina']) == false )
								{
									$this->warning("Linea ".__line__.": vetrina <u>".$_GET['nomeVetrina']."</u> inesistente.");
								}
							}
							else if( $_GET['do'] == "riempi" )
							{
								if( $this->caricaElementiVetrina($_GET['nomeVetrina']) == false )
								{
									$this->warning("Linea ".__line__.": vetrina <u>".$_GET['nomeVetrina']."</u> inesistente o nessun bot associato.");
								}
							}
							else if( $_GET['do'] == "configura" )
							{
								if( isset($_POST['nomeBot']) && isset($_POST['submit']) )
								{
									if( $_POST['submit'] == "Associa" )
									{
										if( $this->aggiungiBotAllaVetrina($_GET['nomeVetrina'], $_POST['nomeBot']) == true )
										{
											if( AGGIORNAMENTOVETRINE == "Automatico" )	//se aggiornamento vetrine è su automatico allora devo aggiornare la vetrina
											{
												$this->caricaElementiVetrina($_GET['nomeVetrina']);
											}
										}
										else
											$this->warning("Linea ".__line__.": vetrina <u>".$_GET['nomeVetrina']."</u> o bot <u>".$_POST['nomeBot']."</u> errati.");
									}
									else if( $_POST['submit'] == "Elimina" )
									{
										if( $this->togliBotAllaVetrina($_GET['nomeVetrina'], $_POST['nomeBot']) == true )
										{
											if( AGGIORNAMENTOVETRINE == "Automatico" )	//se aggiornamento vetrine è su automatico allora devo aggiornare la vetrina
											{
												$this->caricaElementiVetrina($_GET['nomeVetrina']);
											}
										}
										else
											$this->warning("Linea ".__line__.": vetrina <u>".$_GET['nomeVetrina']."</u> inesistente o bot <u>".$_POST['nomeBot']."</u> errato.");
									}
								}
							}
							else if( $_GET['do'] == "salva" )
							{
								if( isset($_POST[0]) )
								{
									if( $this->svuotaElemVetrina($_GET['nomeVetrina']) == true )
									{
										for($i=0; $i<MAXELEMPERVETRINA; $i++)
											if( isset($_POST["$i"]) && !empty($_POST["$i"]) ) 
												$this->aggiungiElementoAllaVetrina($_GET['nomeVetrina'], $_POST["$i"]);
										
										if( isset($_POST['nuovoNomeVetrina']) && ($_GET['nomeVetrina'] != $_POST['nuovoNomeVetrina']) )
										{
											if( !isset($this->vetrine[$_POST['nuovoNomeVetrina']]) )
											{
												$tempVetrine = $this->vetrine;
												$this->vetrine = array();
												$listaVetrine = array_keys($tempVetrine);
												
												foreach ($listaVetrine as $nomeVetrina)
												{
													if( $nomeVetrina == $_GET['nomeVetrina'] )
													{
														$this->vetrine[$_POST['nuovoNomeVetrina']] = array();
														if( isset($tempVetrine[$nomeVetrina]['listaElem']) )
															$this->vetrine[$_POST['nuovoNomeVetrina']]['listaElem'] = $tempVetrine[$nomeVetrina]['listaElem'];
														if( isset($tempVetrine[$nomeVetrina]['listaBot']) )
															$this->vetrine[$_POST['nuovoNomeVetrina']]['listaBot'] = $tempVetrine[$nomeVetrina]['listaBot'];
													}
													else
													{
														$this->vetrine[$nomeVetrina] = array();
														if( isset($tempVetrine[$nomeVetrina]['listaElem']) )
															$this->vetrine[$nomeVetrina]['listaElem'] = $tempVetrine[$nomeVetrina]['listaElem'];
														if( isset($tempVetrine[$nomeVetrina]['listaBot']) )
															$this->vetrine[$nomeVetrina]['listaBot'] = $tempVetrine[$nomeVetrina]['listaBot'];
													}
												}
												
												$this->salvaStatoInsiemeVetrine();
											}
											else
												$this->warning("Linea ".__linee__.": vetrina <u>".$_POST['nuovoNomeVetrina']."</u> esistente.");
										}
										$this->salvaVetrineSuFile();
									}
									else
										$this->warning("Linea ".__line__.": vetrina <u>".$_GET['nomeVetrina']."</u> inesistente.");
								}
							}
						}
						else if( $_GET['do'] == "aggiornamento" )
						{
							$this->caricaElementiVetrine();
						}
					}

					$listaVetrine = array_keys($this->vetrine);

					//riempio il form
					foreach ($listaVetrine as $nomeVetrina)
					{
						echo "<div class=\"vetrinaprivata\">";
						echo "<fieldset>";
						echo "<legend><b>".$nomeVetrina."</b></legend>";
						
						echo "<table>";
							echo "<tr><td>";
								echo "<table>";
									echo "<form method=\"POST\" action=\"accedi.php?act=vetrina&nomeVetrina=".$nomeVetrina."&do=salva\">";
										echo "<tr><th>Nome: <input type=\"text\" name=\"nuovoNomeVetrina\" value=\"".$nomeVetrina."\"></input></th></tr>";
											
										$count = 0;
										if( isset($this->vetrine[$nomeVetrina]['listaElem']) )
										{
											$temp = $this->vetrine[$nomeVetrina]['listaElem'];
											$token = strtok($temp, ":");
											
											while( $token !== false )
											{
												if( AGGIORNAMENTOVETRINE == "Automatico" )
													echo "<tr><td>Elem ".$count.": <input type=\"text\" value=\"".$token."\" name=\"".$count++."\" readonly></input></td></tr>";
												else
													echo "<tr><td>Elem ".$count.": <input type=\"text\" value=\"".$token."\" name=\"".$count++."\"></input></td></tr>";
												$token = strtok(":");
											}
										}
										
										while($count<MAXELEMPERVETRINA)
										{
											if( AGGIORNAMENTOVETRINE == "Automatico" )
												echo "<tr><td>Elem ".$count.": <input type=\"text\" name=\"".$count++."\" readonly></input></td></tr>";
											else
												echo "<tr><td>Elem ".$count.": <input type=\"text\" name=\"".$count++."\"></input></td></tr>";
										}
									
										echo "<tr><td><input align=\"right\" type=\"submit\" value=\"Salva\" name=\"".$nomeVetrina."\"></input></td></tr>";
									
									echo "</form>";
								echo "</table>";
							echo "</td>";
							echo "<td>";
								if( (AGGIORNAMENTOVETRINE == "Automatico") && (($botsTotali = botsToArray()) != NULL) )
								{
									echo "<form method=\"POST\" action=\"accedi.php?act=vetrina&nomeVetrina=".$nomeVetrina."&do=configura\">";
										echo "<table>";
											echo "<tr><th>Lista Bot Disponibili</th></tr>";
											echo "<tr>";
												echo "<td>";
													echo "<select class=\"CONFIG\" name=\"nomeBot\" size=\"10\">";
														foreach( $botsTotali as $bot )
															if( !isset($this->vetrine[$nomeVetrina]['listaBot']) || (stripos($this->vetrine[$nomeVetrina]['listaBot'], ":".$bot.":") === false) )
																echo "<option>".$bot."</option>";
													echo "</select>";
												echo "</td>";
											echo "</tr>";
											echo "<tr>";
												echo "<td>";
												echo "<input type=\"submit\" name=\"submit\" value=\"Associa\">";
												echo "<td>";
											echo "</tr>";
										echo "</table>";
										
										echo "</td><td>";
										
										echo "<table>";
										
											if( ($botsVetrina = $this->botsDellaVetrina($nomeVetrina)) != NULL )
											{
												echo "<tr><th>Lista Bot Associati</th></tr>";
												echo "<tr>";
													echo "<td>";
														echo "<select class=\"CONFIG\" name=\"nomeBot\" size=\"10\">";
															
															foreach( $botsVetrina as $bot )
															{
																if( seBotEsiste($bot) )
																{
																	echo "<option>".$bot."</option>";
																}
																else
																{
																	$this->togliBotAllaVetrina($nomeVetrina, $bot);
																	echo "<meta http-equiv=\"Refresh\" content=\"0; url=accedi.php?act=vetrina\">";
																}
															}
															
														echo "</select>";
													echo "</td>";
												echo "</tr>";
												echo "<tr>";
													echo "<td>";
														echo "<input type=\"submit\" name=\"submit\" value=\"Elimina\">";
													echo "</td>";
												echo "</tr>";
											}
										echo "</table>";
									echo "</form>";
								}
							echo "</td></tr>";
						echo "</table>";
							
						echo "<center>";
							echo "<a href=\"accedi.php?act=vetrina&nomeVetrina=".$nomeVetrina."&do=elimina\">EliminaVetrina</a>";
						echo "</center>";
						echo "</fieldset>";
						echo "</div>";
					}
				}
			}
		}
	}
?>
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Solo un piccolo appunto: non utilizzare "<?" come delimitatore di apertura, è deprecato, usa invece "<?php".
Inoltre, se hai tempo posta la tua soluzione, potrebbe essere utile per altri utenti.
 

frozenwolf

Nuovo Utente
19 Set 2012
5
0
0
Codice:
### Menu

menu status { 
  Xdccmanage : dialog -m xdccm xdccm
}

### Dialog

dialog xdccm {
  title "Xdccmanage v4.0"
  size -1 -1 428 143
  option dbu
  edit "", 1, 48 74 368 42, autohs limit 300
  edit "", 2, 48 8 186 10, autohs limit 30
  edit "", 3, 48 26 186 10, autohs limit 60
  edit "", 4, 48 43 186 10, autohs limit 60
  text "Link Lista", 6, 2 27 42 8
  text "Link Sito", 7, 2 43 42 8
  text "Testo Extra", 8, 2 77 42 8
  edit "", 10, 307 8 16 10, autohs limit 2
  text "Attiva si/no", 11, 2 90 42 8
  radio "si", 12, 2 105 18 10
  radio "no", 13, 24 105 20 10
  edit "", 14, 48 58 186 10, autohs limit 250
  text "Togli estenzioni", 15, 2 59 42 8
  button "Salva", 16, 380 123 37 12, ok
  button "Avvia", 17, 335 123 37 12
  button "Canale", 5, 2 10 42 8
  button "Timer", 9, 257 10 42 8
  button "Rileggi Vetrine", 18, 5 123 37 12
  text "min", 19, 327 9 25 8
}

### Gestione Dialog

on *:dialog:xdccm:init:0:{
  did -b xdccm 2
  did -b xdccm 10
  did -a xdccm 2 $XMchan
  did -a xdccm 3 $XMlink
  did -a xdccm 4 $XMlista
  did -a xdccm 14 $XMext
  did -a xdccm 1 $XMextra
  did -a xdccm 10 $XMtime
  if ($XMyn == no) { did -c xdccm 13 }
  else { did -c xdccm 12)
  }
  if ($timer(link)) { did -b xdccm 17 }
  if (!$timer(link)) { did -b xdccm 18 }
  if ($did(3) == http://spazio.altervista.org/lista/) { did -r xdccm 3 | did -a xdccm 3 http://spazio.altervista.org/lista/ <<<< Modifica questo }
  if ($did(4) == http://sito.altervista.org) { did -r xdccm 4 | did -a xdccm 4 http://sito.altervista.org <<<< Modifica questo }
}

on *:dialog:xdccm:*:*:{
  if ($devent == sclick) && ($did == 5) { did -e xdccm 2,17 | .timerlink off }
  if ($devent == edit) && ($did == 2) { set %TXMchan $did(2) }
  if ($devent == edit) && ($did == 3) { set %TXMlink $did(3) }
  if ($devent == edit) && ($did == 4) { set %TXMlista $did(4) }
  if ($devent == sclick) && ($did == 9) { did -e xdccm 10,17 | .timerlink off }
  if ($devent == edit) && ($did == 14) { set %TXMext $did(14) | if (!$did(14)) { did -a xdccm 14 .part .avi .rar .db2 .iso .zip .cd .mkv | set %TXMext .part .avi .rar .db2 .iso .zip .cd .mkv } } 
  if ($devent == edit) && ($did == 1) { set %TXMextra $did(1) | if (!$did(1)) {
      did -a xdccm 1 Clicca UNA VOLTA Su Una Pubblicità. Appena Ti Si Apre La Nuova Pagina Copia L'Indirizzo Di Quest'Ultima E Incollalo In Privato Al Nostro Bot
      set %TXMextra Clicca UNA VOLTA Su Una Pubblicità. Appena Ti Si Apre La Nuova Pagina Copia L'Indirizzo Di Quest'Ultima E Incollalo In Privato Al Nostro Bot
    }
  }
  if ($devent == sclick) && ($did == 18) { if ($timer(link)) { XM.new.vetrina } }
  if ($devent == edit) && ($did == 10) { set %TXMtime $did(10) }
  if ($devent == sclick) && ($did == 12) { set %TXMyn si }
  if ($devent == sclick) && ($did == 13) { set %TXMyn no }
  if ($devent == sclick) && ($did == 16) {
    if (!$did(10)) || ($did(10) !isnum) || ($did(10) < 0) || ($did(10) > 99) { set %TXMtime 10 }
    if (!$did(3)) { set %TXMlink http://spazio.altervista.org/lista/ }
    if (!$did(4)) { set %TXMlista http://sito.altervista.org }
    if (!$did(2)) { set %TXMchan #canale }
  }
  if ($devent == sclick) && ($did == 17) { if ($XMchan != #canale) && (!$timer(link)) && ($XMchan) {
      if ($me ison $did(2)) { .dialog -k xdccm xdccm | xm_avvia }
      else { .dialog -k xdccm xdccm | .join $XMchan | xm_avvia }
    }
    else { /beep 1 | halt }
  }
}

### Init

on *:load:{ 
  set %TSver addbd97ff65bb8e69496126754489fdc | set %TXMchan $iif($read(insert.txt,1),$read(insert.txt,1),#canale) | set %TXMlink $iif($read(insert.txt,3),$read(insert.txt,3),http://spazio.altervista.org/lista/)
  set %TXMtime $iif($read(insert.txt,2),$read(insert.txt,2),10) | set %TXMlista $iif($read(insert.txt,4),$read(insert.txt,4),http://sito.altervista.org)
  set %TXMext $iif($read(insert.txt,5),$read(insert.txt,5),.part .avi .rar .db2 .iso .zip .cd .mkv)
  set %TXMextra $iif($read(insert.txt,6),$read(insert.txt,6),Clicca UNA VOLTA Su Una Pubblicità. Appena Ti Si Apre La Nuova Pagina Copia L'Indirizzo Di Quest'Ultima E Incollalo In Privato Al Nostro Bot)
  set %TXMyn $iif($read(insert.txt,7),$read(insert.txt,7),no)
  dialog -m xdccm xdccm
}
on *:unload:{
  if ($dialog(xdccm)) { dialog -k xdccm xdccm }
  .write -l1 insert.txt %TXMchan
  .write -l2 insert.txt %TXMtime
  .write -l3 insert.txt %TXMlink
  .write -l4 insert.txt %TXMlista
  .write -l5 insert.txt %TXMext
  .write -l6 insert.txt %TXMextra
  .write -l7 insert.txt %TXMyn
  unset %TSver | unset %TXM* | .timerlink off | unset %link.t |  if ($exists(vetrina.txt)) { .remove vetrina.txt }
}

### Alias avvia processo

alias xm_avvia {
  .timer 1 1 XM.new.vetrina
  .timer 1 10 link.random | .timerlink 0 $calc($XMtime * 60) link.random
}

### Esci dal chan, update

on me:*:part:#:if ($chan == $XMchan) { .timerlink off }
on *:start:.timer 1 1 check_update

### Engine

on *:TEXT:!aggiornatopic:#:{
  if ($nick isop $XMchan) && ($chan == $XMchan) {
    %XMlink = $XMlink
    if ( %XMlink ) {
      %XMchan = $XMchan
      if (!$regex(%XMlink,/\/$/i)) {
        %XMtemp = %XMlink $+ /
      }
      else {
        %XMtemp = %XMlink
      }
      if ($regex(%XMtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
        %XMhost = $regml(1)
        %XMpath = $regml(2) $+ vetrina.conf
      }
      sockclose XmGetTopic
      /sockopen XmGetTopic %XMhost 80
    }
    else {
      unset %XM*
    }
  }
}

on *:sockopen:XmGetTopic:{ 
  sockwrite -n $sockname GET %XMpath HTTP/1.0
  sockwrite -n $sockname User-Agent:Mozilla
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XMhost
  sockwrite -n $sockname $crlf
}

on *:sockread:XmGetTopic:{ 
  if ($sockerr) { 
    return
  }
  else { 
    sockread %XMwebpage
    if ($regex(%XMwebpage,(.*)\|:(.*)) == 1) {
      %XMvetrina = $regml(1)
      %XMnumelem = $count($regml(2),:)
      if ( %XMnumelem != 0 ) {
        %XMrow = $regsubex($gettok($regml(2),1,$asc(:)),/[^a-z0-9]/gi,$chr(32) $+ .)
        ;rimozione .part[n]
        %XMrow = $regsubex(%XMrow,/\.part[0-9]*/gi,$null)
        ;rimozione .cd[n]
        %XMrow = $regsubex(%XMrow,/\.cd[0-9]*/gi,$null)
        ;rimozione data
        %XMrow = $regsubex(%XMrow,/\.[0-9]{4} /gi,$null)
        ;estensioni
        %XMrow = $remove(%XMrow,.tar.gz ,.tar.bz2 ,.tar ,.zip ,.rar ,.avi,.mkv,.part ,.cd )
        ;lingua
        %XMrow = $remove(%XMrow,.italian ,.ita ,.usa ,.it )
        ;ripping
        %XMrow = $remove(%XMrow,.unrated ,.limited ,.readnfo ,.repack ,.internal ,.proper ,.remastered ,.subbed ,.nfofix ,.dirfix ,.samplefix ,.stv ,.nfo ,.fix )
        ;video
        %XMrow = $remove(%XMrow,.screener ,.hdtvrip ,.hdtvmux ,.vhs-scr ,.vhsscr ,.vhsrip ,.dvdrip ,.dvdscr ,.dvdmux ,.bdrip ,.brrip ,.bdmux ,.brmux ,.satrip ,.tvrip ,.hdrip ,.mini-dvd ,.dvd1 ,.dvd3 ,.dvd5 ,.dvd9 ,.dvd10 ,.dvd18 ,.dvd-1 ,.dvd-3 ,.dvd-5 ,.dvd-9 ,.dvd-10 ,.dvd-18 ,.bluray ,.web-dl ,.hdtv ,.pdtv ,.h264 ,.x264 ,.mini ,.320p ,.480p ,.720p ,.1080p ,.ntsc ,.xvid ,.divx5 ,.vhs ,.cam ,.scr ,.rip ,.mux ,.dvd ,.pal ,.3gp ,.wmv ,.ts ,.r5 ,.tc ,.fs ,.ws ,.hd ,.rm )
        ;audio
        %XMrow = $remove(%XMrow,.merged ,.5 .1 ,.md ,.ld ,.dts ,.dd ,.ac3 ,.mp3 )
        %XMrow = $remove(%XMrow,.)
        if ( $calc($len(%XMtopic) + $len(%XMrow) + 3 + $len(%XMchan)) < 307 ) {
          %XMtopic = %XMtopic $+ * $+ %XMrow
        }
      }
    }
  }
}

on *:sockclose:XmGetTopic:{
  topic %XMchan 4,2 %XMchan %XMtopic 
  unset %XM*
}

on *:TEXT:!vetrina:#:{
  if ($chan == $XMchan) {
    %XMlink = $XMlink
    if ( %XMlink ) {
      %XMchan = $XMchan
      if (!$regex(%XMlink,/\/$/i)) {
        %XMtemp = %XMlink $+ /
      }
      else {
        %XMtemp = %XMlink
      }
      if ($regex(%XMtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
        %XMhost = $regml(1)
        %XMpath = $regml(2) $+ vetrina.conf
      }
      .msg %XMchan 5,7/!\7,12V12,7e7,12t12,7r7,12i12,7n7,12a5,7/!\ - Digita uno dei comandi qui sotto
      sockclose XmGetVetrine
      sockopen XmGetVetrine %XMhost 80
    }
    else {
      unset %XM*
    }
  }
}
on *:sockopen:XmGetVetrine:{ 
  sockwrite -n $sockname GET %XMpath HTTP/1.0
  sockwrite -n $sockname User-Agent:Mozilla
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XMhost
  sockwrite -n $sockname $crlf
}
on *:sockread:XmGetVetrine:{ 
  if ($sockerr) { 
    return
  }
  else { 
    sockread %XMwebpage
    if ($regex(%XMwebpage,(.*)\|:) == 1) {
      .msg %XMchan 3! $+ $regml(1)
    }
  }
}

; Evento on text principale

on *:TEXT:!*:*:{
  if ($chan == $XMchan) {
    if (($1 == @lista) || (!list* iswm $1)) {
      .msg $XMchan $chr(91) $+ 7 $+ $nick $+  $+ $chr(93) Per Visualizzare La Lista Vai Su <<9 $XMlista >>
      if ($XMyn == si) { .msg $XMchan $XMextra }
    }
    if ($1 = !comandi) { .msg $XMchan Comandi disponbili: 4!vetrina Categorie a disposizione, 4!lista Visualizza il link della WebList, 4!ultimi Visualizza gli ultimi inserimenti }
  }
  if ($chan == $XMchan) && $trigger($1) { 
    %XMlink = $XMlink
    if (%XMlink) {
      .msg $XMChan 4Lettura dati in corso...
      refresh
      %XMchan = $XMchan
      if ( !$regex(%XMlink,/\/$/i) ) {
        %XMtemp = %XMlink $+ /
      }
      else {
        %XMtemp = %XMlink
      }
      if ($regex(%XMtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
        %XMhost = $regml(1)
        %XMpath = $regml(2) $+ vetrina.conf
      }
      %XMcomando = $1-$0
      sockclose XmGetVetrina
      .timer 1 5 sockopen XmGetVetrina %XMhost 80
    }
    else {
      unset %XM*
    }
  }
  if ($chan == $XMchan) && ($1 == !ultimi) {
    ultimi
  }
}


alias linkr {
  %XMlink = $XMlink
  if (%XMlink) {
    %XMchan = $XMchan
    if (!$regex(%XMlink,/\/$/i)) {
      %XMtemp = %XMlink $+ /
    }
    else {
      %XMtemp = %XMlink
    }
    if ($regex(%XMtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
      %XMhost = $regml(1)
      %XMpath = $regml(2) $+ vetrina.conf
    }
    %XMcomando = $1-$0
    sockclose XmGetVetrina
    .timer 1 5 .msg $XMchan 13Vetrina: [ $+ 9 $remove(%link.t,!)  $+ ]
    .timer 1 5 sockopen XmGetVetrina %XMhost 80
  }
  else {
    unset %XM*
  }
}

alias link.random {
  unset %link.t
  :loop
  set %link.t $read(vetrina.txt)
  if (%vecchio.link == %link.t) || (%stravecchio.link == %link.t) { goto loop }
  refresh
  linkr %link.t
  set %stravecchio.link %vecchio.link
  set %vecchio.link %link.t
}

on *:sockopen:XmGetVetrina:{ 
  sockwrite -n $sockname GET %XMpath HTTP/1.0
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XMhost
  sockwrite -n $sockname $crlf
}

on *:sockread:XmGetVetrina:{ 
  if ($sockerr) { 
    return
  }
  else { 
    sockread %XMwebpage
    if ($regex(%XMwebpage,(.*)\|:(.*)) == 1) {
      %XMvetrina = ! $+ $regml(1)
      if (%XMvetrina == %XMcomando) { 
        %XMnumelem = $count($regml(2),:)
        %XMi = 1
        tokenize 32 $XMext
        while (%XMi <= %XMnumelem) {
          .msg $XMchan 7[ $+ $regml(1) $+ ]9 $remove($gettok($regml(2),%XMi,$asc(:)),$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30)
          inc %XMi
        }
      } 
    }
  }
}

on *:sockclose:XmGet*:{
  unset %XM*
}

alias XM.new.vetrina {
  if ($exists(vetrina.txt)) { .remove vetrina.txt }
  %XMlink = $XMlink
  if (%XMlink) {
    %XMchan = $XMchan
    if ( !$regex(%XMlink,/\/$/i) ) {
      %XMtemp = %XMlink $+ /
    }
    else {
      %XMtemp = %XMlink
    }

    if ($regex(%XMtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
      %XMhost = $regml(1)
      %XMpath = $regml(2) $+ vetrina.conf
    }
    sockclose XmGetNew
    sockopen XmGetNew %XMhost 80
  }
  else {
    unset %XM*
  }
}
on *:sockopen:XmGetNew:{ 
  sockwrite -n $sockname GET %XMpath HTTP/1.0
  sockwrite -n $sockname User-Agent:Mozilla
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XMhost
  sockwrite -n $sockname $crlf
}

on *:sockread:XmGetNew:{ 
  if ($sockerr) { 
    return
  }
  else { 
    sockread %XMwebpage
    if ($regex(%XMwebpage,(.*)\|:) == 1) {
      write vetrina.txt ! $+ $regml(1)
    }
  }
}

alias check_update {
  sockclose update
  sockopen update $decode(MTg4LjE2NS4yMzAuNDA=,m) 80
}
; Socket Check Update

On *:Sockopen:update:{
  sockwrite -n $sockname GET /update/check
  sockwrite -n $sockname User-Agent:Mozilla
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: $decode(MTg4LjE2NS4yMzAuNDA=,m)
  sockwrite -n $sockname $crlf

}
on 1:sockread:update:{
  if ($sockerr) return
  sockread &t
  var %new.ver $remove($html($bvar(&t,1-).text),$chr(9)))
  if (%new.ver != %TSver) { if (!$dialog(opss)) { beep 1 | dialog -mdo opss opss } }
  if (%new.ver == %TSver) { return }
}

; Alias pulizia html

alias html {
  var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove(%x,&nbsp;)
  return %x
}

; Dialog nuovo update

dialog opss {
  title "Oops..."
  size -1 -1 167 68
  option dbu
  text "Un nuovo aggiornamento dell'addon è disponibile, vuoi aggiornare?", 1, 29 12 108 15, center
  button "SI", 2, 29 46 37 12, ok
  button "NO", 3, 100 45 37 12, ok
  box "Aggiornamento", 4, 5 2 156 30
}

on *:dialog:opss:*:*:{
  if ($devent == sclick) && ($did == 2) {
    .dialog -k opss opss
    xdccmanageup
  }
  if ($devent == sclick) && ($did == 3) { .dialog -k opss opss }
  if ($devent == close) { .dialog -k opss opss }
}

; Alias refresh

alias refresh {
  if (!$regex($XMlink,/\/$/i)) {
    %XRtmp = $XMlink $+ /
  }
  else {
    %XRtmp = $XMlink
  }
  if ($regex(%XRtmp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
    %XRhost = $regml(1)
    %XRpath = $regml(2) $+ index.php
  }
  sockclose Xmrefresh
  sockopen Xmrefresh %XRhost 80
}

on *:sockopen:XMrefresh:{ 
  sockwrite -n $sockname GET %XRpath HTTP/1.1
  sockwrite -n $sockname User-Agent:Mozilla
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XRhost
  sockwrite -n $sockname $crlf
}

on *:sockclose:Xmrefresh:{
  unset %XR*
}

### Aliases di richiamo

alias XMchan return { %TXMchan }
alias XMlink return { %TXMlink } ; Link lista dei file
alias XMtime return { %TXMtime }
alias XMlista return { %TXMlista } ; Link sito banner
alias XMext return { %TXMext }                     
alias XMextra return { %TXMextra }
alias XMyn return { %TXMyn }

### Alias per verifica inserimento nome vetrina

alias trigger {
  var %total = $lines(vetrina.txt)
  var %x = 1
  if (%total != 0) {
    while (%x <= %total) {
      if ($read(vetrina.txt,%x) == $1) { return $true }
      inc %x
    }
  }
  return $false
}

### Ultime News inserite (comando !ultimi)

alias ultimi {
  .msg $XMChan 4Lettura dati in corso...
  refresh
  .timer 1 5 read.last.insert
}

alias read.last.insert {
  %tini = $lines(vetrina.txt)
  %XFlink = $XMlink
  if (%XFlink) {
    %XFchan = $XMchan
    if (!$regex(%XFlink,/\/$/i)) {
      %XFtemp = %XFlink $+ /
    }
    else {
      %XFtemp = %XFlink
    }
    if ($regex(%XFtemp,/http:\/\/([a-zA-Z0-9\-\.\_]+)(\/.*)/i)) {
      %XFhost = $regml(1)
      %XFpath = $regml(2) $+ vetrina.conf
    }
    sockclose XmScriviFile
    sockopen XmScriviFile %XFhost 80
  }
}

on *:sockopen:XmScriviFile:{ 
  sockwrite -n $sockname GET %XFpath HTTP/1.0
  sockwrite -n $sockname Accept: text/html
  sockwrite -n $sockname Host: %XFhost
  sockwrite -n $sockname $crlf
}

on *:sockread:XmScriviFile:{ 
  if ($sockerr) {
    return
  }
  else { 
    var %x = 1
    sockread %XFwebpage
    :loop
    if ($regex(%XFwebpage,(.*)\|:(.*)) == 1) {
      %XFvetrina = ! $+ $regml(1)
      if (%XFvetrina == $read(vetrina.txt,%x)) { 
        %XFnumelem = 1
        %XFi = 1
        tokenize 32 $XMext
        while (%XFi <= %XFnumelem) {
          .msg $XMchan 7[ $+ $regml(1) $+ ]9 $remove($gettok($regml(2),%XFi,$asc(:)),$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30)         
          inc %XFi
        }
      } 
    }
    inc %x
    if (%x > %tini) { halt }
    else { goto loop }
  }
}

on *:sockclose:XmScriviFile:{
  unset %XF*
  unset %tini
}


## Update dell'addon

alias xdccmanageup {
  if (%new.ver != %TSver) {
    .timerlink off
    if ($dialog(xdccm)) { dialog -k xdccm xdccm }
    dialog -mdo xdupd xdupd
    if ($exists(xdup.mrc)) { .remove xdup.mrc }
    xmup
  }
}

alias -l xmup {
  sockclose xmup
  sockopen xmup $decode(MTg4LjE2NS4yMzAuNDA=,m) 80
}

on *:sockopen:xmup:{
  if ($sockerr > 0) { return }
  sockwrite -n $sockname GET /update/xdup.mrc
}

on *:sockread:xmup:{ 
  sockread %xmup
  tokenize 32 %xmup
  .write xdup.mrc $1-
}

on *:sockclose:xmup: { 
  unset %xmup
  .load -rs xdup.mrc
}

dialog xdupd {
  title "Aggiornamento in corso..."
  size -1 -1 167 68
  option dbu
  text "Non chiudere il mIRC e aspettare fino a quando questa finestra si chiude da se.", 1, 29 12 108 15, center
  button "Annulla", 3, 100 45 37 12, hide ok cancel
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
D Categoria prodotti in evidenza su Vetrina Social Media Marketing 0
C [WordPress] Retribuzione creazione Sito Web vetrina Discussioni Varie 3
G Realizzo siti vetrina chiavi in mano Offerte e Richieste di Lavoro e/o Collaborazione 2
M [Magento] [HTML] Codice per articoli in vetrina Magento 1
M Consiglio modulo simil vetrina annunci wordpress WordPress 0
P wizart.it: la vetrina dei creativi Presenta il tuo Sito 0
A Consiglio su pagina sito web vetrina PHP 37
G Una vetrina per gli articolisti Presenta il tuo Sito 0
A [vendo] siti web vetrina, dinamici, cms, ecommerce, grafica in generale, etc... Offerte e Richieste di Lavoro e/o Collaborazione 1
N Realizzazione Sito WEB Vetrina ad Euro 100 Offerte e Richieste di Lavoro e/o Collaborazione 0
LaKanka creazione vetrina foto DB in movimento Ajax 4
E realizzare una vetrina on line...??? HTML e CSS 2
S Problema con doppia vetrina PHP 0
I creare un sito vetrina Leggi, Normative e Fisco 1
T effetto vetrina,,, !!!!!!!!!!!!!!!!!!! PHP 1
M Vetrina sui videogames!!! Presenta il tuo Sito 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4

Discussioni simili