Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Php: redirect

Hai problemi con i file Zip, vuoi formattare l'HD, non sai come funziona FireFox? O magari ti serve proprio quel programmino di cui non ricordi il nome! Ecco il forum dove poter risolvere i tuoi problemi.

Moderatori: Dylan666, hydra, gahan

Php: redirect

Postdi *~Hayabusa~* » 25/08/03 09:40

Salve gente!
Finete le ferie ( :aaah ) mi sono messo a lavorare in php; ho un problema per il redirect:
vorrei creare uno script che dice all'utente che sta per essere dirottato su un'altra pagina e poi ce lo manda, ma se invio anche un solo spazio prima del redirect, il parser (giustamente) mi dice che non può "add header information".

Adesso mi chiedo come funzionano gli script che ti dicono "redirecting..." e poi parte il redirect? i parametri di Header() sono solo "location", o si può aggiungere qualcosa di diverso?

Grazie in anticipo.

ciao ciao
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Sponsor
 

Postdi Triumph Of Steel » 25/08/03 10:53

mhmh potresti usare o il javascript, o il semplice HTML

HTML
Codice: Seleziona tutto
<META HTTP-EQUIV=Refresh CONTENT="10; URL=pagina.htm">

dove CONTENT sono i secondo di attesa

Javascript
Codice: Seleziona tutto
setTimeOut(GoTo();10000);
function GoTo() {
 location.href='pagina.htm';
}

I secondi di attesa, sono nel setTimeOut (10.000 sono 10 secondi)
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi *~Hayabusa~* » 25/08/03 11:21

Grazie ToS per la risposta ma non ho capito bene..non capisco javascript :oops: .

mettiamo che il codice sia così; in php faccio:
<?php
....[verifiche/condizioni precedenti]..
if (empty($var)) { header... qui dovrei chiamare il codice java invece di header} else ... ?>

Dove dovrei piazzare il codice java?

Ieri avevo provato a usare sleep() (chiamata echo "loading.."; ) e usleep() ma a causa dell'output non funziona l'header..

:!: Avrei un'altra domanda:
usando ereg_replace() e preg_match() o altro (ditemi voi) come faccio a far cancellare da una stringa caratteri speciali tipo ~ " * / \ @ :?:
se setto i caratteri in un array (array(~, \", \/, \\, @) mi da sempre errore..
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Postdi Triumph Of Steel » 25/08/03 11:29

Codice: Seleziona tutto
<?
....[verifiche/condizioni precedenti]..
if (empty($var)) {
  echo "<meta refresh ecc..";
}

// oppure
if (empty($var)) {
  echo "<script>codice JS che ti ho dato prima</script>";
}

// oppure ancora
// metti la funziona javascript (GoTo();) in un include dove hai altre funzioni javascript, e la richiami soltanto
if (empty($var)) {
  echo "<script>setTimeOut('GotTo();',10000);</script>";
}
// volendo puoi aggiungere la variabile 'url' alla funzione GoTo, per poterla richiamare anche in altre occasioni e dove punta ad una diversa pagina...


per quanto riguarda togliere caratteri speciali...
se devi usare ereg_replace, non credo ti serva l'array, quello che hai nell'array lo metti direttamente nella funzione..
controlla su PHP.Net la sintassi corretta..
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi *~Hayabusa~* » 25/08/03 15:50

Ancora io..
scusa l'insistenza ma proprio non va..

voglio usare il codice else { <script>...</script> } perchè è quello che mi serve maggiormente se voglio continuare ad usare java..però..vado ad ad aprire la pag e il parser mi da errore sul rigo dove comincia lo script :evil:
Devo capire come fargli accettare il codice..
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Postdi Triumph Of Steel » 25/08/03 15:58

allora...
ricapitoliamo :P

Questo codice lo metti in una pagina, che chiami ad esempio
funcJS.php
Codice: Seleziona tutto
<script language="Javascript">
function GoTo(url) {
 location.href=url;
}
</script>


Nella tua pagina, inserisci
Codice: Seleziona tutto
include("funcJS.php");


e in più, fai anche il richiamo del Javascript, quando ti serve
Codice: Seleziona tutto
$url = "pagina.htm";
If ($vars) {
 echo "<script>setTimeOut('GoTo(\"".$url."\");',10000);</script>";
}


eventualmente, controlla la sintassi del setTimeOut, xchè magari sbaglio io.. sto andando a memoria...
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi *~Hayabusa~* » 25/08/03 16:17

AHHHH!!!
Codice: Seleziona tutto
$url = "pagina.htm";
If ($vars) {
/**echo**/ "<script>setTimeOut('GoTo(\"".$url."\");',10000);</script>";
}

Sarà mica perchè omettevo echo?credo di si..perchè mettendo echo vado a mettere lo script nella pag html..Grazie Tos :D

Non per sembrare insistente..ho trovato dei codici javascript che necessitano di essere inseriti si tra i tag <head> e </head> che poi tra <html> e </html> ..in questo caso basta che scriva la parte di codice che va in head in jshead.php e poi faccio include (facendo già una pag php ibrida)?

Ancora grazie tante ;) !
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Postdi Triumph Of Steel » 25/08/03 16:32

si.. praticamente dovrebbe venirti una cosa del genere

se usi pagina ibrida
Codice: Seleziona tutto
<html>
<head>
<title>Titolo pagina</title>
<? include("funcJS.php"); ?>
</head>
<body ecc.. ec..>
<?
If ($vars) {
  echo ecc.. ecc. (già, l'echo  ;) )
}
?>
resto dell'html
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi *~Hayabusa~* » 25/08/03 16:50

Grazie ancora una volta ToS!

Stasera mi ci metto (apache e php li ho installati a casa in locale) e domani ti faccio sapere..

ciao ciao
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Postdi rebol » 25/08/03 17:06

Secondo me per un problema così ti conviene usare l'HTTP, come suggerito da ToS. Così eviti qualsiasi tipo di problema realtivo al javascript (capita raramente, ma se il browser non lo sopporta? Oppure lo ha disattivato? Con HTTP invece funzionerebbe).

Ciao
HITOTSU JINKAKU KANSEI NI TSUTOMURU KOTO
HITOTSU MAKOTO NO MICHI O MAMORU KOTO
HITOTSU DORYOKU NO SEISHIN O YASHINAU KOTO
HITOTSU REIGI O OMONZURU KOTO
HITOTSU KEKKI NO YU O IMASHIMURU KOTO
rebol
Utente Senior
 
Post: 129
Iscritto il: 11/09/02 14:12
Località: In the middle of nowhere

Postdi Triumph Of Steel » 25/08/03 18:06

mhm credo che anche con l'HTML potrebbe (raro, molto raro) non funzionare... per lo stesso motivo dei Javascript...

in ogni caso, a livello di semplicità e di sicurezza che funzioni, in effetti è meglio l'HTTP-REFRESH (tanto Hayabusa, puoi sempre mettergli ancheli la variabile PHP, facendo sempre un echo "";)
Codice: Seleziona tutto
echo "<META HTTP-EQUIV=Refresh CONTENT=\"10; URL=".$Pagina."\"> ";
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi rebol » 25/08/03 18:33

Interessante, ToS, in quali casi potrebbe non funzionare?
HITOTSU JINKAKU KANSEI NI TSUTOMURU KOTO
HITOTSU MAKOTO NO MICHI O MAMORU KOTO
HITOTSU DORYOKU NO SEISHIN O YASHINAU KOTO
HITOTSU REIGI O OMONZURU KOTO
HITOTSU KEKKI NO YU O IMASHIMURU KOTO
rebol
Utente Senior
 
Post: 129
Iscritto il: 11/09/02 14:12
Località: In the middle of nowhere

Postdi *~Hayabusa~* » 25/08/03 18:39

Credo che ormai javascript lo abbiano tutti e che sia sempre abilitato..
la maggior parte delle persone usano iex dove se non lo disabiliti usi javascript..o sbaglio?

La funzione html alla fine equivale a quella header che scrivo in php..giusto? Se si, che senso ha utilizzarla?

Comunque ora (se funziona!!) ho risolto + di un problema..primo: ho trovato uno script che mostra anche un avanzatore di caricamento prima del redirect ed è in java, e adesso posso eseguirlo. Secondo: posso aggiungere script tipo orologi o effetti al muose o altri..

Oggi ho imparato molto..

Grazie.

ciao ciao
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..

Postdi Triumph Of Steel » 25/08/03 20:48

rebol ha scritto:Interessante, ToS, in quali casi potrebbe non funzionare?


mai sottovalutare i Macintosh!
Avatar utente
Triumph Of Steel
Moderatore
 
Post: 7852
Iscritto il: 22/08/01 01:00

Postdi *~Hayabusa~* » 26/08/03 10:44

Salve!

Raga mi dispiace annunciarvi che purtroppo non vi darò più fastidio su quest'argomento..in altre parole: problema risolto!! 8)

Ora rimane il problema della sostituzione dei caratteri speciali; devo cancellare tutti i caratteri non validi come nomi di file ma se dico di sostituire "/" con "" il parser dice che "" non è un argomento valido (piu o meno).. Idee?

Grazie in anticipo! ;)

ciao ciao
..ed e' cibo per la mente,
acqua dalla sorgente,
luce fosforescente
laddove il buio e' costante ..
*~Hayabusa~*
Hardware Admin
 
Post: 1386
Iscritto il: 12/05/02 22:44
Località: Davanti al monitor..


Torna a Software Windows


Topic correlati a "Php: redirect":


Chi c’è in linea

Visitano il forum: tigre16 e 7 ospiti