- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema login
-
A parte che avresti fatto meglio a scrivere cosi:
header("location:accept.php?msg=".$messaggio);
Ricorda che php vuole sempre l'url completo...pertanto ti suggerisco di fare cosi:echo" <script type="text/javascript">
<!--
function doRedirect() {
location.href = "accept.php?msg=$messaggio";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";
-
@ilnetsurfer said:
A parte che avresti fatto meglio a scrivere cosi:
header("location:accept.php?msg=".$messaggio);
Ricorda che php vuole sempre l'url completo...pertanto ti suggerisco di fare cosi:echo" <script type="text/javascript">
<!--
function doRedirect() {
location.href = "accept.php?msg=$messaggio";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";Ciao, a parte la correzione che poi farò, lo script di login_2
perchè non va, anche se metto i dati giusti?
mi passa direttamente all'else "dati non corretti"ciao e grazie
-
Nel file accept, prova cosi:
<?php
$msg=$_GET['msg'];
switch($msg){
case 1:
echo "Non hai inserito una username corretta";
break;
case 2:
echo"Non hai inserito una password corretta";
break;
default:
echo"Errore non identificato";
break;
}
?>E nel file login2.php, modificare questa stringa:
if($username=="")
{
$messaggio=urlencode("Non hai inserito la user");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
if($password=="")
{
$messaggio=urlencode("Non hai inserito la pass");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
Cosi:if($username=="")
{
echo" <script type="text/javascript">
<!--
function doRedirect() {
location.href = "accept.php?msg=1";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";exit;
}
if($password=="")
{echo" <script type=\"text/javascript\">
<!--
function doRedirect() {
location.href = "accept.php?msg=2";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";
exit;
}
-
@ilnetsurfer said:
Nel file accept, prova cosi:
<?php
$msg=$_GET['msg'];
switch($msg){
case 1:
echo "Non hai inserito una username corretta";
break;
case 2:
echo"Non hai inserito una password corretta";
break;
default:
echo"Errore non identificato";
break;
}
?>E nel file login2.php, modificare questa stringa:
if($username=="")
{
$messaggio=urlencode("Non hai inserito la user");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
if($password=="")
{
$messaggio=urlencode("Non hai inserito la pass");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
Cosi:if($username=="")
{
echo" <script type="text/javascript">
<!--
function doRedirect() {
location.href = "accept.php?msg=1";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";exit;
}
if($password=="")
{echo" <script type="text/javascript">
<!--
function doRedirect() {
location.href = "accept.php?msg=2";
}
window.setTimeout("doRedirect()", 10); //Fa partire il redirect dopo tot. secondi
//-->
</script>";
exit;
}Ciao, ho fatto come mi hai chiesto
ma a cambiare sono soli i messaggi
cmq non riesco a passare il login
forse qualche errore nelle sessioni?grazie e ciao
-
ok, ho risolto, adesso potreste farmi capire come faccio ad evitare
a qualche mascalzoncello di visitare direttamente una pagina che si trova dopo il login?vi spiego
esempio:pagina di login
una volta inserita la user e la pwd mi manda in prima.php
adesso vorrei evitare che qualcuno vada direttamente in prima.php
senza prima aver fatto il login, indirizzandolo di nuovo alla pagian di login.phpecco il codice[PHP]
session_start();
//richiamo il file di configurazione
require 'Config.php';
//richiamo il file di connessione
require 'Connect.php';if(isset($_POST['txtuser']))
{
$username=$_POST['txtuser'];
$password=$_POST['txtpassword'];if($username=="")
{
$messaggio=urlencode("Non hai inserito la user");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
if($password=="")
{
$messaggio=urlencode("Non hai inserito la pass");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}//$password = md5($pwd);
$query="select * from plimun where user='$username' AND pwd='$password'";
$result=mysql_query($query)or die(mysql_error());
if($dati=mysql_fetch_array($result,MYSQL_ASSOC))
{
$_SESSION['valid_user']=isset($_POST['username']);
$_SESSION['valid_pass']=isset($_POST['password']);
$_SESSION['valid_time']=time();
header('location:'.'../menu.php');
}
else
{
$messaggio=urlencode("dati non corretti");
header('location:'.'accept.php'.'?msg='.$messaggio);
exit;
}
}
[/PHP]poi ho altre 2 cose da dirvi
in session valid_time va messo qualcosa?perchè quando cerco di criptare la pwd mi da errore?
grazie a tutti
-
ciao
una è andata
ho fatto così
[PHP]if(isset($_SESSION['valid_user'])== 0)
{
$messaggio=urlencode("Ti consiglio di loggarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}[/PHP]potete aiutarmi sulle altre domande?
grazie
-
Rieccomi, un saluto a tutti
sto facendo un casino, perchè pensavo di aver risolto, invece mi ritovo punto e a capo.
vi ricordate del mio problema n.1?
evitare che qualcuno possa vedere le pagine di amministrazione, senza prima essersi loggato.
io ho scritto una cosa del genere nella pagina che dovrebbe apparire
appena essermi loggato
[PHP]
if(isset($_SESSION['username'])== 0)
{
$messaggio=urlencode("Ti consiglio di autenticarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}
else
{
//<div align='center'>
echo"<table border='0' cellpadding='0' cellspacing='0' width='605' height='79'>";
echo"<tr>";
echo"<td width='34' height='79' rowspan='3'>
<img border='0' src='immages/active_curva_sx.gif' width='33' height='93'></td>";
echo"</tr>";
echo"</table>";
}
[/PHP]quando provo a loggarmi mi da sempre lo stesso messaggio
ti consiglio di autenticarti
potreste farmi capire dove sta l'intoppo?
grazie a tutti
-
@danny1975 said:
Rieccomi, un saluto a tutti
sto facendo un casino, perchè pensavo di aver risolto, invece mi ritovo punto e a capo.
vi ricordate del mio problema n.1?
evitare che qualcuno possa vedere le pagine di amministrazione, senza prima essersi loggato.
io ho scritto una cosa del genere nella pagina che dovrebbe apparire
appena essermi loggato
[php]
if(isset($_SESSION['username'])== 0)
{
$messaggio=urlencode("Ti consiglio di autenticarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}
else
{
//<div align='center'>
echo"<table border='0' cellpadding='0' cellspacing='0' width='605' height='79'>";
echo"<tr>";
echo"<td width='34' height='79' rowspan='3'>
<img border='0' src='immages/active_curva_sx.gif' width='33' height='93'></td>";
echo"</tr>";
echo"</table>";
}
[/php]quando provo a loggarmi mi da sempre lo stesso messaggio>ti consiglio di autenticarti >```potreste farmi capire dove sta l'intoppo? grazie a tutti Prova cosi: if(isset($_SESSION['username']))
-
ciao, ho provato come mi hai detto
[PHP]
if(isset($_SESSION['username']))
[/PHP]
in questo modo riesco a vedere la pagina successsiva al login,
però c'è un problema,
ti spiego meglio
ho la pagina login.php, dove m trovo davanti i campi da riempire
Username e Password
una volta scritto i dati correttamente dovrei vedere la pagina menu.php
fin qua ci siamo, però se tento di andare in modo diretto a menu.php
senza passare per la pagina di login.php riesco a farlo comunque.
Il mio problema è proprio questo
Ciò che voglio fare è quello di mandare un messaggio se qualcuno tenta di accedere alle pagine di amministrazione senza passare per il loginpenso di essere stato chiaro
ciao e grazie da danny
-
ciao, ho risolto facendo così e funziona
avevo scritto
questa parte
if($dati=mysql_fetch_array($result,MYSQL_ASSOC))
però a dati non avevo assegnato nessun valore
ed ho rimediato così
$username=$dati['user'];
$password=$dati['pwd'];
$_SESSION['username']=isset($_POST['username']);
$_SESSION['password']=isset($_POST['password']);fortunatamente funziona, però non rimando indietro soluzioni migliori
ciao da danny
-
Ciao ragazzi, che casino
dopo aver fatto l'ultima modifica, andava bene
ma quando aprivo le altre pagine di amministrazione del sito
mi dava un errore, allora ho inserito il codice
[PHP]
<?php
session_start();
if(!isset($_SESSION['username']))
{
$messaggio=urlencode("Ti consiglio di autenticarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}
?>
[/PHP]
nelle altre pagine di amministrazione
ma adesso ricevo il seguente errore**Notice**: A session had already been started - ignoring session_start() in **c:\programmi\easyphp1-8\www\gestione\menu.php** on line **2**
che tradotto
Avviso: Una sessione era già stato iniziato - ignorando session_start () in c: \ programmi \ easyphp1-8 \ www \ gestione \ menu.php on line 2
potete dirmi come faccio ad evitare questo errore?
grazie
-
c'è session_start ripetuto 2 volte, come dice l'errore...
-
@Thedarkita said:
c'è session_start ripetuto 2 volte, come dice l'errore...
ciao, come posso evitare questo errore?
grazie
-
toglierne 1?
-
@Thedarkita said:
toglierne 1?
l'hai scritto come se fosse una cosa semplice:o
se tolgo la sessione da menu.php l'errore svanisce, però posso visualizzare la pagina menu.php anche saltando la pagina di login, cosa non bene per il sito
sto usando le sessioni proprio per questo, per far si che qualche cattivello non possa accedere in modo diretto alle pagine di amministrazione, costringendolo a passare per il login
ciao
-
Aggiungere un file config.php in cui mettere la session_start in modo che venga aperta la sessione su tutti i file 1 volta sola?
-
@Thedarkita said:
Aggiungere un file config.php in cui mettere la session_start in modo che venga aperta la sessione su tutti i file 1 volta sola?
mmhh! il problema sembra essere uguale
penso di aver capito cosa tu voglia dirmi e lo fatto
ho messo 2 file config. e connect.php
connect.php
[PHP]<?php
session_start();
require'Config.php';
$link=mysql_connect($db_host,$db_user,$db_password);
if(!$link)
{
die("Non riesco a connettermi:".mysql_error());
}
$db_selected=mysql_select_db($db_name,$link);
if(!$db_selected)
{
die("Errore nella selezione del database:".mysql_error());
}
?>[/PHP]menu.php
[PHP]<?php
require 'Config.php';
require 'Connect.php';
if(!isset($_SESSION['username']))
{
$messaggio=urlencode("Ti consiglio di autenticarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="it">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pannello di controllo Area principale</title>
</head>
<body>
<div align="center">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="605" height="79" id="AutoNumber1">
<tr>
<td width="34" height="79" rowspan="3">
<img border="0" src="immages/active_curva_sx.gif" width="33" height="93"></td>
<td width="270" height="6" colspan="3">
<img border="0" src="immages/active_linea.gif" width="270" height="11"></td>
<td width="299" height="6" colspan="3">
<img border="0" src="immages/active_linea.gif" width="270" height="11"></td>
<td width="99" height="36" rowspan="3">
<img border="0" src="immages/active_curva_dx.gif" width="33" height="94"></td>
</tr>
<tr>
<td width="76" height="65" valign="top" bgcolor="#FFFFFF">
<a href="app_scelta_articolo.php">
<img border="0" src="immages/articolo.gif" width="90" height="68"></a></td>
<td width="76" height="65" valign="top" bgcolor="#FFFFFF">
<a href="app_scelta_categoria.php">
<img border="0" src="immages/categoria.gif" width="90" height="68"></a></td>
<td width="91" height="65" valign="top" bgcolor="#FFFFFF">
<a href="app_eye_contatto.php">
<img border="0" src="immages/contatto.gif" width="90" height="68"></a></td>
<td width="9" height="65" valign="top" bgcolor="#FFFFFF">
<a href="app_eye_ordine.php">
<img border="0" src="immages/ordine.gif" width="90" height="68"></a></td>
<td width="22" height="65" valign="top" bgcolor="#FFFFFF">
<img border="0" src="immages/newsletter.gif" width="90" height="68"></td>
<td width="107" height="65" valign="top" bgcolor="#FFFFFF">
<img border="0" src="immages/banner.gif" width="90" height="68"></td>
</tr>
<tr>
<td width="270" height="7" colspan="3"> <img border="0" src="immages/active_linea.gif" width="270" height="11"></td>
<td width="299" height="7" colspan="3">
<img border="0" src="immages/active_linea.gif" width="270" height="11"></td>
</tr>
</table>
</div>
</body>
</html>[/PHP]app_scelta_categoria.php
[PHP]
<?php
require 'Config.php';
require 'Connect.php';
if(!isset($_SESSION['username']))
{
$messaggio=urlencode("Ti consiglio di autenticarti");
header('location:'.'watch/accept.php'.'?msg='.$messaggio);
exit;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional/">
<html>
<head>
<title>Pannello di controllo Inserimento nuova categoria</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
include('menu.php');
?>
<br>
<?
include('Categoria/frm_categoria.php');
?>
</body>
</html>
[/PHP]penso di aver capito bene
mica il problema sta nel fatto che quando richiamo app_scelta_categoria.php richiamo menu.php?
-
usa require_once
-
@Thedarkita said:
usa require_once
Thedarkita, non so come ringraziarti, però vorrei sapere cosa c'è di diverso tra require e require_once
grazie ancora
-
require_once include il file 1 volta(se hai già incluso non lo include un altra volta), mentre require lo include sempre.