GDRCD - login.php? postato il 07/12/2006 12:56:19 nel forum programmazione, gdrcd, open source, hosting
Salve a tutti! Sono nuovo di questo forum ma è da parecchio che consulto GdR-online. Da tempo mi sono messo in testa di creare un gdr online, quindi ho spulciato un pò fra i tool open source. La mia scelta è ricaduta sul mitico GDRCD. In particolare, sto adoperando il GDRCD Blue. Lo trovo un tool molto interessante e... "relativamente" facile... per lo meno, per chi mastica un pò di php. E non è assolutamente il mio caso. Ad ogni modo, sto cominciando a studiare il php per interesse personale e naturalmente per aumentare le mie possibilità creative sul web. Tuttavia, non mi sembrava male cominciare a dare un'occhiata al GDRCD. Come immaginavo, tuttavia, sono incorso sin da subito in alcuni problemi. Problemi che ad esser sincero dubito siano a me dovuti. Prima di esporli, faccio alcune premesse.
Ho installato EasyPHP, quindi sono fornito di Apache e naturalmente MySQL. Come dicevo prima, ho scaricato GDRCD Blue. Sto tentando di seguire le operazioni descritte in "Prova su strada di GDR-CD", articolo presente qui su GDR-online. Riesco ad arrivare sino al passaggio numero 7, cioè quando dovrei effettuare il Login. Sia inteso che sto lavorando ancora in localhost. Ad ogni modo, dopo aver inserito il nick e la pass, mi compare una pagina con alcuni notice e alcuni errori vari, risolti grazie a qualche dritta trovata sul web. L'unico problema che attualmente permane, proveniente dal file "login.php", è un "Parse error: parse error in [...] on line 214. Ma si da il caso che la riga 214 sia l'ultima! Anche cancellando questa riga, l'errore si ripete ma nella riga precedente. E' da diversi giorni che ci perdo la testa, ma non trovo soluzione. Probabilmente per la mia incompetenza in campo di php, temo di non saper riconoscere eventuali incorrettezze nel file login.php, se ve ne sono e se sono queste a dare problemi. Ad ogni modo, spero che qualcuno di voi possa gentilmente aiutarmi!
Se serve, posso fornire il contenuto del file login.php.
Grazie per l'attenzione.
Pagine → 1
07/12/2006 13:28:56
Ah.. Capito.. Ma se manca la chiusura di un comando php, come faccio a sapere dove metterla? non conosco molto il php...
07/12/2006 13:34:58
Il problema è che non so come correggere il file.. Anche se ci fosse un codice php da chiudere, non saprei dove :P Non sono pratico di php. Posto qui il codice di login.php... Se qualche buona anima può dirmi dov'è l'errore..!
----------------------------------------------------------------------
login.php
----------------------------------------------------------------------
<? session_start();
session_register('Login');
session_register('Luogo');
session_register('Stanza');
session_register('IP');
session_register('LastTime');
session_register('Master');
session_register('Sesso_S');
session_register('IDGilda_S');
session_register('ImgGilda_S');
session_register('DescGilda_S');
session_register('IDRazza_S');
session_register('ImgRazza_S');
session_register('DescRazza_S');
session_register('Super_S');
session_register('Oggetti_S');
session_register('Prigione_S');
session_register('Esilio_S');
session_register('LogFinanza_S');
session_register('LogDoppi_S');
session_register('Gst_AR_S');
session_register('Gst_Razza_S');
session_register('Admin_S');
session_register('AdminExt_S');
include ('inc/parametri.inc.php');
#controllo di provenienza dallo stesso dominio
/*
if (strtolower(substr($_SERVER['HTTP_REFERER'], 0, strlen($par_SiteURL)))!=strtolower($par_SiteURL)) {
echo '<b>Login non avvenuto dal sito '.htmlspecialchars($par_SiteURL).' ma dal sito '.substr($_SERVER['HTTP_REFERER'], 0, strlen($par_SiteURL)).'</b><br>';
echo 'In caso di problemi, mandare il copia-e-incolla di questa pagina per email a lovetown@hotmail.it<br>';
echo '<a href="'.$par_SiteURL.'" target=_top>Vai alla home page</a>';
exit();
}
*/
include ('inc/open2.php');
$MySql = "SELECT * FROM BlackList WHERE IP = '".$_SERVER['REMOTE_ADDR']."' AND Granted = 0";
$Login1 = $_POST['Login1'];
$Pass1 = $_POST['Pass1'];
$Result = mysql_query($MySql);
if (mysql_num_rows($Result) == 1) {
$MySql = "INSERT INTO LogErrori (Nome, Errore, DataEvento, IP) VALUES ('".$Login1."', '<Bloccato>', NOW(), '".$_SERVER['REMOTE_ADDR']."')";
mysql_query($MySql);
#$target="info@2citta.it";
#$subject = "Le due città - Tentativo ".$Login1."-".$Login."-".$HTTP_COOKIE_VARS['lastlogin'].': '.$rs['Nota'];
#mail($target, $subject, strftime("%d/%m/%Y %H:%M:%S %p").': segnalato tentativo di '.$HTTP_COOKIE_VARS['lastlogin'].'-'.stripslashes($Login1).'-'.$Login." di entrare\nIP ".$_SERVER['REMOTE_ADDR']."(".gethostbyaddr($_SERVER['REMOTE_ADDR']).")\nPass:".stripslashes($Pass1)."\n".$rs['Nota']);
exit();
$rs->close;
$MySql = "SELECT * FROM Personaggio";
$MySql .= " WHERE Nome = '$Login1'";
$MySql .= " AND Pass = '$Pass1'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ($rs) {
$_SESSION['Login'] = trim($rs['Nome']);
$IDRazza = $rs['IDRazza'];
$IDGilda = $rs['IDGilda'];
$_SESSION['Master'] = $rs['Master'];
$Sesso = strtolower($rs['Sesso']);
$_SESSION['Sesso_S'] = $Sesso;
$_SESSION['Super_S'] = $rs['Super'];
$_SESSION['Admin_S'] = $rs['Admin'];
$Doppio = $rs['Doppio'];
$_SESSION['Pres'] = 'S';
$rs->close;
$MySql = "SELECT * FROM Razza WHERE IDRazza = '$IDRazza'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$ImgRazza = $rs['URLImg'];
$DescRazza = $rs['Razza'];
$rs->close;
if ($IDGilda != "") {
$MySql = "SELECT * FROM Gilda WHERE IDGilda = '$IDGilda'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$ImgGilda = $rs['URLImg'];
$DescGilda = $rs['Gilda'];
$_SESSION['Oggetti_S'] = $rs['Oggetti'];
$_SESSION['Super_S'] = $rs['Super'];
$_SESSION['Esilio_S'] = $rs['Esilio'];
$_SESSION['Prigione_S'] = $rs['Prigione'];
$_SESSION['LogFinanza_S'] = $rs['LogFinanza'];
$_SESSION['LogDoppi_S'] = $rs['LogDoppi'];
$_SESSION['Gst_AR_S'] = $rs['Gst_AR'];
$_SESSION['Gst_Razza_S'] = $rs['Gst_Razza'];
$rs->close;
} else {
$ImgGilda = 'nessuno.gif';
$DescGilda = 'Cittadino';
$_SESSION['Oggetti_S'] = 0;
$_SESSION['Super_S'] = 0;
$_SESSION['Esilio_S'] = 0;
$_SESSION['Prigione_S'] = 0;
$_SESSION['LogFinanza_S'] = 0;
$_SESSION['LogDoppi_S'] = 0;
$_SESSION['Gst_AR_S'] = 0;
$_SESSION['Gst_Razza_S'] = 0;
}
$_SESSION['IDGilda_S'] = $IDGilda;
$_SESSION['ImgGilda_S'] = $ImgGilda;
$_SESSION['DescGilda_S'] = $DescGilda;
$_SESSION['IDRazza_S'] = $IDRazza;
$_SESSION['ImgRazza_S'] = $ImgRazza;
$_SESSION['DescRazza_S'] = $DescRazza;
$Doppio = 0 + $Doppio;
$IP = $_SERVER['REMOTE_ADDR'];
$Host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$MySql = 'INSERT INTO LogEntrate (Nome, DataEvento, IP, Host) VALUES (\''.$_SESSION['Login'].'\', NOW(), \''.$_SERVER['REMOTE_ADDR'].'\', \''.$Host.'\')';
$Result = mysql_query($MySql);
if (($HTTP_COOKIE_VARS['lastlogin'] != $_SESSION['Login'])
&&($HTTP_COOKIE_VARS['lastlogin'] != "")) {
$MySql = 'SELECT COUNT(*) AS NumDoppi FROM Personaggio WHERE (Nome = \''.$_SESSION['Login'].'\'';
$MySql .= ' OR Nome = \''.pars($HTTP_COOKIE_VARS['lastlogin']).'\')';
$MySql .= ' AND Doppio = \''.$Doppio.'\' AND Doppio > 0';
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ((0 + $rs['NumDoppi']) < 2) {
$MySql = 'INSERT INTO LogDoppi (Nome, Doppio, DataEvento, IP, Host) VALUES ';
$MySql .= '(\''.$_SESSION['Login'].'\', \''.pars($HTTP_COOKIE_VARS['lastlogin']).'\', NOW(), \''.$_SERVER['REMOTE_ADDR'].'\', \''.$Host.'\')';
$Result = mysql_query($MySql);
};
$rs->close;
}
setcookie('lastlogin',$_SESSION['Login'],0,'','',0);
include ('inc/controlloesilio.php');
} else {
$rs->close;
$_SESSION['Login'] = '';
if (($Login1 != '') && ($Pass1 != '')) {
$MySql = 'INSERT INTO LogErrori (Nome, Errore, DataEvento, IP) VALUES (\''.$Login1.'\', \''.$Pass1.'\', NOW(), \''.$_SERVER['REMOTE_ADDR'].'\')';
$Result = mysql_query($MySql);
$MySql = 'SELECT count(*) FROM LogErrori WHERE IP = \''.$_SERVER['REMOTE_ADDR'].'\' AND DATE_ADD(DataEvento, INTERVAL 360 MINUTE) > NOW()';
##### si conteggiano solo i tentativi delle ultime sei ore #####
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
if ($rs[0]>9) {
$MySql = 'INSERT INTO BlackList (IP, Nota, Ora, Host) VALUES ';
$MySql .= '(\''.$_SERVER['REMOTE_ADDR'].'\', \''.$Login1.' (tenta password)\', NOW(), \''.$Host.'\')';
$Result = mysql_query($MySql);
}
}
};
include('inc/cambiastanza.php');
$cambiastanzainc = true;
if ($_SESSION['Login'] != '') {
if ($_SESSION['Stanza'] == '') {
cambiastanza(1,$_SESSION['Login']);
//cambiastanza(400,$_SESSION['Login']);
};
### Da lanciare prima del controllo esilio ###
$MySqlPersonaggio = "UPDATE Presenti SET ";
$MySqlPersonaggio .= "Pres='$Pres', ";
$MySqlPersonaggio .= "IDRazza='$IDRazza', ";
$MySqlPersonaggio .= "DescRazza='$DescRazza', ";
$MySqlPersonaggio .= "ImgRazza='$ImgRazza', ";
$MySqlPersonaggio .= "Master='".$_SESSION['Master']."', ";
$MySqlPersonaggio .= "Sesso='$Sesso', ";
$MySqlPersonaggio .= "IDGilda='$IDGilda', ";
$MySqlPersonaggio .= "DescGilda='$DescGilda', ";
$MySqlPersonaggio .= "ImgGilda='$ImgGilda', ";
$MySqlPersonaggio .= "LastIP='".$_SERVER['REMOTE_ADDR']."', ";
$MySqlPersonaggio .= "UltimoRefresh=NOW(), ";
$MySqlPersonaggio .= "OraEntrata=NOW(), ";
$MySqlPersonaggio .= "OraUscita='2037-12-31 00:00:00' ";
$MySqlPersonaggio .= "WHERE Nome = '".pars($_SESSION['Login'])."'";
mysql_query($MySqlPersonaggio);
# if (mysql_affected_rows() != 1) {
# echo "Problemi tecnici nell'aggiornamento del personaggio<br><a href='Javascript:location.reload()'>riprova</a>";
# } else {
header("Location: main.php?", true);
exit();
# }
} else { ?>
<center>Utente non riconosciuto<br>
<br>
Per recuperare la password, utilizzare il modulo presente nella home page<br>o scrivere all'indirizzo di <a href="mailto:<?=$par_WebmasterEmail?>">email</a>.<br>
<br>
Non tentare la password troppe volte, o questa postazione sarà automaticamente esclusa.
<a href="index.php">Rientra</a>
</center>
<? session_destroy(); ?>
}
07/12/2006 16:28:02
Mitica sintax highlitght di Np++..
Comunque l errore è nell ultima riga, hai chiuso il tag php prima di chiudere la parentesi.
Cambia le ultime due righe cosi: <? session_destroy();
}?>
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD, Open Source, Hosting Elenco Forum
I dati del generatore di rank sono stati aggiornati!
Saint or Sinner?: Le news del sabato sera..
NosTale → Con l’aiuto della spada e della bacchetta magica risolverai abilmente intricate missioni e domerai coraggiosamente mostri selvaggi!
Legacy of Magic: Al tempio di Raswa-Ti
ultima_profecia ha risposto alla discussione: Ùltima Profecía
Hogwarts Mystery - GdR: Accademia di Arti Magiche rasa al suolo {Edicola}
nexigeneration ha recensito Anima
Ikariam → Su una piccola isola, in qualche parte del Mediterraneo, sorge un`antica civiltà. Sotto la tua guida inizia un`era di ricchezza e di scoperte!
The Voyager: Central Train Station e un viaggio in prima classe
Lineage II: Evento di controllo incrociato
Enlisted: Nuovi miglioramenti grafici
desenlace ha aperto un annuncio di ricerca: Road to Hamartia RPG ricerca Giocatore
World of Warship → MMO gratuito con frenetiche battaglie navali ambientate nel ventesimo secolo. Salpa con la tua nave ed affronta i nemici!
Legacy of Magic: Un nuovo Drakul
Road to Hamartia: Regolamento 2.0: guida alle nuove Maestrie
Nuovo Play by Chat Harry Potter → Dissendium Draconis
Storie di Agarthi → Un Varco si apre davanti a te, un mondo tra i mondi è a portata di mano. Lasciati alle spalle le certezze, diventa quello che hai sempre cercato.
Ambientazioni GDR - La seconda lista di ambientazioni non sfruttate dai gestori di giochi di ruolo. Utile per avere spunti per un nuovo gdr!
Le Cronache di Arathos - Intervista ai gestori del GdR play by chat fantasy Le Cronache di Arathos
Erant - Intervista allo staff di Erant il play by chat fantasy storico da giocare su Discord!
Utenti Stranieri - I visitatori internazionali di GDR-online.com! Spulciamo i dati e scopriamo i paesi!
Star Trek LCARS - Recensione del gioco ambientato nel mondo di Star Trek DS9!
Star Trek Horizon - Intervista ai gestori del play by chat Star Trek Horizon! Attivazione!