Sistemare un codice
Sistemare un codice postato il 08/08/2017 15:09:05 nel forum programmazione, open source e hosting
Ho ricevuto da un amico un codice di una land scritta in PHP 3 o 4.
Lo ho caricato su un host di altervista, e ho aggiunto il collegamento al database, ma ho un problema.
Se provo ad accedere mi da
Fatal error: Call to undefined function session_register() in /membri/nomegioco/chat/login.php on line 19
controllando la riga 19 trovo la funzione session_register() appunto e non so come definirla
ho inoltre provato a registrare un nuovo pg, ma quando mi invia il codice di verifica per il login, mi arriva legato al vecchio host del sito e non al nuovo, come lo cambio?
Pagine → 1
08/08/2017 15:14:36
La funzione e' stata rimossa dal php 5.4
Puoi utilizzare questo
$_SESSION['user'] = "pippo";
08/08/2017 15:37:54
quindi se la mia stringa è
ini_set('session.gc_maxlifetime', '0');
session_start( );
session_register( );
require_once('script/config-db.php');
require_once('script/class-db.php');
$db = new db();
$Login1 = $_REQUEST['Login1'];
$Pass1 = $_REQUEST['Pass1'];
// filtro l'inserimento
//$Login1 = $db->escape($Login1);
filter_var($Login1, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$Pass2=md5($Pass1);
$sql=$db->query("SELECT STATUS, ID, NOME FROM player1 WHERE NOME = '$Login1' AND PASS = '$Pass2' ");
$rs = mysql_fetch_array($sql);
$time = time();
come dovrebbe diventare?
08/08/2017 15:51:51
Andrebbe riscritto da capo, anche gli altri file e classi. Ti invito a prendere in considerazione di utilizzare gdrcd, in quanto grosso modo puoi trovare molte info su questo portale
08/08/2017 20:18:46
Se tutta la land, in ogni singola pagina, apre la sessione in quel modo, non ci credo che sto per dirlo ti conviene usare GDRCD.
Altrimenti dovresti modificare tutte le pagine manualmente
Se proprio non vuoi separarti dal tuo codice, ti conviene cercarti qualche classe decente per mysqli, e iniziare a fare un bel lavoro di sostituzione automatica con qualche editor di testo.
09/08/2017 10:05:30
raysmoke ha scritto: non ci credo che sto per dirlo ti conviene usare GDRCD.
C'è sempre una prima volta 😁
La questione è che prima, se ricordi, c'era gdrcd extreme (basato sulla release originale di Gentile) che era configurato allo stesso modo. Dai nomi delle variabili che leggo nell'esempio di codice mi viene piuttosto istintiva la speculazione sul fatto che l'autore possa aver fatto scuola proprio sulla versione che ho citato.
Ad ogni modo, le primissime versioni di php 5 mantennero molte delle funzionalità vecchie per permettere ai software scritti con la versione 4 di aggiornarsi col minimo sforzo, dalla 5.3 cominciarono a deprecare e a disabilitare di default i vari moduli insicuri.
Penso che se riesci a trovare una versione di php 5.1 o 5.2 al massimo il codice riesca a girarci. Tuttavia non mi ci affiderei troppo, è una base vecchiotta e l'attuale gdrcd 5.x sembrerebbe meglio organizzato.
09/08/2017 10:36:56
Il problema è che questo codice ha tutte le funzionalità che a me servono, ai fini della land, dalla costruzione della scheda, allo sviluppo si alcune peculiarità che servono per masquerade. Adesso sto provando a parlare con un programmatore per capire se è meglio adattarlo o riscriverlo. A ciò che so chi fece questo codice, prese il GDRCD e lo riscrisse da 0, ma parliamo di oltre 6 anni fa
09/08/2017 10:59:42 e modificato da blancks il 09/08/2017 11:01:25
leoken87 ha scritto: A ciò che so chi fece questo codice, prese il GDRCD e lo riscrisse da 0, ma parliamo di oltre 6 anni fa
Ci avevo visto giusto infatti.
Lo avrà sicuramente rivisitato, ma "riscriverlo da 0" significa creare a tutti gli effetti un codice nuovo e indistinguibile dal precedente. Il fatto che io abbia riconosciuto nomi variabili e logica organizzativa del file smentisce quanto indicato: ci avrà lavorato sicuramente molto, ma alla base rimangono tutte le problematiche strutturali del codice da cui è partito, inoltre non sono molto fiducioso sulla consistenza delle modifiche fatte a giudicare da quello spezzone di codice.
// Oggetto per la query e..
$sql=$db->query("SELECT STATUS, ID, NOME FROM player1 WHERE NOME = '$Login1' AND PASS = '$Pass2' ");
// ..chiamata procedurale per il fetch ?!
$rs = mysql_fetch_array($sql);
Le funzioni mysql_* per il dialogo col database sono deprecate e rimosse nelle release più recenti di php e, a giudicare dallo spezzone di codice indicato, temo che la chiamata procedurale a quella specifica funzione venga utilizzata come prassi per le richieste sql. Questo richiederebbe quindi la revisione di tutti i files che fanno uso del database (che non sono pochi) al fine di rimuovere il codice deprecato e sostituirlo con metodi e funzioni più recenti.
Se trovi qualcuno che sappia smanettarci a dovere e sistemartelo per bene meglio così, il problema resta (a mio avviso) l'enorme mole di lavoro da fare e di cui potrebbe non valerne la pena. Ripartendo da un gdrcd 5.x dovresti "solo" implementare le meccaniche di regolamento di cui hai bisogno mentre tenendo questa base dovresti revisionare (quasi) ogni singolo file della stessa.
09/08/2017 11:13:12
blancks ha scritto:
Se trovi qualcuno che sappia smanettarci a dovere e sistemartelo per bene meglio così, il problema resta (a mio avviso) l'enorme mole di lavoro da fare e di cui potrebbe non valerne la pena. Ripartendo da un gdrcd 5.x dovresti "solo" implementare le meccaniche di regolamento di cui hai bisogno mentre tenendo questa base dovresti revisionare (quasi) ogni singolo file della stessa.
Ho trovato uun programmatore che fa php per lavoro e che è interessato ad aiutarmi. Per ora gli ho inviato il mio codice, per capire tempistiche e mole di lavoro per la sistemazione, poi gli girerò anche il gdrcd, e vedremo cosa conviene fare, se implementare le funzioni che a noi servono nel gdrcd, o se farne uno nuovo
09/08/2017 11:17:53
leoken87 ha scritto: Ho trovato uun programmatore che fa php per lavoro e che è interessato ad aiutarmi.
C'è anche la terza opzione: che potrebbe ovvero creare la land partendo da framework e strumenti che conosce meglio.
Da professionista posso comprendere che gdrcd 5.x non risulti propriamente "appetibile", ma può risparmiare indubbiamente un bel po di tempo.
Facci sapere poi come procederete ;-)
09/08/2017 14:02:32
Non entro nel merito di quante funzioni possano essere state implementate per rispondere alle tue esigenze, ma se le mettessimo su una bilancia, come ti ha già detto Blancks, è preferibile prendere un codice più nuovo e implementare le funzioni, piuttosto che rimaneggiare quello vecchio per farlo funzionare.
Per non parlare di tutte le falle di sicurezza che ormai avrà.
Il mio suggerimento è di scaricare l'ultima release di GDR-CD e buttare uno sguardo alla lista praticamente infinita di pacchetti disponibili.
Con un pizzico di fortuna potresti essere in grado di "riprodurre" il tuo gdr con un codice sicuramente migliore dell'attuale e senza il suicidio di dover rimaneggiare ogni singola pagina.
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
World of Warship ↗
War Thunder ↗
World of the Sea Battle ↗
AlterEgo ↗
Project Entropy ↗
Fallen Gods ↗
Storie di Agarthi ↗
Crossout ↗
Enlisted ↗
The Coven ↗