- Home
- Categorie
- Coding e Sistemistica
- Coding
- [Tutorial] Area privata
- 
							
							
							
							
							Ciao brinchetto non ho ben capito quale sia il problema, comunque direi sia meglio trattare la cosa su un thread separato da questo. 
 Aprine un altro un pò più dettagliato sul problema.
 
- 
							
							
							
							
							
Ciao ragazzi, non so più cosa fare. 
 Ho scaricato lo script login e quando tento di la registrazione mi da i seguenti errori.Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/web/../www/admin/registrati.php* on line 33 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/web/../www/admin/registrati.php* on line 36 
 Errore 003, contattare l'amministratore No database selected
 
- 
							
							
							
							
							Ciao sulweb, controlla il config, perchè non hai specificato il nome del database. 
 
- 
							
							
							
							
							
Ho già controllato diverse volte, proprio per questo mi sto rivolgendo qui. [PHP]<?php 
 session_start();
 $db_host = 'localhost';
 $db_utente = 'user accesso db';
 $db_password = 'lpassword accesso db';
 $db_nomedb = 'nome db';
 $dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
 mysql_select_db($db_nomedb);
 ?>[/PHP]con questa stesso script faccio funzionare altre pagine e tutto va bene, solo con questo ho problemi. 
 
- 
							
							
							
							
							
Finalmente sono riuscito a capire il problema, mettevo una password di 4 caratteri e non mi segnalava che inserivo un numero inferiori di caratteri richiesti. Adesso ho un'altro problema con il login, l'errore che ricevo è: 
 Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/web/../www/admin/login.php on line 27
 Nome Utente o Password errati
 
- 
							
							
							
							
							C'è un errore di sintassi nella query che poi viene usata nella riga 27 dalla funzione mysql_num_rows. 
 
- 
							
							
							
							
							
Nel codice ho modificato solo il collegamento alla tabella. 
 Questo il codice:
 [PHP]<?php
 // Includo la connessione al database
 require('config.php');// Se il modulo viene inviato... 
 if(isset($_POST['login']))
 {// Dati Inviati dal modulo 
 $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''// Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza 
 if (!get_magic_quotes_gpc()) {
 $user = addslashes($user);
 $pass = addslashes($pass);
 }// Crypto la password e la confronto con quella nel database 
 $pass = md5($pass);// Controllo l'utente esiste 
 $query = mysql_query("SELECT id FROM gestore WHERE user = '$user' AND pass = '$pass' LIMIT 1");// Se ha trovato un record 
 if(mysql_num_rows($query) == 1)
 {
 // prelevo l'id dal database
 $login = mysql_fetch_array($query);// Creo una variabile di sessione 
 $_SESSION['login'] = $login['id'];// reindirizzo l'utente 
 header('Location: privata.php');
 exit;
 }
 // se non esiste da l'errore
 else
 die('Nome Utente o Password errati');
 }
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ".w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="..o*/1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Login</title>
 </head>
 <body>
 <form action="" method="post">
 <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
 <input name="login" type="submit" value="Login" /><br />
 </form>
 </body>
 </html>[/PHP]
 
- 
							
							
							
							
							Metti: 
 [php]
 $query = mysql_query("SELECT id FROM gestore WHERE user = '$user' AND pass = '$pass' LIMIT 1") or die(mysql_error());
 [/php]Cosi mostra l'errore. 
 
- 
							
							
							
							
							
Questo l'errore: No database selected. 
 Non capisco la registrazione è andata bene, il login no!
 
- 
							
							
							
							
							
Questo il codice per la registrazione: 
 [PHP]<?php
 // Includo la connessione al database
 require('config1.php');// Se il modulo viene inviato... 
 if(isset($_POST['registra']))
 {// Dati Inviati dal modulo 
 $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default ''
 $mail = (isset($_POST['mail'])) ? trim($_POST['mail']) : ''; // Metto nella variabile 'mail' il dato inviato dal modulo, se non viene inviato dò di default ''// Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza 
 if (!get_magic_quotes_gpc()) {
 $user = addslashes($user);
 $pass = addslashes($pass);
 $mail = addslashes($mail);
 }// Controllo il Nome Utente 
 if(strlen($user) < 4 || strlen($user) > 12)
 die('Nome Utente troppo corto, o troppo lungo');
 // Controllo la Password
 elseif(strlen($pass) < 4 || strlen($pass) > 12)
 die('Password troppo corta, o troppo lunga');
 // Controllo l'email
 elseif(!eregi("^[a-z0-9][_.a-z0-9-]+@([a-z0-9][0-9a-z-]+.)+([a-z]{2,4})", $mail))
 die('Email non valida');
 // Controllo il nome utente non sia già occupato
 elseif(mysql_num_rows(mysql_query("SELECT user FROM gestore WHERE user = '$user' LIMIT 1")) == 1)
 die('Nome Utente non disponibile');
 // Controllo l'indirizzo email non sia già registrato
 elseif(mysql_num_rows(mysql_query("SELECT mail FROM gestore WHERE mail = '$mail' LIMIT 1")) == 1)
 die('Questo indirizzo email risulta già registrato ad un altro utente');
 // Registrazione dell'utente nel database
 else
 {// Crypt della password per garantire una miglior sicurezza 
 $pass = md5($pass);// Query per l'inserimento dell'utente nel database 
 $strSQL = "INSERT INTO gestore (user,pass,mail)";
 $strSQL .= "VALUES('$user', '$pass', '$mail')";
 mysql_query($strSQL) OR die("Errore 003, contattare l'amministratore ".mysql_error());// Reindirizzo l'utente ad una pagina di conferma della registrazione 
 header('Location: registrato.php');
 exit;
 }
 }
 ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "://.w3./TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="://.w3./1999/xhtml">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>Registrazione</title>
 </head>
 <body>
 <form action="" method="post">
 <input name="user" type="text" id="user" value="Nome Utente" onfocus="if(this.value=='Nome Utente') this.value='';" /><br />
 <input name="pass" type="password" id="pass" value="Password" onfocus="if(this.value=='Password') this.value='';" /><br />
 <input name="mail" type="text" id="mail" value="Emil" onfocus="if(this.value=='Emil') this.value='';" /><br />
 <input name="registra" type="submit" value="Registrati" /><br />
 </form>
 </body>
 </html>[/PHP]
 
- 
							
							
							
							
							Stai includendo 2 config differenti. 
 
- 
							
							
							
							
							
Provo, ma hanno lo stesso collegamento al db. Ho fatto una prova per vedere se magari c'èra un errore in uno dei due: 
 
- 
							
							
							
							
							
Infatti mi da sempre lo stesso errore. 
 
- 
							
							
							
							
							L'errore allora dovrebbe darlo in entrambi. 
 
- 
							
							
							
							
							
Non capisco! Domani a mente fresca rifaccio tutto da capo. 
 Ti ringrazio di tutto l'aiuto che mi hai dato e scusami se son stato un rompi.
 Faccio sapere!
 
- 
							
							
							
							
							Figurati, nessun problema.  
 
- 
							
							
							
							
							
Finalmente ho risolto. 
 Il problema stava nel database, è la prima volta che mi succede una cosa del genere, in pratica creando la tabella gestore come cliccavo per aprirla mi si disconnetteva.
 ho dovuto cambiare nome alla tabella e tutto è andato.
 
- 
							
							
							
							
							
prova 
 
- 
							
							
							
							
							
Ciao a tutti 
 Thedarkita o chiunque sappia rispondere ho da fare diverse domande, spero siate pazienti nei miei confronti...premetto che nn riesco a inviare msg sul forum **.
 Sto realizzando una sezione privata in un sito web, ma nn ci riesco.
 Ho provato ad inserire di sana pianta i file che hai messo a disposizione, ma nn funge.
 Ho provato il sito off-line,quando clicco sulla prima pagina ovvero index.php, si apre un'altra pagina in cui mi dice di specificare come aprire tale pagina o se la si vuole salvare.
 Poi ho visto che non hai creato il database con access, ma un file in sql.
 Come faccio a inserire quella query in access?
 Devo fare altre modifiche per il corretto funzionamento della sezione privata.
 Ma l'user e la password per accedere all'area privata devo impostarle nel database.grazie in anticipo per la tua pazienza. 
 
- 
							
							
							
							
							
- per provarla offline devi avere apache....lo possiedi?
 2.dacci il link della versione online