[RISOLTO]domande varie su creazione sito con php, mysql e phpmyadmin

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
Ciao a tutti , sono nuovo del forum, ma vi seguo sempre e date sempre ottimi consigli, vi chiedo un aiuto, sto creando un sito in php ed alcune parti in html, il tutto collegato con un db creato con phpmyadmin, l'aiuto che vi chiedo è questo:
1) desideravo avere più password, in modo che l'amministratore si registra con una determinata password, e può accedere al pulsante admin, che lo collegherà al pannello di controllo del db, tramite phpmaker

2)una password per gli utenti che si sono registrati, e che perciò quando si loggano possono vedere i prodotti

3) creare un menù di selezione(non so come definirlo, perchè non è un menu a tendina, ne dropdown, ne un menu laterale adesso posto l'immagine del menu), è quello in cui si clicca sopra una sezione e ti appaiono i prodotti su cui clicchi, http://www.innovativewear.com/catalogo/10-t-shirt, il menu che vorrei creare è quello sotto il nome filtra i risultati

4)come creare una ricerca all'interno del sito.
Vi ringrazio già in anticipo, spero mi possiate aiutare, xchè sinceramente non so come fare
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, troppe domande nella stessa discussione
teniamo buone le prime due che richiedono la stessa soluzione
Nella tabella utenti che sicuramente dovrai avere aggiungi un campo "tipoutente" che potrà essere "ADMIN" o "USER" in base a quello deciderari cosa far vedere
edit
chiudo l'altra discussione che hai aperto perchè uguale a questa
 
Ultima modifica:

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
Ciao, troppe domande nella stessa discussione
teniamo buone le prime due che richiedono la stessa soluzione
Nella tabella utenti che sicuramente dovrai avere aggiungi un campo "tipoutente" che potrà essere "ADMIN" o "USER" in base a quello deciderari cosa far vedere
edit
chiudo l'altra discussione che hai aperto perchè uguale a questa

ciao, intanto grazie mille per la risp, ok aggiungero questo campo, ma per decidere cosa far vedere devo fare una query di controllo sull'utente ?? non saprei come farla.....
ciao grazie
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Prova a guardare qui E' molto simile a quello che ti serve
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
aiuto con php

Ciao a tutti, avrei bisogno di aiuto, praticamente volevo creare una pagina di login, da dove accedessero sia l'admin che gli agenti che gli utenti normali, il problema è che io ho un db con una tabella admin, una tabella attivita(ovvero i clienti) ed una tabella loginagenti, questo perchè hanno informazioni diverse, quello che desidererei fare è appunto quello che dalla pag di login sia l'admin che l'agente che l'utente si loggino, ma in base al login vengano reindirizzati ognuno alla pag di competenza, come posso fare??
Devo creare una tabella nuova, con ruoli e id relativi all'admin, agenti, e clienti??
vi ringrazio in anticipo
p.s. utilizzo phpmyadmin, php, html
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
secondo me devi avere una tabella unica tipo chiamata es. utenti:
id int(9) autoincrement primarykey
nome varchar(50)
password varchar (50)
autorizzazione set 'A', 'R', 'C' //admin, agenti, clienti
poi quando verifichi il log qualcosa del genere che in funzione del campo autorizzazioni riinvia alla pag che vuoi
PHP:
<?php
//......
//dati di connessione.....
$q=mysql_query("SELECT * FROM utenti WHERE nome='$nome' AND password='$password'");
if(mysql_num_rows($q) > 0){//utente loggato
	$riga=mysql_fetch_array($q);
	switch($riga['autorizzato']){
		case "A":
			header("location: pagina_admin.php");
		break;
		case "R":
			header("location: pagina_agenti.php");
		break;
		case "C":
			header("location: pagina_clienti.php");
		break;
		default:
			header("location: index.php");
		break;
	}
	exit();
}else{//errore di log
	header("location: index.php");
	exit();
}
?>
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
ciao
secondo me devi avere una tabella unica tipo chiamata es. utenti:
id int(9) autoincrement primarykey
nome varchar(50)
password varchar (50)
autorizzazione set 'A', 'R', 'C' //admin, agenti, clienti
poi quando verifichi il log qualcosa del genere che in funzione del campo autorizzazioni riinvia alla pag che vuoi
PHP:
<?php
//......
//dati di connessione.....
$q=mysql_query("SELECT * FROM utenti WHERE nome='$nome' AND password='$password'");
if(mysql_num_rows($q) > 0){//utente loggato
	$riga=mysql_fetch_array($q);
	switch($riga['autorizzato']){
		case "A":
			header("location: pagina_admin.php");
		break;
		case "R":
			header("location: pagina_agenti.php");
		break;
		case "C":
			header("location: pagina_clienti.php");
		break;
		default:
			header("location: index.php");
		break;
	}
	exit();
}else{//errore di log
	header("location: index.php");
	exit();
}
?>






ciao grazie mille per la risposta, adesso ci provo, ma volevo chiederti come setto questa parte nel db??(autorizzazione set 'A', 'R', 'C' //admin, agenti, clienti)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
vai su phpmyadmin o crei una nuova tabella o aggiungi il campo ad una esistente.
non so che versione hai, ma sulla mia quando crei un campo (nuova o aggiunta) ti chiede e su:
Field : scrivi il nome del campo
Type : selezioni SET
Length/Values : scrivi 'A', 'R', 'C' (ricorda: apici e separati da virgola)
diventa un campo che accetta solo quei tre valori

p.s.
puoi usare anche il tipo simile ENUM
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
ciao
vai su phpmyadmin o crei una nuova tabella o aggiungi il campo ad una esistente.
non so che versione hai, ma sulla mia quando crei un campo (nuova o aggiunta) ti chiede e su:

diventa un campo che accetta solo quei tre valori

p.s.
puoi usare anche il tipo simile ENUM



grazie davvero tante mi stai salvando :-D
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
problema con mysql_fetch_array

Ciao mi stai già aiutando tantissimo spero che puoi ancora, adesso provo a spiegare il mio problema
praticamente il mio mysql_fetch_array($q), mi da null, nonostante il db sia pieno, if(mysql_num_rows($q)>0) funziona correttamente, tranne che quando faccio var_dump($q['nome']) relativo al mio db non mi trova nulla, di conseguenza il fetch_array mi da sempre null, ho letto in giro su internet che è un bug, ma non so come risolverlo, perchè ne ho di bisogno, in quanto devo recuperare i dati dal db per il controllo del login in base ai ruoli, mi sapreste dare una soluzione, gentilmente, sono nei guai.
Grazie a tutti e spero di essermi spiegato
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
...giro su internet che è un bug
no è una bufala, quando qualcuno non riesce a trovare l'errore (spesso gnocco) da la colpa all'innocente php.
il problema potrebbe essere un altro.
che versione di php hai?
se hai PHP 5.5.0 le vecchie istruzioni mysql sono deprecate e danno un warning, se la versione è inferiore stai sbagliando qualcosa.
comunque, indipendentemente dalla versione, ti conviene abbandonare le vecchie mysql
(es vedi http://it2.php.net/manual/en/function.mysql-query.php) e passare alle istruzioni mysqli.
se le usi con stile procedurale sono molto simili alle vecchie(http://it2.php.net/manual/en/mysqli.query.php).
fatta la premessa, posta il codice che stai usando (cercando di) e vediamo se si pesca l'errore
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
PHP:
<?php

	session_start();// come sempre prima cosa, aprire la sessione 
include("config.php");
//Domanda 1: Da Accesso.php tu mandi i dati via form POST perchè non vedo $_POST['username'] ma vedo $nome?


 $_SESSION['username'] = $_POST['username'];
 $_SESSION['password'] = $_POST['password'];
 
$q=mysql_query("SELECT * FROM utenti WHERE nome='".$_POST['username']."' AND password='".$_POST['password']."'");
//var_dump("SELECT * FROM utenti WHERE nome='".$_POST['username']."' AND password='".$_POST['password']."'"); exit(); //Questo è il var_dump corretto

if(mysql_num_rows($q)>0){//utente loggato
var_dump($q['password']);exit();
//var_dump(mysql_num_rows($q)>0);exit();
	$riga=mysql_fetch_array($q);
	//var_dump($riga=mysql_fetch_array($q));exit();
	switch($riga['autorizzazione']){ 
	
		case "A":
			header("Location:y1gujl771a.php");	//L'header location va seguito sempre da un exit
			exit;
		case "R":
			header("Location:prodottiAgenti.php");
			exit;
		case "C":
			header("Location:clientiTop.php");
			exit;
			default:
				header("Location:index.html");
				exit;
	}
	exit();
}else{//errore di log 
	header("Location:index.php");
	exit();
}
?>

ho saputo da poco del sqli, perchè non è molto che uso php, cmq adesso guarderò il link grazie mille
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
alcune cosette:
1) scrivi
PHP:
var_dump($q['password']);exit();
se metti l'exit in quel punto lo script fa il var_dump e poi muore, a parte che non puoi leggere li la pass
gli exit si mettono per sicurezza dopo gli header location per evitare che se c'è un errore si possa accedere comunque
2) sessioni
devi valorizzare le sessioni solo (e solo se) il log è andato a buon fine, poi le sessioni ti serviranno per proteggere le pagine riservate.
3) cosa intendi con quel commento
//Domanda 1: Da Accesso.php tu mandi i dati....
se non leggi i $_POST probabilmente hai fatto un errore sui nomi dei campi di input o nel post

se hai pazienza ti posto uno schma di pag di log
come versione di php utilizzo la 5.5.0 con easyphp
allora devi usare mysqli
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco lo schema, ho fatto due pagine, una con il form in cui inserire user e pass che punta alla pag di verifica
e la pagina pagina_verifica.php che verifica che user e pass siano esistenti e che in funzione dell'autorizzazione smista alle varie pagine riservate

pagina_del_form.php
PHP:
<form action="pagina_verifica.php" method="post">
   username 
   <input name="username" type="text" id="username">
   <br>
   password 
   <input name="password" type="password" id="password">
   <br>
   <input name="log" type="submit" id="log" value="log">
</form>
pagina_verifica.php
PHP:
<?php
session_start();
if(trim($_POST['username']) =="" || trim($_POST['password']) ==""){
	//o user o pass vuoti: errore, torni al form pulito
	header("location: pag_del_form.php");
	exit();
}
$username=addslashes($_POST['username']);
$password=addslashes($_POST['password']);//sarebbe meglio che la pass fosse codificata nel db
require_once "config.php";//usa il require non l'include
//USO LE VECCHIE mysql perche faccio prima, ma studiati mysqli
$query="SELECT * FROM utenti WHERE nome='$username' AND password='$password'";
$ris=mysql_query($query);
if(mysql_num_rows($ris) == 0){
	//user o pass non esistenti
	header("location: index.php");//o riinvii dove vuoi
	exit();
}else{
	$riga=mysql_fetch_array($ris);
	$_SESSION['user']=$username;//non ti serve passare in sessione anche la pass
	$_SESSION['autorizzato']=$riga['autorizzazione'];//se hai chiamato così il campo
	switch($riga['autorizzazione']){ 
        case "A":
            header("Location:y1gujl771a.php");    //ti basta alla fine dell switch
        case "R":
            header("Location:prodottiAgenti.php");
        case "C":
            header("Location:clientiTop.php");
         default:
            header("Location:index.html");
    }
    exit(); 
}
?>
alla prossima come fare le pagine riservate
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
ciao, ti ringrazio per gli aiuti che mi dai, ma il problema persiste, anche con il tuo codice, praticamente quando mi loggo con le credenziali del admin, mi rimanda subito alla index che si trova subito dopo la if,
if(mysql_num_rows($ris) == 0){
var_dump($ris);exit();
//user o pass non esistenti
header("location:index.php");, mi rimanda a questa pag
exit();

il var_dump che si vede mi restituisce null, e non capisco il perchè, dato che nel db i dati ci sono, e la query che viene fatta è piena, riesci ad aiutarmi?
Grazie mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per prima cosa ti conviene commentare gli header per vedere i risultati, poi metti
PHP:
<?php
//....
$username=addslashes($_POST['username']);
$password=addslashes($_POST['password']);
var_dump($_POST['username']);
var_dump($_POST['password']);
//...
?>
e guarda cosa ti risulta, se uno dei due o entrambi NULL verifica i nomi dei $_POST che siano uguali a quelli che hai nei campi di input.
poi un dubbio: hai codificato le pass nel db? se si devi codificarle anche prima di verificarle, se es hai usata md5 devi mettere
PHP:
$password=md5($_POST['password']);//se usi md5 o simile non serve l'addaslashes
verifica inoltre i nomi dei campi in tabella con quelli che usi nella select e in $riga['autorizzazione']
e verifica anche il valore di
PHP:
<?php
//....
$riga=mysql_fetch_array($ris);
    $_SESSION['user']=$username;//non ti serve passare in sessione anche la pass
	var_dump($riga['autorizzazione']);
    $_SESSION['autorizzato']=$riga['autorizzazione'];//se hai chiamato così il campo
    switch($riga['autorizzazione']){  
//.....
?>
 

Davide Ferlazzo

Nuovo Utente
30 Set 2013
27
0
0
il var_dump($riga['autorizzazione']) non mi da risultati pagina bianca, sarà li l'errore? perchè username e pass sono completi
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto hai una ragione, mi sono dimenticato nello switch di inserire tutti i break, correggi
PHP:
<?php
//....
    switch($riga['autorizzazione']){ 
        case "A":
            header("Location:y1gujl771a.php");    //ti basta alla fine dell switch
			break;
        case "R":
            header("Location:prodottiAgenti.php");
			break;
        case "C":
            header("Location:clientiTop.php");
			break;
         default:
            header("Location:index.html");
			break;
    }
    exit();  
//...
?>
è l'arteriosclerosi.
poi comunque se il var_dump($riga['autorizzazione']) ti da vuoto verifica che il campo autorizzazione:
1. esista
2. sia valorizzato a 'A' o 'R' o 'C'
3. che il nome che hai in $riga sia uguale a quello del campo.
se è vuoto o diverso da A, R, C esegue per forza la clausola default dello switch quindi ti riporta alla index anche se user e pass esistono
 
Discussioni simili
Autore Titolo Forum Risposte Data
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili