phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Login

Supporto per phpBB 3.0.x.
Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Login

Messaggio da Troubled » 24/08/2013, 17:07

Buonasera a tutti,
sto cercando di creare un area protetta disponibile solo per gli iscritti del mio forum.
Ho quindi scritto il codice

Codice: Seleziona tutto

<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if(isset($_POST['username']) and isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
}
else{echo 'Esegui il login con il tuo account';}
if((strlen($username)=='0') and (strlen($password)=='0')){echo '    <form id="login" action="login.php" method="post">
        <fieldset id="inputs">
            <input id="username" name="username" type="text" placeholder="Username" autofocus required>
            <input id="password" name="password" type="password" placeholder="Password" required>
        </fieldset>
        <fieldset id="actions">
            <input type="submit" id="submit" value="Entra">
            <a href="../index.html" id="back">Indietro</a>
        </fieldset>
    </form>';
}
else{ $connect = mysqli_connect('urldelmiohost', 'miousername', 'miapassword', 'miodb'); 

if (!$connect) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}
$strSQL = "SELECT * FROM avphpbb_users WHERE username = '".$username."' AND user_password = MD5('".$password."')";
function search_escape($strSQL, $char = '\\')
{
    return ereg_replace('[%_]', $char . '\0', $strSQL);
}
		$result = mysqli_query($strSQL);
$row = mysqli_fetch_row($result);
if(strlen($row[0]) == 0){echo 'I dati sono errati';}
else{$_SESSION['logged'];
echo 'Loggato. <a href="paginaprivata.php">Clicca qui per continuare</a>';
}
}
?>
Ma non funziona in quanto considera i dati errati a prescindere.
Come posso adattare il codice perchè sia funzionante? (Credo che il problema sia nell'algoritmo di crittografia usato, infatti avevo usato il codice in precedenza e funzionava...)

Avatar utente
brunino
Moderatore
Moderatore
Messaggi: 2819
Iscritto il: 12/01/2013, 16:35
Sesso: Maschio
Versione: 3.1.2
Server: UNIX/Linux
PHP: php 5.3
Database: mysql
Località: Toscana, Firenze
Contatta:

Re: Login

Messaggio da brunino » 24/08/2013, 17:41

Nel wiki c'é una guida che spiega come creare una pagina personalizzata su phpbb, senza troppe complicazioni. Puoi impostare l'accesso negato agli ospiti (ai quali mostra il form di login). Leggi la guida che ti semplifichi la vita.

ps: evita doppi messaggi ;)
E' sempre gradito un grazie

Creo estensioni per phpBB 3.1 su misura: contattami via MP.
Mie Estensioni: Top Ten Topics | Ban List | Topic List
Visita il mio forum di test e sviluppo stili e estensioni phpBB 3.1

Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Re: Login

Messaggio da Troubled » 24/08/2013, 17:57

ok, la leggerò :D grazie

non mi risulta che abbia inviato un doppio messaggio, probabilmente ho cliccato due volte su invia, chiedo scusa.

Mi restituisce Fatal error: Call to a member function session_begin() on a non-object in gioca.php on line 8

Cos'ha che non va quel session_begin?

Angolo
Leader Traduttori
Leader Traduttori
Messaggi: 7237
Iscritto il: 11/03/2011, 17:37
Sesso: Maschio
Versione: 3.0.12
Server: UNIX/Linux
PHP: 5.6.18
Database: MySQL 5.6.33-log
Contatta:

Re: Login

Messaggio da Angolo » 24/08/2013, 18:43

Sei consapevole del fatto che nativamente, puoi creare un'area protetta di un forum, utilizzando solo i permessi e se occorre le password? Dove inserire testi e allegati?

È praticamente, una modifica inutile. Almeno, tale appare.

Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Re: Login

Messaggio da Troubled » 24/08/2013, 20:19

Sono consapevolissimo, però quello che voglio rendere privato è un giochino in php, quindi non potrei utilizzare semplici campi di testo.
Grazie comunque.

Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Re: Login

Messaggio da Troubled » 02/09/2013, 11:34

Non funziona.
index.php

Codice: Seleziona tutto

<head>
<title>Fluent english</title>
</head>
<body>
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : 'http://altutto.altervista.org/f/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl=($user->data);
$user->setup();
if ($user->data['user_id'] == ANONYMOUS)
{
        login_box('', $user->lang['LOGIN']);
}

include('template.php');

include("{$phpbb_root_path}viewforum.$phpEx");
?>
</body>
Mi dà Fatal error: Call to a member function session_begin() on a non-object

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Login

Messaggio da Barrnet » 02/09/2013, 13:43

Non funziona perché le pasword salvate nelle tabelle diphpBB3 non sono in md5.
https://wiki.phpbb.com/Function.phpbb_check_hash
Ti conviete o includere il functon.php nel tuo file php o estrarre la singola funzione.

Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Re: Login

Messaggio da Troubled » 02/09/2013, 13:47

Ho fatto

Codice: Seleziona tutto

<head>
<title>Fluent english</title>
</head>
<body>
<?php
include('f/includes/functions.php');
include('template.php');
?>
</body>
Non mi restituisce più errore, ma dice 'Errore nel recupero dei dati'

Troubled
Utente
Utente
Messaggi: 34
Iscritto il: 20/06/2013, 16:51
Sesso: Maschio
Versione: 3.0.11
Database: MySQL 5.1.49-community-log

Re: Login

Messaggio da Troubled » 05/09/2013, 11:57

Ho modificato il codice...

Codice: Seleziona tutto

<!-- INCLUDE overall_header.html -->

<h2>Fluent English</h2>
<?php
    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../../f/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    include($phpbb_root_path . 'common.' . $phpEx);

    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();

    if ($user->data['user_id'] == ANONYMOUS)
    {
       echo 'Please login!';
       die();
    }

    else
    {
       echo 'Ottimo, sei loggato';
$nomeutente="data['user_id']";
    }
$connessione=mysql_connect("localhost", "altutto", "password");
$selezione_db=mysql_select_db("my_altutto", $connessione);
$progressi = "SELECT livello_ef FROM avphpbb_users WHERE id =='$nomeutente';";
$ottieni = "SELECT inglese FROM Fluent_english WHERE livello_ef=='$progressi';";
$mostra ="mysql_query($ottieni);";
       if (!$ris_news) {
 
                   //messaggio di errore per capire il problema
           exit ('<p> Errore nel recupero dei dati' . mysql_error() . '</p>');
 
                }
 
   // loop per stampare i risultati
   while ($news= mysql_fetch_array($ris_news))  
 
   {
 
         //struttura del loop visualizzazione si ripeterà n volte
     echo "<p>Traduci: ".$news['titolo_news']."</p>" ;
 
   }//While
 
if($_POST['traduzione']==''){echo '<form action="index.php" method="POST">
<label><input type="text" id="traduzione"></label>
<input type="submit" value="Conferma">
</form>';
}
else{ $controlla = "SELECT italiano FROM Fluent_english WHERE livello_ef=='$progressi';";
$controllo_alternativo = "SELECT italiano_alt FROM Fluent_english WHERE livello_ef=='$progressi';";
if($_POST['traduzione']=='$controlla' or $_POST['traduzione']=='$controllo_alternativo'){$aggiungi = "$progressi++";
$query = "UPDATE avphpbb_users SET livello_ef='$aggiungi' WHERE id = data['user_id']"; }
else{echo 'Risposta errata!';}
}
?>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->
E in effetti se sono loggato mi dice 'ottimo, sei loggato!', però mi dice anche 'Errore nel recupero dei dati' Cosa ho sbagliato?

Avatar utente
Barrnet
Leader Moderatori
Leader Moderatori
Messaggi: 3124
Iscritto il: 04/07/2010, 23:31
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux
PHP: 5.3.10
Database: MySQL 5.1.61-community-log
Contatta:

Re: Login

Messaggio da Barrnet » 05/09/2013, 12:04

Vuol dire che il sistema di login funziona, ma non funziona quella query al database, che restituisce l'errore definito per la mancanza di connessione.

Rispondi

Torna a “[3.0.x] Forum di Supporto”

Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti