Problema sui collegamenti ipertestuali
Problema sui collegamenti ipertestuali postato il 04/02/2010 21:06:00 nel forum programmazione, open source e hosting e modificato da stefano_il_patetico il 04/02/2010 21:11:47
Salve a tutti,
ho un problema, ma visto che è difficile spiegarlo per me "tecnicamente" mi appellerò ad un esempio pratico.
Esistono (in città virtuale gpl) due file per la visualizzazione delle schede.
vis_scheda e vis_borsa (pagina personale dell'utente)
vis_scheda3 e vis_borsa3 (pagina che viene visualizzata degli altri utenti).
Ciascuna di queste pagine contiente (giustamente) dei richiami al db attraverso php. Io ho fatto in modo che la pagina principale della scheda avesse solo l'avatar e dei link (in js) che linkavano:
1) ai dati generici
2) ai dati specifici
3) alla storia
Ho, in altre parole, disassemblato i file originali e li ho smistati ora dei dati, ora degli altri nei rispettivi link.
Ora, in vis_scheda e vis_borsa...(ossia nei file personali del giocatore)...è tutto ok...Il problema è che (inspiegabilmente) le pagine relative ai dati generici e ai dati specifici (appartenenti a vis_scheda3) mi danno la pagina bianca.
Ora ho meticolosamente controllato ogni passaggio...e...mi sembra che siano proprio i richiami php-sql (di cui sopra) a far sorgere il problema.
Sapreste darmi un suggerimento?
Utilizzo, per il momento, altervista.
PS:Spero di essere stato chiaro nella spiegazione.
PPS: Ah, prima che qualcuno lo suggerisca, ho immesso per curiosità il vis_scheda nel link che mi da la pagina bianca e funziona..Quindi non è un problema di link.
Pagine → 1 2
04/02/2010 22:24:12
stefano_il_patetico ha scritto:
Ora ho meticolosamente controllato ogni passaggio...e...mi sembra che siano proprio i richiami php-sql (di cui sopra) a far sorgere il problema.
hai provato ad inserire qualche echo per debuggare? tipo un echo della query che richiami o per le principali variabili coinvolte?
semmai postaci i risultati, così da avere un'idea più chiara del problema.
04/02/2010 22:46:16 e modificato da la kaiah il 04/02/2010 23:01:09
Questo è uno relativo ai dati specifici:
<?PHP
session_start();
/*#################################################
Città virtuale GPL #
#
Non rimuovere questo commento, grazie. #
#
Programmatore: (Traimo) Vladimir Inconis #
E-mail: traimo at weaponmaster dot org #
E-mail: traimo at laforzaoscura dot com #
#
Programmatore: (Prospero) Luca #
E-mail: prosperocolonna_lot at hotmail dot com #
#
http://www.weaponmaster.org #
http://www.laforzaoscura.com #
http://www.steamcity.laforzaoscura.com #
*/#################################################
include "../controlla_login.php";
include "../config.inc.php";
$UTENTE=$_GET['UTENTE'];
?>
<html>
<head>
<link rel="stylesheet" href="../stile.css" type="text/css">
<title>Scheda del personaggio</title>
<style type="text/css">
#link1 { color:#c7ac9f ; font-family:Verdana; font-size:13px; font-weight:bold;}
#link2 { color:#9fc0c7 ; font-family:Verdana; font-size:13px; font-weight:bold;}
#link3 { color:#c7ac9f ; font-family:Verdana; font-size:16px; font-weight:bold;} </style>
<script type="text/javascript" src="/fade/moo1.2.js"></script>
<script type="text/javascript">
window.addEvent('domready',function() {
$each($$('.fade'), function(el) {
var original = el.getStyle('color');
var morph = new Fx.Morph(el,{ 'duration':'300', 'link':'cancel' });
el.addEvents({
'mouseenter' : function() { morph.start({ 'color':'#858585' }) },
'mouseleave' : function() { morph.start({ 'color': original }) }
});
});
});
</script>
<script language="JavaScript">
function apri(theURL,winName,features) {
window.open(theURL,winName,features);
}
</script>
</head>
<body>
</head>
<body leftmargin="5" topmargin="10">
<?PHP
$sql = "SELECT ESPERIENZA,SALUTE,DENARO,STORIA,LAST_LAVORO FROM USERS WHERE USERNAME='$_SESSION[USERNAME]'";
$query = mysql_query ($sql, $connessione) or die(mysql_error());
while ($row=mysql_fetch_array($query)){
$SC_ESPERIENZA=$row["ESPERIENZA"];
$SC_SALUTE=$row["SALUTE"];
$SC_DENARO=$row["DENARO"];
$SC_STORIA=$row["STORIA"];
$SC_LAST_LAVORO=$row["LAST_LAVORO"];
?>
<p align=center>
<html>
<head>
</head>
<body>
<table width=80% align="middle" border="2" bordercolor="7e7e7e" cellspacing=5 cellpadding=0 bgcolor="#c7ac9f">
<tr bgcolor="">
<td height=20 align=center valign=top bgcolor="7a6e62"><div id="link3"><b>I dati specifici di <?=$RD_USERNAME?></b></div></td>
</tr>
</table>
<p align=center><table border="0" bordercolor="black" width="90%"><tr>
<td align="center" class="fade" id="link1"><b>Il taccuino personale di <?=$RD_USERNAME?></b></TD>
</tr>
<p align=center><table border="0" bordercolor="black" width="90%"><tr>
<td align="center" class="RedB"><?=$RD_STORIA?></TD>
</tr>
</table>
<?
}
@mysql_close ($connessione);
?>
</html>
Relativo ai dati generici:
<?PHP
session_start();
/*#################################################
Città virtuale GPL #
#
Non rimuovere questo commento, grazie. #
#
Programmatore: (Traimo) Vladimir Inconis #
E-mail: traimo at weaponmaster dot org #
E-mail: traimo at laforzaoscura dot com #
#
Programmatore: (Prospero) Luca #
E-mail: prosperocolonna_lot at hotmail dot com #
#
http://www.weaponmaster.org #
http://www.laforzaoscura.com #
http://www.steamcity.laforzaoscura.com #
*/#################################################
include "../controlla_login.php";
include "../config.inc.php";
$UTENTE=$_GET['UTENTE'];
$sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,USERS.INTELLIGENZA,USERS.SALUTE,
USERS.USERNAME,USERS.ESPERIENZA,USERS.CORPORAZIONE_TIPO,USERS.SESSO,USERS.STORIA,
USERS.RAZZA,USERS.URLRAZZA,USERS.DATAINGRESSO,CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA,
CORPORAZIONI.SIMBOLO FROM USERS
INNER JOIN CORPORAZIONI
ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
WHERE USERNAME = '$UTENTE'";
$conteggio = mysql_query($sqlinter, $connessione) or die(mysql_error());
while ($row=mysql_fetch_array($conteggio)){
$RD_ID_USER=$row["ID_USER"];
//Corporazione
$RD_DENARO=$row["DENARO"];
$RD_CORPORAZIONE_TIPO=$row["CORPORAZIONE_TIPO"];
$RD_CORPORAZIONE=$row["CORPORAZIONE"];
$RD_CARICA=$row["CARICA"];
$RD_SIMBOLO=$row["SIMBOLO"];
//Nome ed immagine PG
$RD_USERNAME=$row["USERNAME"];
$RD_URLAVATAR=$row["URLAVATAR"];
//Statistiche PG
$RD_SALUTE=$row["SALUTE"];
$RD_FORZA=$row["FORZA"];
$RD_INTELLIGENZA=$row["INTELLIGENZA"];
$RD_ESPERIENZA=$row["ESPERIENZA"];
//Sesso PG
$RD_SESSO=$row["SESSO"];
//Ultimo ingresso PG
$RD_DATAINGRESSO=$row["DATAINGRESSO"];
//Storia PG
$RD_STORIA=$row["STORIA"];
//Razza PG
$RD_RAZZA=$row["RAZZA"];
$RD_URLRAZZA=$row["URLRAZZA"];
?>
<html>
<head>
<link rel="stylesheet" href="../stile.css" type="text/css">
<title>Scheda del personaggio</title>
<style type="text/css">
#link1 { color:#c7ac9f ; font-family:Verdana; font-size:13px; font-weight:bold;}
#link2 { color:#9fc0c7 ; font-family:Verdana; font-size:13px; font-weight:bold;}
#link3 { color:#c7ac9f ; font-family:Verdana; font-size:16px; font-weight:bold;} </style>
<script type="text/javascript" src="/fade/moo1.2.js"></script>
<script type="text/javascript">
window.addEvent('domready',function() {
$each($$('.fade'), function(el) {
var original = el.getStyle('color');
var morph = new Fx.Morph(el,{ 'duration':'300', 'link':'cancel' });
el.addEvents({
'mouseenter' : function() { morph.start({ 'color':'#858585' }) },
'mouseleave' : function() { morph.start({ 'color': original }) }
});
});
});
</script>
<script language="JavaScript">
function apri(theURL,winName,features) {
window.open(theURL,winName,features);
}
</script>
</head>
<body>
</head>
<body leftmargin="5" topmargin="10">
<p align=center>
<html>
<head>
</head>
<body>
<table width=80% align="middle" border="2" bordercolor="7e7e7e" cellspacing=5 cellpadding=0 bgcolor="#c7ac9f">
<tr bgcolor="">
<td height=20 align=center valign=top bgcolor="7a6e62"><div id="link3"><b>I dati generici di <?=$RD_USERNAME?></b></div></td>
</tr>
<tr>
<td width="50%" height="316" bgcolor="#7a6e62">
<p align="center" class="RedB"><font face="Verdana" size="2" colcr="#7a7a7a"><b>Informazioni pubbliche</b><br>
<b>Nome:</b> <?=$RD_USERNAME?><br>
<b>Sesso:</b> <?=$RD_SESSO?><br>
<b>Sterline:</b> <?=$RD_DENARO?><br>
<b>Corporazione:</b> <?=$RD_CORPORAZIONE?><br>
<b>Carica:</b> <?=$RD_CARICA?><br>
<b>Simbolo:</b> <img src="<?=$RD_SIMBOLO?>" alt="<?=$RD_CARICA?>" width="20" height="20" border='0' align="absmiddle"><br>
<br>
<b>Ultimo ingresso:</b> <?=$RD_DATAINGRESSO?></span></div>
<br>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
</table>
<?
}
@mysql_close ($connessione);
?>
</body>
</html>
04/02/2010 23:03:12
metti un echo dopo quella select mostruosa, vedi che ti ritorna e semmai postaci quello che ti scrive.
$sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,...
echo $sqlinter;
04/02/2010 23:45:49 e modificato da stefano_il_patetico il 04/02/2010 23:46:24
Inserendo la seguente:
echo $sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,
USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME,
USERS.ESPERIENZA,USERS.CORPORAZIONE_TIPO,USERS.SESSO,
USERS.STORIA,USERS.RAZZA,USERS.URLRAZZA,USERS.DATAINGRESSO,
CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA,
CORPORAZIONI.SIMBOLO FROM USERS
INNER JOIN CORPORAZIONI
ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
WHERE USERNAME = '$UTENTE'";
$conteggio = mysql_query($sqlinter, $connessione) or die(mysql_error());
while ($row=mysql_fetch_array($conteggio)){
$RD_ID_USER=$row["ID_USER"];
//Corporazione
$RD_DENARO=$row["DENARO"]; ecc ecc
adesso mi appare la pagina non più bianca...ma con all'interno fino ad utente (in grassetto).
E' corretto dove l'ho messo?
04/02/2010 23:55:26
nu, se metti così fai stampare la select senza definirla nella variabile.. insomma, sistema così e copiaci quello che ti scriverà nella pagina:
$sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,
USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME,
USERS.ESPERIENZA,USERS.CORPORAZIONE_TIPO,USERS.SESSO,
USERS.STORIA,USERS.RAZZA,USERS.URLRAZZA,USERS.DATAINGRESSO,
CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA,
CORPORAZIONI.SIMBOLO FROM USERS
INNER JOIN CORPORAZIONI
ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
WHERE USERNAME = '$UTENTE'";
echo $sqlinter;
$conteggio = mysql_query($sqlinter, $connessione) or die(mysql_error());
05/02/2010 00:06:52
postandolo pari pari a come hai detto tu mi esce:
SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA, USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME, USERS.ESPERIENZA,USERS.CORPORAZIONE_TIPO,USERS.SESSO, USERS.STORIA,USERS.RAZZA,USERS.URLRAZZA,USERS.DATAINGRESSO, CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA, CORPORAZIONI.SIMBOLO FROM USERS INNER JOIN CORPORAZIONI ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE WHERE USERNAME = 'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 9
poi ho controllato
$sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,
USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME,USERS.ESPERIENZA,
USERS.CORPORAZIONE_TIPO,USERS.SESSO,USERS.STORIA,USERS.RAZZA,
USERS.URLRAZZA,USERS.DATAINGRESSO,CORPORAZIONI.CORPORAZIONE,
CORPORAZIONI.CARICA,CORPORAZIONI.SIMBOLO FROM USERS
INNER JOIN CORPORAZIONI
ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
WHERE USERNAME = '$UTENTE'";
echo $sqlinter;
$conteggio = mysql_query($sqlinter, $connessione) or die(mysql_error());
(cioè ho inserito solo al vecchio codice la stirnga da te suggerita e mi è uscito):
SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,
USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME,USERS.ESPERIENZA,
USERS.CORPORAZIONE_TIPO,USERS.SESSO,USERS.STORIA,USERS.RAZZA,
USERS.URLRAZZA,USERS.DATAINGRESSO,CORPORAZIONI.CORPORAZIONE,
CORPORAZIONI.CARICA,CORPORAZIONI.SIMBOLO FROM USERS INNER JOIN CORPORAZIONI ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE WHERE USERNAME = ''
05/02/2010 00:28:36 e modificato da la kaiah il 05/02/2010 00:29:24
tesò guarda che il pezzo di codice che t'ho postato è corretto, ed è lo stesso che correggendo hai riscritto xD
cmq l'importante è essere arrivati a un risultato y_y
il problema sembra essere la variabile $UTENTE che non ha un valore nella query.. domanda da 100milioni di euri, glielo passi il nome dell'utente alla pagina quando la richiami?
se non hai una risposta, andiamo per esclusione: posta la riga di codice del link che cliccando ti apre quella pagina.
05/02/2010 14:22:24
Come hai giustamente detto non ho una risposta. Ti posto la riga di codice del link che cliccando su vis_scheda.php mi apre la pagina sui dati generici.
<a href="#" class="fade" id="link1" onClick="apri('datig3.php','zztop','scrollbars=yes,width=800,height=600')"><b>Dati Generici</b></a>
Ahh...forse ho capito che dici. Forse tu dici che ci dovrebbe essere un richiamo oltre che dal link anche alla pagina di quello specifico utente. E' corretto?
05/02/2010 15:19:03
esatto. infatti se non gli dici la scheda di quale pg aprire lui non sa che valore mettere nella query. eh poverino, bisogna comprenderlo xD
intercetta la variabile che contiene il nome del personaggio e prova accussì:
<a href="#" class="fade" id="link1" onClick="apri('datig3.php?UTENTE=<?=$nome_della_variabile_che_contiene_il_nome_del_pg ?>','zztop','scrollbars=yes,width=800,height=600')"><b>Dati Generici</b></a>
05/02/2010 15:35:11
Il collegamento da vis_scheda3 a datig3 funziona..solo che rimane il problema che si vede la pagina datig3 con la stessa stringa di prima.
$UTENTE=$_GET['UTENTE'];
$sqlinter = "SELECT USERS.ID_USER,USERS.URLAVATAR,USERS.DENARO,USERS.FORZA,
USERS.INTELLIGENZA,USERS.SALUTE,USERS.USERNAME,
USERS.ESPERIENZA,USERS.CORPORAZIONE_TIPO,USERS.SESSO,USERS.STORIA,
USERS.RAZZA,USERS.URLRAZZA,USERS.DATAINGRESSO,
CORPORAZIONI.CORPORAZIONE,CORPORAZIONI.CARICA,
CORPORAZIONI.SIMBOLO FROM USERS
INNER JOIN CORPORAZIONI
ON USERS.CORPORAZIONE_TIPO = CORPORAZIONI.ID_CORPORAZIONE
WHERE USERNAME = '$UTENTE'";
echo $sqlinter;
$conteggio = mysql_query($sqlinter, $connessione) or die(mysql_error());
Chissà che casino ho fatto!
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Tibia ↗
Project Entropy ↗
Wuthering Waves ↗
Crossout ↗
Hero Wars ↗
Imperion ↗
Tiles Survive ↗
CRSED: F.O.A.D. ↗
AlterEgo ↗
Enlisted ↗