Vai al contenuto

Piccolo aiuto in php...


Apple2k

Messaggi raccomandati

ciao a tutti..

questo è un semplice codice in php che verifica se l'username e password sono presenti in una tabella del db.. la richiesta è semplice.. alla fine del codice c'è..

<?php

$host="localhost"; // Hostname

$username="root"; // Mysql username

$password="root"; // Mysql password

$db_name="sito web"; // Nome del Database

$tbl_name="utenti"; // Nome della Tabella

// Procedimento per connettersi al Database

mysql_connect("$host", "$username", "$password")or die("cannot connect");

mysql_select_db("$db_name")or die("cannot select DB");

// Nome utente e password inviate attraverso il form

$myusername=$_POST['myusername'];

$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

// Mysql_num_row is counting table row

$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"

session_register("myusername");

session_register("mypassword");

header("location:logsuccess.php");

}

else {

echo "<font color=\"white\" face=\"tahoma\" size=\"2\">Attenzione! username o password errati...";

}

?>

<Html>

<br>

<Font size="2" font color="white" face="tahoma">

clicca <a href="logmain.php">qui</a> per tornare al modulo di autenticazione </font>

</html>

questa pagina php cosa fa... dopo aver effettuato la connessione al db prende da un form l'username e password e controlla se nella tabella utenti è presente un record avente i valori di questi 2 campi... se è vero fa apparire la pagina logsuccess.php.. se è falso dà l'errore.. quindi fa essenzialmente 2 cose..

a ma servirebbe che facesse 3 cose.. cioè 1) se l'username e password sono admin ed admin allora fa automaticamente apparire una certa pagina (che poi decido io) 2) se l'username e psw non sono admin admin ma comunque appartengono alla tabella utenti fa affarire un'altra pagina 3) se l'username e la password non appartegono allora stampa il msg di errore come nell'esempio.

Ho fatto diverse prove ma non sono andate a buon fine...

voi riuscite ad indirizzarmi?

vi ringrazio in anticipo

Link al commento
Condividi su altri siti

per capirci.. vi mostro una parte di codice che spiega cosa voglio fare.. ma non funziona

cosa sbaglio nella sintassi?

$myusername=$_POST['myusername'];

$mypassword=$_POST['mypassword'];

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

// Mysql_num_row is counting table row

$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

if($myusername='admin'){

session_register("myusername");

session_register("mypassword");

header("location:adminsuccess.php");

}

if($count==1){

// Register $myusername, $mypassword and redirect to file "usersuccess.php"

session_register("myusername");

session_register("mypassword");

header("location:usersuccess.php");

}

else {

echo "<font color=\"white\" face=\"tahoma\" size=\"2\">Attenzione! username o password errati...";

}

Link al commento
Condividi su altri siti

grazie 100000000 x la risp..

corretto.. ma non va..

perché anche effettuando il log con admin come username mi mostra la pagina usersuccess.php (anzichè adminsuccess) ovvero quella che deve uscire per tutti gli altri utenti che non hanno come username admin.

come si fa? :fiorellino:

Link al commento
Condividi su altri siti

ok risolto.. ho usato un altro costrutto.. il precedente era forse sintatticamente sbagliato.. ho utilizzato l'elseif.. e vi riporto qui il codice

if($count==1 && $myusername=='admin'){

session_register("myusername");

session_register("mypassword");

header("location:logadminsuccess.php");

}

elseif($count==1){

// Register $myusername, $mypassword and redirect to file "usersuccess.php"

session_register("myusername");

session_register("mypassword");

header("location:logusersuccess.php");

}

else {

echo "<font color=\"white\" face=\"tahoma\" size=\"2\">Attenzione! username o password errati...";

}

grazie cmq bau86..

risolto! :love:

Link al commento
Condividi su altri siti

prego..comunque non era sintatticamente errato...semplicemente potevi usare un altro else..il problema era che eseguiva entrambi gli if...ma elseif va bene lo stesso..

questo codice è equivalente a quello con elseif:

if($count==1 && $myusername=='admin'){

session_register("myusername");

session_register("mypassword");

header("location:adminsuccess.php");

}

else{

if($count==1){

// Register $myusername, $mypassword and redirect to file "usersuccess.php"

session_register("myusername");

session_register("mypassword");

header("location:usersuccess.php");

}

}

:love::ciao::love:

Link al commento
Condividi su altri siti

eccomi di nuovo quì.. ultimissima cosa dopo di che il sito che sto preparando è bello che finito..

mi rivolgo soprattutto a bau86 che mi ha aiutato..

in pratica mi serve solo questo:

abbiamo 3 tabelle..

1) utenti (IDutente, nome, cognome, ecc. ecc.)

2) prodotti IDprodotto, nome, descrizione, PREZZO ecc. ecc.)

3) ordini (ID, IDUTENTE, IDPRODOTTO, PREZZO, QUANTITA, TOTALE)

ecco come avviene l'acquisto..

l'utente in un form scrive solo l'id prodotto e la quantità... (e in effetti dopo aver premuto il tasto acquista sql prende i 2 dati e li scrive nella tabella ordini regolarmente..) mancano gli altri dati (idutente, prezzo e totale) che vorrei si caricassero automaticamente

quindi:

1) l'id utente.. o anche solo l'username.. giacchè abbiamo effettuato il login (per associare l'idutente cn l'acquisto)

2) il prezzo dell'articolo (che si trova nella tabella prodotti) visto che nel form ha già acquisito l'id del prodotto

3) una moltiplicazione tra il prezzo e la quantità che scrive il risultato in totale

in conclusione

il punto 3 non è difficile e posso arrivarci.. ma x l'1 ed il 2 non so da dove cominciare..

xkè x il primo deve riconoscere chi è l'utente dalla sessione e prendere l'idutente..

e x il secondo deve prendere il prezzo dopo aver ricevuto l'idprodotto..

ho ripetuto le cose per chiarezza.. :ghghgh:

come si fa?

:ghghgh:

se mi indirizzate e ci riesco è praticamente finito.. :)

ecco il codice che ho prodotto fin'ora.. cosa devo aggiungere?

<?php

require_once '../include/config.php';

require_once '../include/database.php';

$idart = $_POST['idart'];

$quantita = $_POST['quantita'];

$sql="INSERT INTO ordini (idart , quantita)

VALUES ('$idart','$quantita');";

$result=dbQuery($sql);

?>

Link al commento
Condividi su altri siti

1)per il punto 1 io farei così:

avrai sicuramente lo username dell' utente memorizzato in qualche variabile di sessione, quindi basta fare una query sul database simile a questa "select id from utenti where username='username'). A questo punto con mysql_fetch_assoc estrai l' id dal risultato.

Ora hai l' id dell' utente

2)si può fare una cosa simile anche per il prezzo. fai una query del tipo "select prezzo from prodotti where id='id_inserito_dalla_form').

Ora hai anche il prezzo del prodotto e puoi fare la insert in ordini.

Non sono granchè nello spiegarmi..ma se ti serve aiuto chiedi ancora...:confused:

Link al commento
Condividi su altri siti

ok ok sono tornato adesso.. letto.. e grazie della disponibilità..

cercherò di risolvere.. già mi hai indirizzato.. il vero problema è la sintassi..

diciamo che le variabili le so mettere al punto giusto ma finché il tutto mi esca sintatticamente corretto mi sa che devo fare un bel pò di prove.. ora coi tuoi suggerimenti cerco qualche codice di esempio e se proprio non ci riesco sarò costretto a chiederti ancora aiuto... l'esame è vicino! :)

cmq grazie.. era scontato..

Link al commento
Condividi su altri siti

allora non ci sono riuscito... diciamo che l'80% credo di averlo realizzato però..

facciamo così.. andiamo per gradi.. ti faccio un esempio "semplice".. che se riesci (gentilmente e senza disturbo) a fare il codice e va bene poi lo riesco ad adattare per lo scopo reale..

allora.. ci sono 4 pagine:

1) mainlogin.php

2) checklogin.php

3) userloginsuccess.php

4) paginacentrale.php

1) in main login.php è presente un form che chiede myusername e mypassword...

2) checklogin.php controlla se la coppia myusername e mypassword trova 2 valori corrispondenti ad username e password nella tabella id.. se c'è apre la sessione e carica la pagina userloginsuccess.php

3)userloginsuccess.php presenta un link che mi manda ad una pagina accanto (paginacentrale.php)

3)paginacentrale.php deve mostrare l'username che ho digitato in main login...

come faccio il passaggio di questa variabile?

è simile al funzionamento quando si effettua il login e ti scrive ciao, username.. solo che non lo fa nella stessa pagina.. ma lo fa in una pagina diversa..

Link al commento
Condividi su altri siti

per passare lo username, o in generale una variabile, da una pagina all' altra le devi memorizzare in $_SESSION.

ad esempio in checklogin scrivi:

session_start(); //apre una nuova sessione

dopodichè fai la query per verificare la correttezza dello username e password

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

$count=mysql_num_rows($result);

if($count==1){

$_SESSION['user'] = $myusername;

}

else{

session_destroy();

}

in tutte le altre pagine, per esempio paginacentrale continua a mettere all'inizio dello script

session_start();

questa trova la sessione che hai aperto precedentemente e quindi puoi accedere a $_SESSION e recuperare lo username in queso modo:

$user=$_SESSION['user'];

ora puoi usare $user per visualizzare lo username...

mi spiace ma non ho molto tempo per scrivere tutto il codice...se hai problemi contattami tramite ichat...forse riesco ad aiutarti meglio..

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...