script per redirect php ad orari stabiliti

romeopasquy

Nuovo Utente
27 Dic 2011
19
0
0
Buongiorno a tutti, sono nuovo di questo forum, ho un problema un po' complicato (almeno per me non so niente di php) che spero di poter risolvere con il vostro aiuto.

Sto realizzando un sito che contiene una chat che ha degli orari di apertura e di chiusura; praticamente ho impostato la cosa in questo modo: da un link all'interno di una pagina "X" si viene direzionati a una pagina "Y" questa pagina "Y" essendo tutto in asp deve fare eseguire quanto contenuto nella pagina php, la quale deve contenere al suo interno un codice che ridireziona dalle 10 alle 22 alla pagina "A" e dalle 22 alle 10 alla pagina "B".

In parica il risultato deve essere che si possa accedere alla pagina di login della chat solo dalle 10 alle 22 e che dalle 22 alle 10 di venga ridirezionati in un'altra pagina. Ho scelto questo metodo un po' macchinoso del file in php perchè ho la necessità che venga preso come riferimento l'orario del server e non quello del client per evitare che il visitatore possa accedere semplicemente modificando l'orario del proprio pc.

Spero di essere stato chiaro, cmq sono a disposizione per tutti i chiarimenti. Vi prego di postarmi il codice da inserire nella pagina php e quello con cui lo richiamo nell'altra pagina "Y", o se conoscete un altro metodo più semplice e sicuro di suggerirmelo. Vi prego anche di usare un linguaggio il meno tecnico possibile, perchè non sono cos' esperto.

Grazie a chi mi vorrà aiutare.
 
ciao
da quello che ho capito tu hai una pag in asp e vuoi che esegua del codice php al suo interno? non sono espertissimo, ma non credo che all'interno di una pag in asp tu possa inserire del codice php (e viceversa), cioè puoi anche inseririlo, ma non viene interpretato.
però posso sbagliarmi
 
ciao e grazie per la risposta.

in realtà il codice php non è all'interno della pagina in asp, ma all'interno di una pagina php, viene solo richiamato nella pagina asp dicendogli di eseguire il codice della pagina php quando viene caricata la pagina asp.
 
ciao
è proprio quel "richiamato" che mi fa sorgere dei dubbi.
se con richiamato intendi
la pag_a.asp chiama la pag_p.php e quindi la pag_p.php esegue il codice php, tornando poi alla pag_a.asp (o altra) forse non ci sono problemi (dico forse)
ma se si tratta di inclusione della pag_p.php dentro la pag_a.asp è come se tu scrivessi il codice php nella pag asp e, quindi come detto, non viene interpretato.
comunque ho dei dubbi anche per il primo caso in quanto penso dipenda dal tuo provider/host che ti permetta di passare ad un interprete all'altro nello stesso dominio.
secondo me, visto che dici che di php non sai nulla, perchè non fai tutto in asp?
 
ciao, in realtà la soluzione della pagina in php l'ho pensata perchè il problema più importante è quello dell'orario, e per fare in modo che venga preso per riferimento l'orario del server credo di dover utilizzare un linguaggio lato server, in asp o in javascript sono riuscito ad effettuare i vari redirect ma tutti con orario client e questo non va bene.
Mi è venuta in mente questa soluzione perchè il contactform che utilizzo è impostato nella stessa maniera, ovvero tutti i campida compilare in una pagina asp e una pagina php che esegue il tutto tramite un collegamento alla stessa <form action="pagina.php> ecc.
Ho pensato che se funziona con il contact form, poteva funzionare anche per il mio problema.
Comunque ci sarà pur un modo... spero :)
 
ciao
sì devi usare un lato server asp o php, non javascript che è un lingiaggio lato client, tra l'altro bypassabile facilmente.
se nella pag asp vuoi richiamare il file php come detto non dovrebbero esserci problemi, poi per il codice php per reindirizzare ad una pagina (dalle 22 alle 10) o ad un'altra, non ci sono problemi.
il codice è semplice.
riassumendo
tu hai una pag X e tramite link vai alla Y
nella Y se ore da 22 a 10 vai alla pag di log
altrimenti ad un'altra
giusto?
se ho capito giusto, secondo me, la pag Y potrebbe essere lei stessa in php e reindirizzarti alla log o ad un altra.
un semplice codice php potrebbe essere:

PHP:
<?php
$adesso=date("H:i"); //restituisce l'ora del server nel formato hh:mm es. 15:35
if($adesso >= "22:00"){//da 22:00 a 23:59
	header("location=pag_di_log.asp");//reindirizza alla pag di log
}else{//da 00:00 a 21:59
	if($adesso <= "10:00"){//dalle 00:00 alle 10:00
		header("location=pag_di_log.asp");
	}else{//da 10:01 a 21:59
		header("location=pag_che_preferisci.asp");//reindirizza dove vuoi tu
	}
}
?>

se chiami la pag con lo script sopra Y.php, nella pag X.asp modifichi il link

Codice:
<a href="Y.php">loggati</a>
 
ok perfetto.. ti ringrazio per la soluzione.

L'ho provata ma al click del link nella pagina x mi restituisce questo errore:

CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

forse ho sbagliato qualcosa?
 
allora si scusami avevo messo solo ../ invece degli indirizzi completi delle pagine con http ecc.

Ora non mi da più quell'errore però mi compare la pagina php bianca, in pratica non effettua i redirect.

grazie 1000.
 
ciao
cioè se clicchi sul link della pag X vai alla Y e quindi bianca?
prova a fare una cosa
coomenta le istruzioni header e metti degli echo
PHP:
<?php 
$adesso=date("H:i"); //restituisce l'ora del server nel formato hh:mm es. 15:35 
if($adesso >= "22:00"){//da 22:00 a 23:59 
    echo "sono tra le 22:00 e le 23:59 = $adesso <br>";
	//header("location=pag_di_log.asp");//reindirizza alla pag di log 
}else{//da 00:00 a 21:59 
    if($adesso <= "10:00"){//dalle 00:00 alle 10:00 
        echo "sono tra le 00:00 e le 10:00 = $adesso <br>";
		//header("location=pag_di_log.asp"); 
    }else{//da 10:01 a 21:59 
        echo "sono tra le 10:01 e le 21:59 = $adesso <br>";
		//header("location=pag_che_preferisci.asp");//reindirizza dove vuoi tu 
    } 
} 
?>
e dimmi cosa riporta dovrebbe darti circa

sono tra le 10:01 e le 21:59 = 18:xx

p.s.
non servirebbe il percorso assoluto http://ecc...., ma basta il percorso relativo, è evidente che devi mettere l'eventuale percorso
header("location:../cartella/pag_di_log.asp")
 
grazie per la pazienza..

mi restituisce un errore di sintassi alla riga 7

Parse error: syntax error, unexpected T_STRING in D:\inetpub\webs\ecc ecc ecc on line 7

naturalmente ho sostituito gli header ma nel primo codice che mi hai dato senza gli echo.

ancora grazie
 
guarda ti posto il codice come lo sto usando per fare le prove:

<?php
$adesso=date("H:i");
if($adesso >= "22:00"){
header('refresh:0;url=../cartella/paginachiusura.aspx");
}else{
if($adesso <= "10:00"){
header('refresh:0;url=../cartella/paginachiusura.aspx");
}else{
header('refresh:0;url=../cartella/paginalogin.aspx");
}
}
?>

la riga 7 per come è impostato nel mio web editor è il secondo header.

ancora grazie.
 
ciao
per aprire e chiudere una stringa devi usare o solo l'apice ' o solo i doppi apici "

PHP:
<?php 
$adesso=date("H:i");//qui come vedi i doppi apici
if($adesso >= "22:00"){
header('refresh:0;url=../cartella/paginachiusura.aspx');//qui solo i singoli
}else{ 
if($adesso <= "10:00"){
header('refresh:0;url=../cartella/paginachiusura.aspx');
}else{
header('refresh:0;url=../cartella/paginalogin.aspx');
} 
} 
?>

la riga con l'header avresti potuto scriverla anche così
header("refresh:0;url=../cartella/paginachiusura.aspx");
cioè con gli apici doppi, però sempre chiudere con quelli con cui apri.

p.s.
quando scrivi del codice racchiudilo tra gli appositi tag (seconda riga della formattazione post ultime tre icone nall'ordine code , html, php nella stessa maniera come daresti es. il bold) facilita la lettura
 
fantastico!!! sei un grande.. sono 15 giorni che cerco di risolvere il problema.. meno male che ho trovato te... grazie davvero..
ora mi manca l'ultimo tassello.. ovvero fare ripetere l'istruzione della pagina php anche alla pagina di login senza cliccare su nessun link per evitare che chi digita l'indirizzo diretto sulla barra anzichè passare dal link della pagina X possa accedere ugualmente.
ti dico subito che non può essere <body onload ecc perchè in quella pagina c'è ne è già uno init() che serve per effettuare il login..

grazie ancora!
 
ciao
da quello che vedo la pag di log è asp, se fosse php saprei dirtelo, ma asp non lo conosco, prova a postare la domanda nella sez. asp
 
ok grazie, faccio prima un paio di prove io... grazie infinite e anciora complimenti.. sei proprio in gamba.

ciao e auguri di buone feste.
 
ciao, ti chiedo scusa se ti disturbo anche oggi, ma ho bisogno ancora di un aiutino:
è possibile nel codice che ieri ha funzionato bene fare in modo che al terzo header (quello dalle 10.01 alle 21.59) esca dalla funzione e ritorni alla pagina precedente senza creare un loop?
praticamente, per proteggere la pagina di login dall'accesso direttamente dalla barra degli indirizzi ho messo in quella pagina un redirect ad una copia perfetta della pagina php con quel codice, ma va in loop.
cosa mi consigli di fare?

grazie 1000.
 
ciao
nessun disturbo.
se hai un minuto di pazienza nel pomeriggio ti posto (però in php) quello che faccio io in modo da evitare l'accesso tramite barra degli indirizzi.
comunque se metti nella pag di log il reindirzamento alla pag con lo script che ti ho postato è logico che ti vada in loop, devi reindirizzare (es.) alla index, o altra pagina che non abbio il reindirizzamento automatico alla log
 

Discussioni simili