Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 10-09-09, 22:52   #391 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Usavi la variabile sbagliata, io avevo dato per scontato fosse giusta invece non lo era.

Per altro puoi aprire un thread in php-mysql e ti rispondo la.
Thedarkita ora è in linea   Rispondi citando
Vecchio 18-09-09, 14:46   #392 (permalink)
User
 
Data di registrazione: Sep 2009
Messaggi: 12
Ragazzi il mio editor php mi segna in rosso la variabile $user e $pass come se non le riconoscesse. Se a quelle variabili sostituisco direttamente le credenziali di un account funziona, quindi dubito sia il resto a non andare.Ho provato anche a eseguirlo con le variabili contenute dal doppio apice ' "$user" ' in quel caso mi riconosce la variabile ma comunque non permette l'accesso. Dove vado a sbattere? Grazie

Codice PHP:
 // Controllo l'utente esiste
 
$query mysql_query("SELECT idusers FROM users WHERE username = '$user' AND password = '$pass' LIMIT 1");
 
 
// Se ha trovato un record
 
if(mysql_num_rows($query) == 1
Glaximous non in linea   Rispondi citando
Vecchio 18-09-09, 17:22   #393 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Che le segni in rosso mi sembra normale.
Thedarkita ora è in linea   Rispondi citando
Vecchio 18-09-09, 17:36   #394 (permalink)
User
 
Data di registrazione: Sep 2009
Messaggi: 12
Eh ma è come se poi non me le riconoscesse come variabili,p erchè se io li dentro sostituisco direttamente i valori di un record esegue l'accesso perfettamente, mentre se lascio le variabili è come se non facesse il check delle password inserite con il database.

Dove è il problema allora?

Ultima modifica di Leonov : 19-09-09 03:30. Motivo: Per favore, iniziare le frasi con la lettera maiuscola.
Glaximous non in linea   Rispondi citando
Vecchio 18-09-09, 17:38   #395 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Dovresti postare il codice di tutta la pagina, altrimenti oltre dirti di fare un echo nella query, è impossibile aiutarti.
Thedarkita ora è in linea   Rispondi citando
Vecchio 21-09-09, 09:42   #396 (permalink)
User
 
Data di registrazione: Sep 2009
Messaggi: 12
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['username'])) ? trim($_POST['username']) : ''// Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 
$pass = (isset($_POST['password'])) ? trim($_POST['password']) : ''// 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 idusers FROM users WHERE username = '$user' AND password = '$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['idusers'];
 
  
// reindirizzo l'utente
  
header('Location: privata.php');
  exit;
 }
 
// se non esiste da l'errore
 
else
  die(
'Nome Utente o Password errati');
Glaximous non in linea   Rispondi citando
Vecchio 21-09-09, 19:26   #397 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Fai un echo cosi:
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['username'])) ? trim($_POST['username']) : ''// Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 
$pass = (isset($_POST['password'])) ? trim($_POST['password']) : ''// 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 idusers FROM users WHERE username = '$user' AND password = '$pass' LIMIT 1");
 echo 
"SELECT idusers FROM users WHERE username = '$user' AND password = '$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['idusers'];
 
  
// reindirizzo l'utente
  
header('Location: privata.php');
  exit;
 }
 
// se non esiste da l'errore
 
else
  die(
'Nome Utente o Password errati');
Così da controllare che i dati dal modulo arrivino correttamente.
Thedarkita ora è in linea   Rispondi citando
Vecchio 21-09-09, 22:54   #398 (permalink)
User
 
L'avatar di arkom
 
Data di registrazione: May 2009
Messaggi: 57
Problema con check box

Ciao TheDarkita, oggi visto che ho un po di tempo voglio riproporti il problema che ti stavo parlando alla pagina 25 di questo tutorial che riguarda il check box: ecco il codice dove
Codice PHP:
$accept addslashes($accept); 
è lo script dove dobrebbe spuntare l'utente al momento della registrazione, ma come ti stavo accennando anche senza spuntare la check box l'utente riesce a registrarsi cosa che non va bene (e nel Db risulta "no" visto che ho messo una query "yes" "no"):

Codice PHP:
<?php
session_start
();
// Includo la connessione al database
require('config.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 ''
 
$accept = (isset($_POST['accept'])) ? trim($_POST['accept']) : '';   // 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);
  
$accept addslashes($accept);
    }
 
 
    
// Controllo il Nome Utente
    
if(strlen($user) < || strlen($user) > 12)
        die(
'Nome Utente troppo corto, o troppo lungo! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo la Password
    
elseif(strlen($pass) < || strlen($pass) > 12)
        die(
'Password troppo corta, o troppo lunga; caratteri minimi 4 / massimi 12! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo l'email
    
elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})"$mail))
        die(
'ATTENZIONE: Email non valida, si prega ripettere la procedura di registrazione! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo il nome utente non sia già occupato
    
elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die(
'Nome Utente non disponibile! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo l'indirizzo email non sia già registrato
    
elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die(
'Questo indirizzo email risulta gi&agrave; registrato ad un altro utente! Si prega ritornare indietro cliccando la freccia sul Vostro browser'); 
    
// 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 utenti (user,pass,mail,accept)";
        
$strSQL .= "VALUES('$user', '$pass', '$mail', '$accept')";
        
mysql_query($strSQL) OR die("Errore 003. <br>
  Possibile cause: <br>
  - non ha spuntato la casella per l'informativa. <br>
  - non ha inserito i suoi dati correttamente.<br>
  - errore del sistema.<br>
  Si prega tornare indietro e riprovare a registrarsi o<br>
  contattare l'amministratore.<br>
  Failure because: "
.mysql_error());
 
        
// Reindirizzo l'utente ad una pagina di conferma della registrazione
        
header('Location: registrato.php');
        exit;
    }
}
?>
Questa è la parte tra i tag Body:
Codice HTML:
<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="Em@il" onfocus="if(this.value=='Em@il') this.value='';" /><br />
 <span class="Stile14">Accetto l' <a href="/informativa.php">informativa</a></span>
 <input name="accept" type="checkbox" id="accept" checked="checked" value="1" /> 
<br />
 <input name="registra" type="submit" value="Registrati" /> 
 <input type="submit" name="reset" id="reset" value="Reset Campi" />
 <br />
</form></center>
  <div align="center">
Se non ricordo male nella pagina 26 di questo tutorial Zomer indicava di mettere questo codice nello script:
Codice PHP:
//Controllo che ha accettato la privacy
        
if(!isset($_POST['checkbox']))
        die(
'Non hai spuntato la checbox'); 
Ok adesso domanda di rito, se il codice è quello giusto dove dovrei inserirlo per esattezza nello script php?

Nel caso non fosse giusto potresti ripropormi il codice.

Grazie

Ultima modifica di arkom : 21-09-09 22:57.
arkom non in linea   Rispondi citando
Vecchio 21-09-09, 22:57   #399 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Cosi, dovrebbe andare:
Codice PHP:
 <?php
session_start
();
// Includo la connessione al database
require('config.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 ''
 
$accept = (isset($_POST['accept'])) ? trim($_POST['accept']) : '';   // 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);
  
$accept addslashes($accept);
    }
    
    
    
// Controllo il Nome Utente
    
if(strlen($user) < || strlen($user) > 12)
        die(
'Nome Utente troppo corto, o troppo lungo! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo la Password
    
elseif(strlen($pass) < || strlen($pass) > 12)
        die(
'Password troppo corta, o troppo lunga; caratteri minimi 4 / massimi 12! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo l'email
    
elseif(!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})"$mail))
        die(
'ATTENZIONE: Email non valida, si prega ripettere la procedura di registrazione! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo il nome utente non sia già occupato
    
elseif(mysql_num_rows(mysql_query("SELECT user FROM utenti WHERE user = '$user' LIMIT 1")) == 1)
        die(
'Nome Utente non disponibile! Si prega ritornare indietro cliccando la freccia sul Vostro browser');
    
// Controllo l'indirizzo email non sia già registrato
    
elseif(mysql_num_rows(mysql_query("SELECT mail FROM utenti WHERE mail = '$mail' LIMIT 1")) == 1)
        die(
'Questo indirizzo email risulta gi&agrave; registrato ad un altro utente! Si prega ritornare indietro cliccando la freccia sul Vostro browser'); 
    
elseif(
$accept != 1)
die(
'Devi accettare l\'informativa');
// 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 utenti (user,pass,mail,accept)";
        
$strSQL .= "VALUES('$user', '$pass', '$mail', '$accept')";
        
mysql_query($strSQL) OR die("Errore 003. <br>
  Possibile cause: <br>
  - non ha spuntato la casella per l'informativa. <br>
  - non ha inserito i suoi dati correttamente.<br>
  - errore del sistema.<br>
  Si prega tornare indietro e riprovare a registrarsi o<br>
  contattare l'amministratore.<br>
  Failure because: "
.mysql_error());
        
        
// Reindirizzo l'utente ad una pagina di conferma della registrazione
        
header('Location: registrato.php');
        exit;
    }
}
?>
Thedarkita ora è in linea   Rispondi citando
Vecchio 21-09-09, 23:07   #400 (permalink)
User
 
L'avatar di arkom
 
Data di registrazione: May 2009
Messaggi: 57
Alla Grande

Sei una belva TheDarkita. Non ho fatto in tempo a cliccare "aggiorna" sul mio pc che tu mi hai già dato la risposta. Ma che fai dormi anche con il pc. E pensare che mia moglie s' arrabbia di brutto se stò il tempo utile per vedere tutte le mie email ed i siti (ossia più di tre ore solo a casa e quando sono al lavoro non ne parliamo!) .
Comunque grazie sei sempre The best nel settore.
Ah dimenticavo avrei bisogno di un moderatore. Se t'interessa
fammi un fischio.
Ciao e grazie ancora.
arkom non in linea   Rispondi citando
Vecchio 21-09-09, 23:09   #401 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Figurati.
Thedarkita ora è in linea   Rispondi citando
Vecchio 21-09-09, 23:29   #402 (permalink)
User
 
L'avatar di arkom
 
Data di registrazione: May 2009
Messaggi: 57
Ok alla grande funziona.
Notte
arkom non in linea   Rispondi citando
Vecchio 22-09-09, 00:47   #403 (permalink)
User
 
Data di registrazione: Sep 2009
Messaggi: 12
Niente mi restituisce semplicemente una cosa del genere

SELECT idusers FROM users WHERE username = '' AND password = 'd41d8cd98f00b204e9800998ecf8427e' LIMIT 1Nome Utente o Password errati
Glaximous non in linea   Rispondi citando
Vecchio 22-09-09, 15:19   #404 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Incolla qui pure il form.
Avrai messo un name diverso da username per il campo di testo del nome utente.
Thedarkita ora è in linea   Rispondi citando
Vecchio 22-09-09, 15:46   #405 (permalink)
User
 
Data di registrazione: Sep 2009
Messaggi: 12
LOGIN

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['username'])) ? trim($_POST['username']) : ''// Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default ''
 
$pass = (isset($_POST['password'])) ? trim($_POST['password']) : ''// 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 idusers FROM users WHERE username = '$user' AND password = '$pass' LIMIT 1");
    echo 
"SELECT idusers FROM users WHERE username = '$user' AND password = '$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['idusers'];
 
  
// 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.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=".w3.org/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>
Glaximous non in linea   Rispondi citando
Rispondi
Tags: , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:21.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.