[Joomla] [PHP] come attingere informazioni specifiche da database

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
Gentili utenti ed esperti del forum, ho una questione che potrebbe interessare molti utenti.
Ho creato per la mia scuola dove insegno, una modulistica online visibile dal seguente link:
http://www.giovanniarlacchi.it/documenti_online/Modulistica.php
Quello che vorrei fare è far comparire in automatico nel campo "nome" o "cognome" il nome o cognome dell'utente dopo essersi loggato, attingendolo automaticamente dal database dopo che il form si connette con quest'ultimo. Premesso che utilizzo un CMS che potrebbe essere o joomla o moodle, entrambe hanno una tabella del tipo chuj3_users`; ho provato ad utilizzare un Recordset interrogando il db, ma questo mi legge solo il primo nome riportato nella lista indipendentemente da chi si logga.

Qualcuno mi può dire come fare? Ne ho provate tante ma non ho idea.

Form del genere ve ne sono diversi, basti pensare ad esempio il sito inps in cui un utente dopo che si logga e va a compilare un modello, in automatico compare il suo nome e cognome.
Grazie in anticipo.
 

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
ciao
ti sposto in joomla, anche se è un problema di php mettere le mani nel codice di un cms è sempre una rogna

Il form non l ho fatto con joomla per cui il codice PHP di joomla non centra nulla.
Nel cms ho solo inserito il collegamento con esso; quello che bisognerebbe manipolare è il codice PHP o il database. Secondo me questo è il posto giusto o a limite in una sezione di database
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
scusa, non avevo capito, ti riporto in php, però da quello che ho capito al form si puo collegare solo chi è loggato e il log avvine tramite uno script di joomlia, giusto?
se è così (non conosco joomlia ne altri cems, faccio sempre tutto manina manina) dovresti postare cosa jomlia utilizza per far accedere alle pagine riservate, una sessione? e se si quale e cosa contiene?
 

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
No no. Il form l'ho costruito interamente in php o volendo anche in htl (con l'aiuto di dreamweaver), per cui possiamo considerarlo indipendente da joomla. Il form viene richiamato da joomla a mezzo di un link che si trova all'interno del profilo utente di joomla.
Il problema è scrivere una query in php che consenta di attingere le informazioni dell'utente dal database (come ad esempio nome, e-mail...etc..) nel momento in cui lo stesso utente si logga.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
147
63
PR
www.borgo-italia.it
ciao
appunto, se l'utente si logga (immagino user e pass) verifichi nel db che user e pass esistano, immagino che in quella pagina tu faccia una select per cercare user e pass tipo
PHP:
<?php
session_start();
//... connessine e altro
//e ricevi dal form $user e $pass tramite i $_POST
$user=$_POST['user'];
$pass=$_POST['pass'];
//gli opportuni controlli

$query="SELECT * FROM tabella WHERE user='$user' AND pass='$pass'";
$ris=mysqli_query($connessione, $query);
//controlli l'esistenza
if(mysqli_num_rows($ris) < 0){
    //non registrato quindi rimandi a dove vuoi
}else{
    //utente registrato
    //estrati passi in sessione il suo id
    $riga=mysqli_fetch_assoc($ris);
    $_SESSION['id']=$riga['id'];
    //e qui fai quello che devi fare
}
//...
?>
poi nella pagina che ti interessa
PHP:
<?php
session_start();
//verifichi che la sessione esista
if(!isset($_SESSION['id'])){
    //la sessione non esiste quindi riinvii
    header('location:dove_vuoi.php');
    exit();
}
//la sessione esite
//dati ci connessione
$query="SELECT * FROM tabella WHERE id=".$_SESSION['id'];
//e estrai i dati che ti servono
$ris=mysqli_query($connessione, $query);
$riga=mysqli_fetch_assoc($ris);
$nome=$riga['nome'];
$email=$riga['email'];
//ecc....
//e usi le variabili dove e come ti servono

?>
guarda che ho messo nomi a caso, evidente che devi mettere quelli che hai tu
 
  • Like
Reactions: cobra_72

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
ciao
appunto, se l'utente si logga (immagino user e pass) verifichi nel db che user e pass esistano, immagino che in quella pagina tu faccia una select per cercare user e pass tipo
PHP:
<?php
session_start();
//... connessine e altro
//e ricevi dal form $user e $pass tramite i $_POST
$user=$_POST['user'];
$pass=$_POST['pass'];
//gli opportuni controlli

$query="SELECT * FROM tabella WHERE user='$user' AND pass='$pass'";
$ris=mysqli_query($connessione, $query);
//controlli l'esistenza
if(mysqli_num_rows($ris) < 0){
    //non registrato quindi rimandi a dove vuoi
}else{
    //utente registrato
    //estrati passi in sessione il suo id
    $riga=mysqli_fetch_assoc($ris);
    $_SESSION['id']=$riga['id'];
    //e qui fai quello che devi fare
}
//...
?>
poi nella pagina che ti interessa
PHP:
<?php

session_start();
//verifichi che la sessione esista
if(!isset($_SESSION['id'])){
    //la sessione non esiste quindi riinvii
    header('location:dove_vuoi.php');
    exit();
}
//la sessione esite
//dati ci connessione
$query="SELECT * FROM tabella WHERE id=".$_SESSION['id'];
//e estrai i dati che ti servono
$ris=mysqli_query($connessione, $query);
$riga=mysqli_fetch_assoc($ris);
$nome=$riga['nome'];
$email=$riga['email'];
//ecc....
//e usi le variabili dove e come ti servono

?>
guarda che ho messo nomi a caso, evidente che devi mettere quelli che hai tu


Grazie lo proverò subito. Se funziona provvederò subito a farti una statua d'oro :)
 

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
Posto la parte interessata del form:

<input name="sex" type="radio" required id="sex_0" value="Il">
Il</label>
<input type="radio" name="sex" value="La" id="sex_1">
La sottoscritt <label>
<input name="sex1" type="radio" required id="sex1_0" value="o">o</label>
<input type="radio" name="sex1" value="a" id="sex1_1">
a:
<input name="cognome" type="text" id="nome" autocomplete="off" size="20" maxlength="20" readonly>
<input name="email" type="hidden" id="email" value="[email protected]">
DOCENTE a tempo
<label>
<input name="contratto" type="radio" required id="Sceltacontratto_0" value="determinato">
determinato</label>
<label>
<input name="contratto" type="radio" id="Sceltacontratto_1" value="indeterminato">
indeterminato</label>
, in servizio presso questo Istituto
<p>nel corrente anno scolastico,
 

marino51

Utente Attivo
28 Feb 2013
2.988
173
63
Lombardia
come detto, stai usando funzioni del db incompatibili tra loro

$conn = mysqli_connect($hostname_dati, $username_dati, $password_dati,$database_dati) or trigger_error(mysql_error(),E_USER_ERROR);

probabilmente anche nel resto dello script, verifica la coerenza, considerando di usare le funzioni mysqli perché le altre, più vecchie, sono abbandonate ed in futuro verranno rimosse
 

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
Si il punto non è questo. A parte che lo script lo ha generato dreamweaver e ha sempre funzionato...
La questione è quella riportata sopra.

Aspetto intervenga borgo Italia:)
 
Ultima modifica:

mr.x

Utente Attivo
9 Apr 2016
252
25
28
prova a correggere così, la logica è la stessa che ti hanno gia indicato ma adattata a joomla
PHP:
define( '_JEXEC', 1 ); //equivale a session_start()

define( 'JPATH_BASE', $_SERVER['DOCUMENT_ROOT'] . "/tuorootpath" ); // la root del tuo sito

require_once ( JPATH_BASE. '/includes/defines.php' );
require_once ( JPATH_BASE. '/includes/framework.php' ); //importo le librerie joomla
$mainframe = JFactory::getApplication('site');
$mainframe->initialise();
$user = JFactory::getUser();  //estrai dati utente
$nome_utente = $user->name; // prendi il nome utente

se l'utente non è loggato hai $user->id settato a 0, potrebbe tornarti utile per farti un if e settare vuota la variabile $nome_utente nel caso non sia loggato. A te la scelta su come usarlo al meglio.
 

cobra_72

Nuovo Utente
13 Lug 2017
24
0
1
48
ciao
appunto, se l'utente si logga (immagino user e pass) verifichi nel db che user e pass esistano, immagino che in quella pagina tu faccia una select per cercare user e pass tipo
PHP:
<?php
session_start();
//... connessine e altro
//e ricevi dal form $user e $pass tramite i $_POST
$user=$_POST['user'];
$pass=$_POST['pass'];
//gli opportuni controlli

$query="SELECT * FROM tabella WHERE user='$user' AND pass='$pass'";
$ris=mysqli_query($connessione, $query);
//controlli l'esistenza
if(mysqli_num_rows($ris) < 0){
    //non registrato quindi rimandi a dove vuoi
}else{
    //utente registrato
    //estrati passi in sessione il suo id
    $riga=mysqli_fetch_assoc($ris);
    $_SESSION['id']=$riga['id'];
    //e qui fai quello che devi fare
}
//...
?>
poi nella pagina che ti interessa
PHP:
<?php
session_start();
//verifichi che la sessione esista
if(!isset($_SESSION['id'])){
    //la sessione non esiste quindi riinvii
    header('location:dove_vuoi.php');
    exit();
}
//la sessione esite
//dati ci connessione
$query="SELECT * FROM tabella WHERE id=".$_SESSION['id'];
//e estrai i dati che ti servono
$ris=mysqli_query($connessione, $query);
$riga=mysqli_fetch_assoc($ris);
$nome=$riga['nome'];
$email=$riga['email'];
//ecc....
//e usi le variabili dove e come ti servono

?>
guarda che ho messo nomi a caso, evidente che devi mettere quelli che hai tu


Sto provando questo script ma mi restituisce il seguente errore:
Warning: session_start(): Cannot send session cache limiter - headers already sent
 
Discussioni simili
Autore Titolo Forum Risposte Data
F [PHP] joomla - responsive photo gallery Joomla 6
Fuego2806 [PHP] Errore 500 Internal Server Error - sito Joomla! Joomla 10
Fuego2806 [Joomla] [PHP] Joomla 4
Fuego2806 Problema file index.php joomla PHP 1
felino Joomla 3.x - Configurazione PHP Mail Joomla 0
D Cerco Collaboratore in gradio di creare siti in wordpress, joomla, e PHP Offerte e Richieste di Lavoro e/o Collaborazione 7
L Problema menu php in sito joomla PHP 0
S Cercasi programmatori php meglio se conoscono la piattaforma joomla Offerte e Richieste di Lavoro e/o Collaborazione 7
N Inserimento valori da Joomla a database MySql tramite PHP Joomla 0
V Recuperare dati utente joomla 3 in file php esterno Joomla 0
M inserire codice php in articolo joomla Joomla 2
U passare una variabile di sessione da pagina di joomla a pagina php Joomla 3
P Easy Php ed installare Joomla 1.5.23 in locale Joomla 4
A Configurare una applicazione PHP in Joomla Joomla 2
D Joomla: Codice php per visualizzare solo prime righe di un articolo da DB Joomla 4
M Joomla: integrazione con moodle [era: c'è un modo in php moodle joomla] Joomla 3
P Sito creano con Joomla con sottominio che reindirizza a sito esterno Domini 1
L Analytics non registra hits su sito creato con Joomla Google Analytics 1
Licantropo [MySQL] Da file .doc a DB a Joomla MySQL 2
Licantropo [Joomla] Nuovo progetto community locale Joomla 18
S A PAGAMENTO cerco per installazione template joomla Offerte e Richieste di Lavoro e/o Collaborazione 2
A [Joomla] Dominio compromesso da malware Domini 9
A Problema sito web - Joomla Presentati al Forum 1
M [Joomla] Inserimento wow.js in template Joomla 4
Eugene [Joomla] [VM 3.2.14] Joomla 0
C Impostazione permessi cartella locale Joomla Joomla 4
C [Joomla] [HTML] Modifica codice per adattamento app Joomla 18
Eugene [Joomla] Problemi con modulo per strutture alberghiere JHotelreservation starter Joomla 6
Licantropo [Joomla] Cerco esperto Kunena Offerte e Richieste di Lavoro e/o Collaborazione 3
A Problema con Joomla Joomla 1
F [Joomla] Caratteri speciali si vedono tutti sbagliati su Safari Joomla 2
Licantropo [Joomla] Equo canone annuo Joomla 9
C [Joomla] Copia di un sito web "statico" in locale Joomla 3
D [HTML] Consiglio su sito Joomla Joomla 6
M [Joomla] Sito per agenzia viaggi Joomla 0
K Joomla: Modulo contatti in SP simple portfolio Joomla 0
G [Photoshop][Joomla] Errore visualizzazione immagine Photoshop 1
andrew1975 [Joomla] nascondere lo slider Joomla 1
Fuego2806 [Joomla] Problema di login con il nuovo template Joomla 0
K [Joomla] Visualizzazione anteprima diversa dalla demo del template Joomla 0
Z HTTP ERROR 500 - La pagina non funziona - Joomla! Joomla 0
E [Joomla] Kunema Forum 5.0.3 Joomla 0
caygri Ci sarai il Joomla Day? Discussioni Varie 1
Max 1 Realizzo template (temi) per WordPress, Blogger, Joomla, Drupal e DotNetNuke Altri Annunci 1
angelo85 Sito joomla che permetta agli utenti di inviare mail Joomla 2
andreas88 [Joomla] Problema Spam pagina principale sito web Joomla 1
beniculturalionline Cerco socio/collaboratore per sito in Joomla (anche gemellaggio tra siti web) Offerte e Richieste di Lavoro e/o Collaborazione 1
M [Joomla] file di configurazione html Joomla 4
Fuego2806 [Joomla] [URGENTE] iubenda Joomla 1
felino Joomla hackerato: sito web compromesso SEO e Posizionamento 7

Discussioni simili