- Home
- Categorie
- Coding e Sistemistica
- PHP
- Sono un principiante in panne
-
Sono un principiante in panne
Ciao a tutti,
volevo imparare a usare php, ma è più difficile di quanto pensassi....In particolare non riesco a risolvere questo strano errore:
Nome di directory non valido.
Che mi dà sia quando aggiorno(F5) una pagina che ho appena visualizzato, sia quando chiamo la stessa pagina scrivendo direttamente l'ìindirizzo nell'url, sia quando chiamo una pag. inesistente.
Non sò se mi sono spiegato bene () lo spiego meglio:
Ho una pagina index.php con un form per il login, facendo il login passo i dati a una pagina login.php che dopo i controlli manda l'utente a index.php in caso di login errato, altrimenti a home.php.
Fino a qui funziona tutto, il problema è che se aggiorno la pagina home.php con F5 mi dà quell'errore e mi dà lo stesso errore anche se, appena aperto il browser, scrivo l'url (http://lockit/BackPhp/gestione/home.php) ....e mi dà lo stesso errore pure se scrivo una qualsiasi URL http://lockit/BackPhp/gestione/fileInesistente.php
mentre se scrivo http://lockit/BackPhp/gestione/fileInesistente.asp mi dà il solito errore del server (HTTP 404)
INVECE
http://lockit/BackPhp/gestione/index.php
http://lockit/BackPhp/gestione/login.php
Non danno alcun problema........:bho: :bho: :bho:
Qualcuno mi sà aiutare
grazie
Lockit
-
Aiutooooooooooo
Non c'è nessuno che mi sà aiutare ????
è un problema bloccante
-
non è che ho capito molto bene,
ma sembrerebbe giusto non poter accedere a home.php (pagina che vuoi proteggere tramite login.php) senza immettere i dati da index.php e stessa cosa se aggiorni (poichè richiami la pagina direttamente dal server e non ha checkato i parametri di login).
per una risposta più esauriente dovresti almeno postare il codice per capire se setti bene le variabili di sessione.
-
Ecco il codice:
Home.php
<?php $strTitle = "Home"; session_start(); if (isset($_SESSION["lingua"])){ $_SESSION["lingua"] = "ITA"; } $RootFolder = "http://" . $HTTP_SERVER_VARS['HTTP_HOST'] . "/BackPhp"; $login = $RootFolder . "gestione/default.asp"; function apri_conn(){ $dbServer = "localhost"; $dbUser = "lockit"; $dbPass = ""; $dbName = "modello"; $conn = mysql_connect($dbServer, $dbUser, $dbPass); if(! $conn) die ("Errore nella connessione. Verificare i parametri nel file global.php"); mysql_select_db($dbName, $conn) or die ("Errore nella selezione del database. Verificare i parametri nel file global.php"); return $conn; } function redirect($url){ header("Location: $url"); } //include("control.php"); ?> <html> <SCRIPT LANGUAGE="JavaScript"> <!-- Begin: Fullscreen self.moveTo(0,0) self.resizeTo(screen.availWidth,screen.availHeight) // End --> </script> <head> <title><? echo $strTitle; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="<? echo "$RootFolder/css/stile.css"; ?>" rel="stylesheet" type="text/css"> </head> <body> <table width="750" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td><table width="100%" border="0"> <tr> <td>[url="home.php"]Home</td> </tr> <tr> <td>[url="profilo.php"]Profilo</td> </tr> <tr> <td>[url="storico.php"]Storico</td> </tr> </table> </td><td> **Buongiorno<?php echo $_SESSION["user"] ?> </td> </tr> <tr> <td align="center" colspan="2"><? echo date ("d-M-Y", time()); ?></td> </tr> </table> </body> </html>
login.php:
<html> <head> <title>login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <?php function apri_conn(){ $dbServer = "localhost"; $dbUser = "lockit"; $dbPass = ""; $dbName = "modello"; $conn = mysql_connect($dbServer, $dbUser, $dbPass); if(! $conn) die ("Errore nella connessione. Verificare i parametri nel file global.php"); mysql_select_db($dbName, $conn) or die ("Errore nella selezione del database. Verificare i parametri nel file global.php"); return $conn; } function redirect($url){ header("Location: $url"); } $RootFolder = "http://" . $HTTP_SERVER_VARS['HTTP_HOST'] . "/BackPhp"; $login = $RootFolder . "gestione/index.php"; $query = "SELECT * FROM accessi WHERE user = '$_POST[user]' AND pass = '$_POST[pass]'"; $rs = mysql_query($query, apri_conn()); $user = "undefined"; $pass = ""; while($row = mysql_fetch_array($rs)){ $user = $row[user]; $pass = $row[pass]; } if($user == "undefined"){ redirect("$login"); }else{ $_SESSION["user"] = $user; redirect("$RootFolder/Gestione/home.php"); } ?> </body> </html>
Naturalmente ci sono un po' di include, ma ho unito tutto il codice assieme per semplicità... e la pagina index.php è uno stupido form con due campi user e pass che vengono passati al login....
Come vedi però non c'è alcun tipo di controllo, sarebbe stato il passaggio successivo, ma ora sono bloccato
-
allora, mi sembra che ci siano diverse cose..
uno, io preferisco confrontare nella query invece che la variabile $_POST
la variabile di sessioneif (isset($_POST['username'])) { $Username=$_POST['username']; $password=$_POST['password'];
poi dichiarare una variabile di sessione
$_SESSION['Username'] = $Username;
e usare questa nella query sql
[code]$[code]query = "SELECT * FROM accessi WHERE user = '$_POST[user]' AND pass = '$_POST[pass]'";[/code]
diventa
[code]$query = "SELECT * FROM accessi WHERE user = '$_SESSION[username]' AND pass ='$_SESSION[password']";[/code]questo dovrebbe rivelarsi utile nell'aggiornamento della pagina home.php, ma non risolve l'errore del file inesistente..
e mi dà lo stesso errore pure se scrivo una qualsiasi URL http://lockit/BackPhp/gestione/fileInesistente.php
mentre se scrivo http://lockit/BackPhp/gestione/fileInesistente.asp mi dà il solito errore del server (HTTP 404)
e qusti file esistono sul server?
-
Ok grazie ho risolto.....
Erano problemi di permessi sul server