Leggi gli ultimi interventi sul forum
 
You are here: Sky ForumWebSviluppo webPhpAiuto script in php
Pagine: [1]
Aiuto script in php
0 Utenti e 1 Visitatore stanno guardando questo topic.
  • Reloweb
  • tester
  • *
  • Offline Offline
  • Posts: 155
  • reloweb 
  • Guarda Profilo WWW
Aiuto script in php
« il: Settembre 21, 2009, 05:55:59 »

Salve a tutti,
oggi ricorro per l'ennesima volta al vostro supporto chiedendovi un piccolo aiuto nella realizzazione di uno script.

Per prima cosa guardate questa pagina http://scopri.prolocobisceglie.it/contest.php

Come funziona:
- Lo script prende da mysql la foto che ha l'attuale timestamp compresa tra data_inizio e data_fine e printa sotto la foto il form di partecipazione (come è possibile notare).

- Cliccando sulle foto precedenti è possibile vedere la foto con sotto la risposta.

- Le foto future non vengono visualizzate e al proprio posto viene inserito un punto interrogativo (?)

E' più difficile a dirsi che a farsi...

Io ho risolto il problema impostando lo script in questo modo ma mi sembra un tantino sporco...
Codice
GeSHi (php):
//L'id è quello della domanda
if(eregi('^[0-9]$', $ID)) {
$query = mysql_query("SELECT * FROM questions_ss WHERE ID='$ID'"); }
else { $query = mysql_query("SELECT * FROM questions_ss WHERE data_inizio < '$time' AND '$time' < data_fine"); }
 
$array = mysql_fetch_array($query);
 
if ($array['data_inizio'] < $time AND $time < $array['data_fine']) {
[...] // Printa la foto con il form
Created by GeSHI 1.0.7.20

Codice
GeSHi (php):
elseif(eregi('^[0-9]$', $ID) AND $array['data_fine'] < $time AND $ID <= $max_id[0] AND $max_id_righe != "0") {
//Qui printa la foto con la risposta
Created by GeSHI 1.0.7.20

Codice
GeSHi (php):
} else {
//Printa il messaggio di errore nel caso in cui è stato inserito un ID sbagliato o non c'è nessuna domanda in programma per oggi.
Created by GeSHI 1.0.7.20

Vi ringrazio!
  • skydiamond
  • Amministratore
  • pr
  • *
  • Offline Offline
  • Posts: 883
  • skydiamond 
  • Guarda Profilo WWW
Re: Aiuto script in php
« Risposta #1 il: Settembre 21, 2009, 06:11:21 »

Credo di aver capito cosa tu voglia fare e posso consigliarti di iniziare a scrivere lo script con uno switch al posto dell'if-elseif-else. Ho visto che usi la funzione eregi e so che ad oggi è deprecata http://php.net/eregi

Il codice che hai scritto produce errori?  ?

Loggato
  • Reloweb
  • tester
  • *
  • Offline Offline
  • Posts: 155
  • reloweb 
  • Guarda Profilo WWW
Re: Aiuto script in php
« Risposta #2 il: Settembre 21, 2009, 06:13:52 »

No, funziona bene, solo che è un po pasticciato...
Con cosa rimpiazzo la funzione eregi?
  • skydiamond
  • Amministratore
  • pr
  • *
  • Offline Offline
  • Posts: 883
  • skydiamond 
  • Guarda Profilo WWW
Re: Aiuto script in php
« Risposta #3 il: Settembre 21, 2009, 06:27:54 »

No, funziona bene, solo che è un po pasticciato...
Con cosa rimpiazzo la funzione eregi?


http://www.php.net/manual/en/function.preg-match.php

http://www.php.net/manual/en/book.pcre.php

Bisognerebbe utilizzare le funzioni compatibili con Perl. Comunque se ti viene troppo complicato per ora lascia eregi. Lo script che hai fatto è basilare ma se funziona correttamente penso che potresti anche lasciarlo così come si trova. Non deve fare chissà cosa. Altrimenti creavi una classe domanda e una classe foto dove andavi a prendere i dati dal database, ecc. Comunque anche il procedurale va benissimo visto il risultato ottenuto.
Loggato
  • Reloweb
  • tester
  • *
  • Offline Offline
  • Posts: 155
  • reloweb 
  • Guarda Profilo WWW
Re: Aiuto script in php
« Risposta #4 il: Settembre 21, 2009, 06:31:51 »

Ok credo che lo lascerò così dato che comunque funziona...
Re: Aiuto script in php
« Risposta #5 il: Settembre 22, 2009, 01:48:01 »

Puoi anche utilizzare strpos
Loggato
Re: Aiuto script in php
« Risposta #6 il: Novembre 27, 2009, 07:34:16 »

Ho scritto queste funzioni che sostituiscono le funzioni ereg  mantenendo la stessa sintassi:

Codice:
<?php
/**
 * define php standard functions
 *
 * @author Alessandro Vernassa
 * @license http://opensource.org/licenses/gpl-license.php GNU General Public License
 */
if (! function_exists ( 'ereg' ))
{
function ereg($find, $str, &$regs)
{
return fn_erg ( $find, $str, $regs );
}
}

if (! function_exists ( 'eregi' ))
{
function eregi($find, $str, &$regs)
{
return fn_ergi ( $find, $str, $regs );
}
}

if (! function_exists ( 'ereg_replace' ))
{
function ereg_replace($pattern, $replacement, $string)
{
return fn_erg_replace ( $pattern, $replacement, $string );
}
}

if (! function_exists ( 'eregi_replace' ))
{
function eregi_replace($pattern, $replacement, $string)
{
return fn_ergi_replace ( $pattern, $replacement, $string );
}
}

function fn_erg($find, $str, $regs=null)
{
return preg_match ( "/" . str_replace ( '/', '\\/', $find ) . "/s", $str, $regs );
}
function fn_ergi($find, $str, $regs=null)
{
return (preg_match ( "/" . str_replace ( '/', '\\/', $find ) . "/si", $str, $regs ));
}
function fn_erg_replace($pattern, $replacement, $string)
{
return preg_replace ( "/" . str_replace ( '/', '\\/', $pattern ) . "/s", $replacement, $string );
}
function fn_ergi_replace($pattern, $replacement, $string)
{
return preg_replace ( "/" . str_replace ( '/', '\\/', $pattern ) . "/si", $replacement, $string );
}

?>


le uso da un po' e sono abbastanza collaudate.
Ho messo volutamente il nome "erg" invece che "ereg" in modo che si possa fare un trova/sostituisci di "ereg" su tutti i files di eventuali programmi già scritti senza che vengano sovrascritte le nuove funzioni.


Alex
« Ultima modifica: Novembre 27, 2009, 07:38:12 da speleoalex »
Loggato
  • skydiamond
  • Amministratore
  • pr
  • *
  • Offline Offline
  • Posts: 883
  • skydiamond 
  • Guarda Profilo WWW
Re: Aiuto script in php
« Risposta #7 il: Novembre 27, 2009, 09:45:32 »

Ho scritto queste funzioni che sostituiscono le funzioni ereg  mantenendo la stessa sintassi:

Codice:
<?php
/**
 * define php standard functions
 *
 * @author Alessandro Vernassa
 * @license http://opensource.org/licenses/gpl-license.php GNU General Public License
 */
if (! function_exists ( 'ereg' ))
{
function ereg($find, $str, &$regs)
{
return fn_erg ( $find, $str, $regs );
}
}

if (! function_exists ( 'eregi' ))
{
function eregi($find, $str, &$regs)
{
return fn_ergi ( $find, $str, $regs );
}
}

if (! function_exists ( 'ereg_replace' ))
{
function ereg_replace($pattern, $replacement, $string)
{
return fn_erg_replace ( $pattern, $replacement, $string );
}
}

if (! function_exists ( 'eregi_replace' ))
{
function eregi_replace($pattern, $replacement, $string)
{
return fn_ergi_replace ( $pattern, $replacement, $string );
}
}

function fn_erg($find, $str, $regs=null)
{
return preg_match ( "/" . str_replace ( '/', '\\/', $find ) . "/s", $str, $regs );
}
function fn_ergi($find, $str, $regs=null)
{
return (preg_match ( "/" . str_replace ( '/', '\\/', $find ) . "/si", $str, $regs ));
}
function fn_erg_replace($pattern, $replacement, $string)
{
return preg_replace ( "/" . str_replace ( '/', '\\/', $pattern ) . "/s", $replacement, $string );
}
function fn_ergi_replace($pattern, $replacement, $string)
{
return preg_replace ( "/" . str_replace ( '/', '\\/', $pattern ) . "/si", $replacement, $string );
}

?>


le uso da un po' e sono abbastanza collaudate.
Ho messo volutamente il nome "erg" invece che "ereg" in modo che si possa fare un trova/sostituisci di "ereg" su tutti i files di eventuali programmi già scritti senza che vengano sovrascritte le nuove funzioni.


Alex



Davvero utili!  geek
Loggato
Pagine: [1]
You are here: Sky ForumWebSviluppo webPhpAiuto script in php
Salta a: