Newsgroup: it.comp.www.php
Titolo: vi ricordate il problema della variabile passata con $POST

Beh è assurdo mi sta facendo impazzire. Ho eliminato tutto il codice che non
serve per cercare di circoscrivere il problema ma niente, niente, niente da
fare...
Praticamente funziona tutto quanto tranne alcune volte. Vi posto il codice
delle due pagine (quello "depurato") nella speranza che qualcuno di voi mi
possa aiutare...
Pagina1.php:
<?php
session_start();
?>
<html>
<head>
       <title>pagina1</title>
<script type="text/javascript">
var Stop=150; ferma=false;
var val;
var linka;
function Parti()
         {
         timer=setInterval('Stop--;CountDown();',100);
}
function CountDown()
         {
         if (Stop==0 || ferma==true)
            {
               switch (val)
               {
               case 1:
               NomeLink = document.links[0].name+"||1";
               break;
               case 2:
               NomeLink = document.links[1].name+"||2";
               break;
               case 3:
               NomeLink = document.links[2].name+"||3";
               break;
               case 4:
               NomeLink = document.links[3].name+"||4";
               break;
               case 5:
               NomeLink = document.links[4].name+"||5";
               break;
            }
   document.frm.stop.value = Stop;
   document.frm.variabili.value = NomeLink;
   document.forms['frm'].submit();
   clearInterval(timer);
   }
         document.all.conto.innerText=Stop;
}
</script>
</head>
<body onload="Parti()">
<?php
echo "<br> <p align=center>$row[Domanda] <br> <br> <br>
      <a name='Link1' onclick='javascript:ferma=true; val=1'
href='pagina2.php'>Link1</a><br> <br>
      <a name='Link2' onclick='javascript:ferma=true; val=2'
href='pagina2.php'>Link2</a><br> <br>
      <a name='Link3' onclick='javascript:ferma=true; val=3'
href='pagina2.php'>Link3</a><br> <br>
      <a name='Link4' onclick='javascript:ferma=true; val=4'
href='pagina2.php'>Link4</a><br> <br>
      <a name='Link5' onclick='javascript:ferma=true; val=5'
href='pagina2.php'>Link5</a><br> </p>
      <form action='pagina2.php' method='POST' name='frm'>
      <input type='hidden' name='stop' />
      <input type='hidden' name='variabili' />
      </form>";
?>
<p align="center">Tempo rimasto <span id="conto"
style="background-color:red"></span>&nbsp;</p>
</body>
</html>
pagina2.php
<?php
session_start();
?>
<html>
<head>
       <title>pagina2</title>
</head>
<body>
<?php
$Stringa = $_POST["variabili"];
list ($variabile1, $variabile2) = split('\|\|', $Stringa, 2);
echo "Variabile1 = $variabile1, <br>Variabile2 = $variabile2 <br>";
echo "<a href='pagina1.php'>Torna indietro</a>";
?>
</body>
</html>
Il funzionamento delle due pagine è abbastanza banale nella prima pagina ho
5 link ognuno con un name diverso. A seconda di quale link clicco (entro un
certo tempo) devo passare alla pagina2 il name ed una variabile con il
metodo POST e nella seconda pagina vado a leggere questi valori. Tutto ok
tranne qualche fottutissima volta. Secondo me il problema dovrebbe essere
sui tempi... ho come l'impressione che se clicco in un istante particolare
del ciclo qualcosa va storto, ma non riesco veramente a venirne a capo.

 qualcuno di voi mi possa aiutare...
Tanto per iniziare:
L'ERROR REPORTING!!!!!
Pagina1.php:
Notice: Undefined variable: row in
C:\inetpub\www\untitled\TMPn4s1s6yh6.php on line 49
Pagina2.php un evento casuale:
Notice: Undefined index: variabili in
C:\inetpub\www\untitled\pagina2.php on line 10
Notice: Undefined offset: 1 in C:\inetpub\www\untitled\pagina2.php on
line 11
Poi per continuare:
<a name='Link1' onclick='javascript:ferma=true; val=1'
negli venti non serve scriver javascript, oltre a questo l'errore
avviene semplicemente perche' il codice nello switch viene eseguito
prima di aver impostato val. Risolvi tutto con un codice del tipo:
<a name='Link1' onclick='val=1; ferma=true'
etc. etc.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/x
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y

Gli errori che mi dici tu io non li vedo, probabilmente dipende da come è
settato il mio PHP??? Se è così non oso immaginare cosa accadrà nel
momento in cui metto su un altro server le pagine php. Per quanto riguarda
l'errore tu dici che dipende dal fatto che dipende dal fatto che il codice
nello switch viene eseguito prima di aver impostato val. Sono d'accordo
però perchè alcune volte funzione e altre no.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 come è settato il mio PHP???
http://www.php.net/error_reporting
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z


Ho provato con le modifiche ma non funziona ancora adesso:
L'errore che mi trovo sulla pagina1.php l'ho risolto (era semplicemente una
variabile che usavo nello script originale che ho dimenticato di cancellare,
insomma niente di grave)
Gli errori che mi compaiono nella pagina2.php, e cioè:
Notice: Undefined index: variabili in c:\programmi\apache
group\apache\test\prova\pagina2.php on line 10
Notice: Undefined offset: 1 in c:\programmi\apache
group\apache\test\prova\pagina2.php on line 11
sono proprio gli errori che sto cercando di risolvere. Il problema che
questo errore avviene solo alcune volte, non sempre, e quindi è complicato
capire perchè accade. Adesso sto provando a scrivere il link presenti nella
prima pagina nel modo seguente:
<a name='Link1' onclick='val=1; ferma=true'
href='#pagina2.php'>Link1</a><br> <br>
<a name='Link2' onclick='val=2; ferma=true'
href='#pagina2.php'>Link2</a><br> <br>
<a name='Link3' onclick='val=3; ferma=true'
href='#pagina2.php'>Link3</a><br> <br>
<a name='Link4' onclick='val=4; ferma=true'
href='#pagina2.php'>Link4</a><br> <br>
<a name='Link5' onclick='val=5; ferma=true'
href='#pagina2.php'>Link5</a><br> </p>
<form action='pagina2.php' method='POST' name='frm'>
<input type='hidden' name='stop' />
<input type='hidden' name='variabili' />
</form>";
Creando un link fittizio  (href='#pagina2.php') che mi permette solamente di
impostare le variabili con il metodo onclick=''. In questo modo sono sicuro
che le due variabili saranno inviate dalla riga <form action='pagina2.php'
method='POST' name='frm'> e non dal link che in precedenza era scritto:
<a name='Link1' onclick='val=1; ferma=true' href='pagina2.php'>Link1</a><br>
<br>
Credo che in questo modo ho risolto ma purtroppo prima di cantare vittoria
voglio esserne sicuro provandolo almeno un milione di volte :-)) Secondo te
la mia ipotesi è giusta?? Posso pensare di aver risolto??
Nel frattempo grazie 1000 per i consigli che mi hai fornito.
P.S. Una domanda che non c'entra niente: se ho una variabile "indefinita"
come posso visualizzarla con echo "$variabile" php mi ritorna il seguente
errore:
Warning: Wrong datatype for second argument in call to in_array in
c:\programmi\apache group\apache\test\prova\pagina.php on line 91
Questo errore è causato dal fatto che la prima volta che vado a leggere
questa variabile essa è vuota e infatti le volte successive funziona tutto
bene...

 "$variabile" php mi ritorna il seguente errore:
if (!isset ($variabile)) 
{ $variabile = ""; } 
// oppure $variabile = "valore di default";
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
