PHP - Non interpreta codice

miagy

Utente Attivo
2 Nov 2014
83
1
8
Buonasera, ho un problema decennale che non riesco a comprendere.
Ho un file, chiamato "refresh.php", che non mi bypassa il pezzo al server e, di conseguenza, non me lo interpreta.
Richiamando infatti una tabella:

PHP:
$MySql = "SELECT * FROM Skill WHERE IDSkill = .$IDSkill.";
$Result = mysql_query($MySql);

E poi aggiungendo questo:

PHP:
[...]
                                $n .="<a href='pag2.php?ID=<?php echo $IDSkill; ?>'>leggi qui la descrizione</a></td></tr></table>";

Il link è letteralmente:

PHP:
pag2.php?ID=<?php echo ; ?>

Come mai? :confused:

Nel dubbio, posto il codice nella sua interezza:

PHP:
<? session_start();
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');

function Tempo($tim) {
  return(strftime("%H:%M", strtotime($tim)));
}

If (strtoupper($op) == 'ESCI') {header('Location: logout.php', false);};

$MySql2 = "SELECT * FROM Skill WHERE IDSkill = .$IDSkill.";
$Result2 = mysql_query($MySql2);
$result_Skill =  mysql_query($MySql2);
$IDSkill = mysql_fetch_array($result_Skill);

include('inc/controlloesilio.php');
?>
<HTML><HEAD><SCRIPT language="JavaScript">
function doRefresh() {
// refresh della pagina corrente
document.location.reload();
}
// imposto il timeout per il prossimo refresh
// espresso in millisecondi (1000 = 1 secondo)
window.setTimeout("doRefresh();" , 15000);
</SCRIPT><link rel="stylesheet" href="mainchat.css" TYPE="text/css"></HEAD><body><?

$MySql = "SELECT * FROM Chat WHERE (Stanza = '".pars($Stanza)."' OR Tipo = 'G') AND ID > ".$LastTime." AND DATE_ADD(Ora, INTERVAL 180 MINUTE)  >= NOW()";
$MySql .= " ORDER BY ID DESC LIMIT 0, 20";
$Result = mysql_query($MySql);

if ($LastTime == 0) {
        $Testata .= "<HEAD><link rel=\"stylesheet\" href=\"mainchat.css\" TYPE=\"text/css\"></HEAD><BODY>";
}
while ($rs = mysql_fetch_array($Result)) {

    if ($rs['ID'] > $LastTime) {
            $_SESSION['LastTime'] = $rs['ID'];
            $LastTime = $_SESSION['LastTime'];
            };
        #{
                switch ($rs['Tipo']) {
                    
                                                 case 'T': #Abilità
                                $n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']."";
                                $n .="<a href='pag2.php?ID=<?php echo $IDSkill; ?>'>leggi qui la descrizione</a></FONT></td></tr></table>";
                               break;
                       
		};
    	
        $newchat = $n.$newchat;
        $n = '';
        
    #};

}
$newchat = $Testata.$newchat;
$newchat = str_replace("\\", "\\\\", $newchat);
$newchat = str_replace("'", "\\'", $newchat);

?>

<script>
parent.chattesto.document.write('<?= $newchat ?>');
var h = 0;
try {h = parent.chattesto.document.body.offsetHeight + 1000;} catch(e) {h = 0};
parent.chattesto.scroll (0, h);
</script>

<SCRIPT language="JavaScript">
// verifico il refresh della pagina
var msg = "Questa pagina è stata letta" +
  "<BR><B>" + Date() + "</B>";
document.write(msg);
</SCRIPT>
</body></html>
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
C'è un errore di copiatura, scusate:

PHP:
$MySql = "SELECT * FROM Skill WHERE IDSkill = .$IDSkill."; 
$Result = mysql_query($MySql);
 

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Perché apri tag php all'interno di php :D:D:D:D:D

Sostituisci con
PHP:
[...]
$n .="leggi qui la descrizione";

Inviato con Tapatalk 2 da Android
 
Ultima modifica:

miagy

Utente Attivo
2 Nov 2014
83
1
8
Nel senso, tu indendi di fare una cosa tipo:

PHP:
$n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']." <a href='pag2.php?ID=<?php echo $IDSkill; ?>'>"; 
                                $n .="leggi qui la descrizione";
$n. = "</a></FONT></td></tr></table>";

Perché in questo caso non mi legge nulla.
Ho provato anche con:

PHP:
$MySql = "SELECT * FROM Skill WHERE IDSkill = '$IDSkill' ";

[...]

$n .="<a href='pag2.php?ID=$IDSkill'>leggi qui la descrizione</a></FONT></td></tr></table>";

Ma nulla.
Il risultato che mi da è:

HTML:
pag2.php?ID=

Ho provato persino a stamparlo con un echo, ma nulla. Il risultato è sempre a vuoto.
(Scusate, non trovo il tasto modifica ahahahahha)
 
Ultima modifica:

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
PHP:
$n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']." <a href='pag2.php?ID=<?php echo $IDSkill; ?>'>"; 
                                $n .="leggi qui la descrizione";
$n. = "</a></FONT></td></tr></table>";

Tu hai inserito <?php echo $IDSkill; ?> all'interno di codice già php. Hai inserito il tag php dentro già codice php. Sostituendo con questo funziona se la variabile $IDSkill contiene qualcosa ovviamente:

PHP:
$n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']." <a href='pag2.php?ID=$IDSkill'>"; 
                                $n .="leggi qui la descrizione";
$n. = "</a></FONT></td></tr></table>";


Inviato con Tapatalk 2 da Android
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
Tu hai inserito <?php echo $IDSkill; ?> all'interno di codice già php. Hai inserito il tag php dentro già codice php. Sostituendo con questo funziona se la variabile $IDSkill contiene qualcosa ovviamente:

PHP:
$n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']." <a rel='nofollow' href='pag2.php?ID=$IDSkill'>"; 
                                $n .="leggi qui la descrizione";
$n. = "</a></FONT></td></tr></table>";


Inviato con Tapatalk 2 da Android

Sì, lì era per vedere se buttandoci un echo anche lì mi dava un risultato ><
Nel modo in cui mi hai consigliato, non mi legge nulla, nulla, nulla.
Maledizione. E' una tortura :gun:

E ho testato anche con:

PHP:
$n = "<table><tr><td align=justify><FONT FACE=Verdana SIZE=1><FONT COLOR='white'>".$rs['Mittente']."</FONT> utilizza <FONT COLOR='#00CC66'>".$rs['Locazione']."</FONT> di ".$rs['Testo']."";
$n .="<a href=\"pag2.php?ID=$IDSkill\">"; 
                                $n .= "leggi qui la descrizione";
$n .= "</a></FONT></td></tr></table>";  
break;

Niente. Continua a non valorizzarvi il campi IDSkill (che esiste) :hammer:
 
Ultima modifica:

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Se non legge nulla significa che la variabile non contiene niente
Per verificare ciò inserisci var_dump($IDSkill); e guarda il risultato

Inviato con Tapatalk 2 da Android
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
No no, te lo assicuro.
Esiste!

E nulla, inserendo var_dump($IDSkill);, il risultato è pressoché identico.
Voglio morire y.y

$MySql = "SELECT * FROM Skill WHERE IDSkill = '$IDSkill' ";
$Result = mysql_query($MySql);
var_dump($IDSkill);
 
Ultima modifica:

Night Assassin

Utente Attivo
16 Mar 2013
200
0
0
Per verificare ciò inserisci var_dump($IDSkill); e guarda il risultato

Fai comunque questa verifica e scrivimi il risultato



Inviato con Tapatalk 2 da Android
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
Perfetto, ancora nulla :dipser:
Allora, partiamo dalla base. La pagina refresh.php è una messa a stampa di una frase che viene creata dall'utente. L'utente sceglie cosa scrivere (o in questo caso che SKILL inviare) mediante un'altra pagina chiamata input.php.
Facendoti uno stamp, il risultato è questo:

http://i62.tinypic.com/308yuqd.png

Nella pagina INPUT.PHP, la parte relativa a SKILL (che effettivamente vengono stampate, sono le scritte verdi) sono queste:

PHP:
[...]

elseif ($ogg == "2") {
            $Locazione = $_POST['Lcz'];
$Lcz = $Locazione; } elseif ($ogg == "3") {
            $Dest = $_POST['Lcz'];
$Lcz = $Locazione; }  else {

 $Locazione = stripslashes(trim($Locazione));
$Lcz = $Locazione;
                     $LczDefault = $Lcz;
}

if ($Msg != "") {

[...]

if ($ogg == "2") {
                $Msg = htmlspecialchars($Msg);
                $Tipo = "T";
        }

E questa:


PHP:
<? } elseif ($mod == "ab") {

  ?>

<form name=invio action="input.php?ogg=2" method=POST>
<table cellpadding=0 cellspacing=1 border=0 align=center>
<tr><td align=left>Skill</td><td></td><td></td></tr>
<tr>
<td valign=middle cellspacing=2>
<select name="Lcz">
<?


$MySql = "SELECT * FROM ClgPersonaggioSkill LEFT JOIN Skill ON Skill.IDSkill = ClgPersonaggioSkill.IDSkill WHERE ClgPersonaggioSkill.Nome = '$Login'";
    #echo $MySql;

    $Result = mysql_query($MySql);
    while ($rs = mysql_fetch_array($Result)) {

?>

<option><?=$rs['Descrizione']?></option>

<?
 } ?>

</select>
&nbsp;&nbsp;&nbsp;</td>
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
Ovviamente il tutto viene stampato con:

PHP:
        $MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
        $MySql .= "VALUES ('".addslashes($Stanza)."', 'System Op', '".addslashes($Login)."', NOW(), '".$Msg."', '$Sesso_S', '$ImgGilda', '$DescGilda', '$ImgRazza_S', '$DescRazza_S', 'S')";
        mysql_query($MySql);
}
 

miagy

Utente Attivo
2 Nov 2014
83
1
8
Ok, ho provato a fare un'altra prova, questa volta leggermente diversa.
Ho creato un'altra pagina affinché possa fare la query ed è uscito un risultato abbastanza curioso:

PHP:
<? 

[...]

$IDSkill = $_POST['Abi'];

?>

<form name=invio action="ab.php" method=POST>
[...]

<select name="Abi">
<?


$MySql = "SELECT * FROM ClgPersonaggioSkill LEFT JOIN Skill ON Skill.IDSkill = ClgPersonaggioSkill.IDSkill WHERE ClgPersonaggioSkill.Nome = '$Login'";
    #echo $MySql;
       $result=mysql_query($MySql) or die ("Non hai skill da usare");

while($rs=mysql_fetch_array($result)){
?>

<OPTION name="Abi"><?=$rs['Descrizione']?></OPTION>

<?
    }
    $rs->close;
?>

</select>

[...]

<input name=invio type=submit value="Usa" class=ares></td>
</form>

<?

if ($invio == true) {

$query = "SELECT IDSkill FROM Skill WHERE IDSkill = '$IDSkill'";
$risulto = mysql_query($query);

$MySql = "INSERT INTO Chat (Stanza, Mittente, Destinatario, Ora, Testo, Sesso, ImgGilda, DescGilda, ImgRazza, DescRazza, Tipo)";
$MySql .= "VALUES ('".addslashes($Stanza)."', '$Login', '$Login', NOW(), '<font color=\"#0000FF\"><strong>prende";
$MySql .= "<a rel='nofollow' href=\"descab.php?Abi=$IDSkill\">";  
$MySql .= "$Abi</strong>"; 
$MySql .= "</a>";
$MySql .= "</font>', '$Sesso_S', '$ImgGilda', '$DescGilda', '$ImgRazza_S', '$DescRazza_S', 'A')";
mysql_query($MySql);
}
?>

Ho notato che se mettessi $IDSkill = $_POST['Abi']; la query verrebbe parzialmente letta (Letta NON con l'ID ma con la Descrizione). > stamp > http://i58.tinypic.com/vn2wzn.png
L'ID, tuttavia, non ne vuole sapere
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
M Xampp 1.7.3 non interpreta lo script php abbreviato PHP 2
M Problemi con apache non interpreta script php Apache 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
P Data scraping in PHP non funziona PHP 4
L php mysql non salva solo id PHP 21
A php metodo post jquery non da mai errore jQuery 4
M Guestbook - non funziona dopo upgrade di PHP PHP 5
Valerio93 [PHP] non capisco come mai mi da la data NULL PHP 3
S [PHP] non prende la query PHP 0
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
Leshabituelles Non riesco ad aggiornare PHP PHP 0
Max 1 [PHP] Script che funziona in locale e non online PHP 16
R [PHP] pagina inclusa che non viene visualizzata PHP 2
Punix [PHP] query non valida PHP 1
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
M [PHP] header (location..) non funzionante dopo login PHP 3
B [PHP] Valore variabile non riconosciuto PHP 1
M [PHP] Selezionare immagini directory non presenti in db PHP 11
P [PHP] $_GET non preleva variabile nell’URL PHP 4
R mojave php non interpretato PHP 11
M Non corretta lettura del file php.ini della sezione CLI PHP 3
P [PHP] Input Type="date" non va correttamente con Apple PHP 2
Cosina [PHP] Preservare i campi del form solo se l'invio non ha successo PHP 5
S [PHP] Selezionare i campi non in comune con le altre colonne della tabella PHP 4
Monital [PHP] Insert into non inserisce tutti i dati PHP 1
T interpretare uno script php non fatto da me... PHP 3
M PHP - Funzione non e scrive il risultato PHP 3
L [PHP] case then e campo non riconosciuto PHP 0
T [PHP] aiuto....Fatal error: Uncaught Error:non riesco a capire PHP 1
T [PHP] ...Parse error che non c'è... PHP 7
M [PHP] Non si connette PHP 7
W [PHP] Non esegue il parsing su un dato sito e negli altri si... PHP 0
A Php mail non invia due mail di seguito PHP 3
O PHP 5.6 non riesco ad abilitare TSL 1.2 PHP 1
L [PHP] Nuovo server, query non funzionano PHP 3
M [PHP] Escludere campi non valorizzati PHP 22
Tommy03 Perchè non si apre una pagina PHP PHP 4
F [PHP] if(isset($_POST['Invia'])) non mi riconosce le variabili PHP 3
D [PHP] Update non trasferisce condizione where PHP 1
V Creare tabella mysql con php non funziona PHP 1
V [PHP] Perché non funziona ? PHP 1
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
C [PHP] non trovo l'errore? PHP 3
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
M [css][php] codice php esterno non vede il css PHP 6
M [PHP] Non calcola l'ultimo record inserito PHP 13
M [PHP] Problema IF non riconosciuta PHP 2

Discussioni simili