Login che reindirizza utenti a pagine web diverse in base alla password

Ciao a tutti . Sono un neofita assoluto di programmazione in generale e mi stò dilettando con PHP .

Ho un problema che non riesco a capire e mi servirebbe il vostro aiuto .

Vi spiego : dovrei realizzare un login in PHP utilizzando Mysql  . Il login deve essere reindirizzato verso pagine differenti in base all utente . Ho pensato di creare una tabella molto semplice di nome login dove ho come colonne : id , username , password , redirect .

Nella colonna redirect contavo di scrivere gli url ai quali vorrei reindirizzare gli utenti che si loggano ( una volta verificata l identita con user e password , ovviamente ) .

Già qui il primo dubbio : devo scrivere gli url nella classica forma http://www.sitodalinkare.com , oppure come ?

Ho trovato qualcosa in rete e l ho adattato alle mie esigenze , ma purtroppo non funziona in quanto non si sposta mai dalla pagina di login e non capisco il perché . Nemmeno se sbaglio volutamente il login visiono la pagina di errore presente nello script e nel contempo , se metto i dati corretti , resta ugualmente ferma lì come mai ?    Ve lo posto :

<?

$dbh=mysql_connect ("localhost", "miouserdatabase", "miapassworddatabase") or die ('Non posso connettermi al database perchè : ' . mysql_error());

mysql_select_db ("nomedelmiodatabase");

if(!isset($username) ||!isset($password)) {

// esce dal php e mostra la pagina di login

?>

<html>

<head>

<title>Login</title>

<head>

<body>

<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">

<p align="center">L' ingresso è riservato . Si prega di inserire i propri dati.</p>

<table align="center" border="0">

<tr>

<th>

Username:

</th>

<th>

<input type="text" name="username">

</th>

</tr>

<tr>

<th>

password:

</th>

<th>

<input type="password" name="password">

</th>

</tr>

<tr>

<th colspan="2" align="right">

<input type="submit" value="Login">

</form>

</th>

</tr>

</table>

</body>

</html>

<?

exit();

}

// inizio la query al database

$sql = mysql_query("SELECT password,redirect FROM login WHERE username = '$username'");

$fetch_em = mysql_fetch_array($sql);

$numrows = mysql_num_rows($sql);

if($numrows!= "0" & $password == $fetch_em["password"]) {

// login corretto quindi reindirizzato

$valid_user = 1;

header("Location: ".$fetch_em["redirect"]);

exit;

}

else {

$valid_user = 0;

}

// se invece non trova corrispondenza di dati

if (!($valid_user))

{

// esce dal php e mostra la pagina di errore dove viene richiesto di riprovare

?>

<html>

<head>

<title>Login</title>

<head>

<body>

<form action="<?=$php_SELF?><?if($QUERY_STRING){ echo"?". $QUERY_STRING;}?>" method="POST">

<p align="center">Le informazioni inserite non sono corrette. Si prega di riprovare.</p>

<table align="center" border="0">

<tr>

<th>

Username:

</th>

<th>

<input type="text" name="username">

</th>

</tr>

<tr>

<th>

password:

</th>

<th>

<input type="password" name="password">

</th>

</tr>

<tr>

<th colspan="2" align="right">

<input type="submit" value="Login">

</form>

</th>

</tr>

</table>

</body>

</html>

<?

exit();

}

?>

riuscite ad aiutarmi ? perché non procede ? si crea un loop per cui mi rimanda sempre e in ogni caso alla pagina di login principale perché ?

Và anche detto che una parte delle istruzioni presenti nello script neanche le conosco .. purtroppo non sono che un neofita .. ma ho voglia di imparare e migliorare .

Un grazie davvero grande a tutti in anticipo . Un saluto .

inviato 7 anni fa
tanaka
X 0 X

azz pausa pranzo finita... ok non ho letto il codice, ma la descrizione del problema si xD

dunque, se vuoi eseguire una serie di redirect in base all'utente, ti consiglierei di procedere così:

crea una tabella di login con i dati degli utenti e una tabella con i dati dei profili. con una FK leghi la login con i profili. così n utenti di equal profilo saranno redirectati nella medesima pagina.

potresti anche creare soltanto una tabella login e dare un flag numerico di redirect. lato script, controlli quel valore e istruisci lo script per redirectare dove serve.

per linkare qualsiasi cosa in locale, non serve tu indichi http://www.dominio.com/etc... bensì ti basta indicare una path relativa allo script (attenzione a qnd includi gli script dentro altri), ad esempio con "./dir1/etc" o con "/" per indicare la root del tuo filesystem.

risposto 7 anni fa
larchitetto
X 0 X

grazie mille larchitetto ....

purtroppo la mia ignoranza non mi permette di comprendere appieno ciò che hai cortesemente tentato di spiegarmi . Non ho idea ad esempio di cosa sia una FK ...

altra domanda : ma se volessi linkare ad un sito esterno ? potrei scrivere in tabella l' indirizzo come : http://sitodalinkare.com , oppure dovrei farlo in altro modo ?

grazie mille !

Ciao :bye:

risposto 7 anni fa
tanaka
X 0 X
purtroppo la mia ignoranza non mi permette di comprendere appieno ciò che hai cortesemente tentato di spiegarmi . Non ho idea ad esempio di cosa sia una FK ...

FK significa foreign key, cioè chiave esterna di una tabella.

altra domanda : ma se volessi linkare ad un sito esterno ? potrei scrivere in tabella l' indirizzo come : http://sitodalinkare.com , oppure dovrei farlo in altro modo ?

Puoi scriverlo come ti pare... non esiste una vera e propria regola.

Ciò significa che ti prendi il tuo progettino, carta e penna, e inizi a pianificare ciò che devi fare.

A quel punto, potrai decidere se ti conviene scrivere su una tabella in un modo o nell'altro!

se hai altre domande...

risposto 7 anni fa
larchitetto
X 0 X

Grazie mille !  :bye:

risposto 7 anni fa
tanaka
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda