|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
MySQL script
Ciao a tutti,
recentemente ho caricato uno script per la registrazione su un sito internet, ma provando lo script sul web mi esce questa scritta: "Parse error: syntax error, unexpected T_DNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in /web/htdocs/www.cosmomakeup.it/home/lib/Users.class.php on line 68" cosa potrebbe essere? Lo script utilizzato è: Codice:
<?php // error_reporting(E_ALL | E_DEPRECATED | E_STRICT); Class Users{ /******************************** SETTING *********************************/ // le credenziali di accesso al database private $host_db = 'localhost'; private $user_db = 'root'; private $pass_db = ''; private $name_db = 'test'; // gli url che gestinranno le operazioni di login public $Urls = array( 'login_page' => 'http://localhost/test/guida_semple/login.php', 'register_page' => 'http://localhost/test/guida_semple/registrazione.php', 'logout_page' => 'http://localhost/test/guida_semple/logout.php' ); /******************************************* se non sai ciò che fai non toccare più nulla *******************************************/ /*risorse di connessione*/ protected $conn; protected $selezione_db; /*variabili di registrazione*/ protected $reg_username; protected $reg_email; protected $reg_pass; protected $reg_confirm_pass; protected $reg_crypt_pass; /*variabili di login*/ protected $login_username; protected $login_password; protected $login_cryptpass; protected $login_iduser; /*variabili per gestire gli errori*/ public $messages = array( 1 => 'Il campo username è obbligatorio.', 2 => 'Il campo email è obbligatorio.', 3 => 'Il campo password è obbligatorio.', 4 => 'Le due password non coincidono.', 5 => 'Il campo username contiene caratteri non validi. Sono consentiti solo lettere, numeri il i seguenti simboli . _ -.', 6 => 'Inserisci una email con sitassi corretta.', 7 => 'La password scelta è eccessivamente breve. Scegli una password di almeno 8 caratteri.', 8 => 'Esiste già un utente registrato con questo username.', 9 => 'Esiste già un utente registrato con questa email.', 10 => 'Registrazione effettuata con successo.', 11 => 'Login errato', 12 => 'Login eseguito con successo.', 13 => 'Logout eseguito con successo.', 14 => 'Per accedere a questa pagina occorre essere loggati.' ); public $message_script; // il costruttore attiva la connessione a mysql public function __construct(){ $this->connessione(); } /****************** CONNESSIONE A MYSQL ******************/ protected function connessione(){ $this->conn = mysql_connect($this->62.149.150.176, $this->Sql616658, $this->$453c6f7c) or die(mysql_error()); $this->selezione_db = mysql_select_db($this->Sql616658_1, $this->conn) or die(mysql_error()); return TRUE; } /************************************* ALCUNI METODI PER ESEGUIRE VALIDAZIONI *************************************/ // verifica campo generico non vuoto (TRUE se non vuoto) public function empty_string($string){ $string = trim($string); if($string==''){ return TRUE; } else{ return FALSE; } } // verifica sintassi username public function is_username($username){ $regex = '/^[a-z0-9\.\-_]{3,30}$/i'; return preg_match($regex, $username); } // verifica sintassi email (TRUE se ok) public function is_email($email){ $regex = '/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/'; return preg_match($regex, $email); } // verifica sintassi password (per semplicità solo lunghezza) (TRUE se ok) public function is_secure_password($password){ if(strlen($password)>=8){ return TRUE; } else{ return FALSE; } } /***************************************************** METODI PER VERIFICARE ESISTENZA DI USERNAME E PASSWORD ******************************************************/ // verifica esistenza username (TRUE se esiste) public function isset_username($username){ $query = "SELECT COUNT(username) AS count FROM users WHERE username='".mysql_real_escape_string($username)."' LIMIT 1"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result); if($row['count']==1){ return TRUE; } else{ return FALSE; } } // verifica esistenza email (TRUE se esiste) public function isset_email($email){ $query = "SELECT COUNT(email) AS count FROM users WHERE email='".mysql_real_escape_string($email)."' LIMIT 1"; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result); if($row['count']==1){ return TRUE; } else{ return FALSE; } } /****************************** I FORM DI LOGIN E REGISTRAZIONE ******************************/ public function get_login_form(){ $html = ' <form action="' .$this->Urls['login_page']. '" method="post" id="form_login"> <fieldset> <legend>Login<legend> <label for="login_user">Username</label> <input type="text" name="username" id="login_user" /> <label for="login_pass">Password</label> <input type="password" name="pass" id="login_pass" /> <input type="submit" name="login" value="login" id="login_submit"/> </fieldset> </form>'; return $html; } public function get_register_form(){ $html = ' <form action="' .$this->Urls['register_page']. '" method="post" id="form_register"> <fieldset> <legend>Registrazione<legend> <label for="reg_user">Username*</label> <input type="text" name="username" id="reg_user" /> <label for="reg_email">Email*</label> <input type="text" name="email" id="reg_email" /> <label for="reg_pass1">Password*</label> <input type="password" name="pass1" id="reg_pass1" /> <label for="reg_pass2">Confirm Password*</label> <input type="password" name="pass2" id="reg_pass2" /> <input type="submit" name="register" value="registra" id="reg_submit" /> <input type="reset" name="reset" value="cancella" id="reg_reset" /> </fieldset> </form>'; return $html; } /***************************** LINK LOGOUT *****************************/ public function get_link_logout(){ if($this->is_logged()){ return '<a href="'.$this->Urls['logout_page'].'" class="logout">Logout</a>'; } return ''; } /******************************* METODO PER CRIPTARE LE PASSWORD *******************************/ public function crypt_pass($pass){ return sha1($pass); } /***************************** ESECUZIONE DELLA REGISTRAZIONE ******************************/ public function esegui_registrazione(){ // se il form e i suoi input sono stati inviati if(isset($_POST['register']) AND isset($_POST['username']) AND isset($_POST['email']) AND isset($_POST['pass1']) AND isset($_POST['pass2'])){ //valorizziamo alcune variabili $this->reg_username = trim($_POST['username']); $this->reg_email = trim($_POST['email']); $this->reg_pass = trim($_POST['pass1']); $this->reg_confirm_pass = trim($_POST['pass2']); // criptiamo la password $this->reg_crypt_pass = $this->crypt_pass($this->reg_pass); // eseguiamo la validazione degli input $valid_input = $this->check_input_registrazione(); // se sono validi if($valid_input===TRUE){ // inseriemo all'interno del database i dati $this->query_insert_registrazione(); // settiamo il messaggio di successo della registrazione $this->message_script = 10; return TRUE; } } return FALSE; } // verifica che gli input siano corretti protected function check_input_registrazione(){ if($this->empty_string($this->reg_username)){ $this->message_script = 1; return FALSE; } else if($this->empty_string($this->reg_email)){ $this->message_script = 2; return FALSE; } else if($this->empty_string($this->reg_pass)){ $this->message_script = 3; return FALSE; } else if($this->reg_pass != $this->reg_confirm_pass){ $this->message_script = 4; return FALSE; } else if(!$this->is_username($this->reg_username)){ $this->message_script = 5; return FALSE; } else if(!$this->is_email($this->reg_email)){ $this->message_script = 6; return FALSE; } else if(!$this->is_secure_password($this->reg_pass)){ $this->message_script = 7; return FALSE; } else if($this->isset_username($this->reg_username)==TRUE){ $this->message_script = 8; return FALSE; } else if($this->isset_email($this->reg_email)==TRUE){ $this->message_script = 9; return FALSE; } return TRUE; } // esecuzione della query insert di registrazione protected function query_insert_registrazione(){ $query = " INSERT INTO users SET username='".mysql_real_escape_string($this->reg_username)."', pass='".mysql_real_escape_string($this->reg_crypt_pass)."', email='".mysql_real_escape_string($this->reg_email)."', data_reg= NOW()"; $result = mysql_query($query) or die(mysql_error()); return mysql_insert_id(); } /******************* ESECUZIONE DEL LOGIN ********************/ public function esegui_login(){ // se il form di login e i sui tutti input sono stati inviati if(isset($_POST['login']) AND isset($_POST['username']) AND isset($_POST['pass'])){ // valorizziamo delle variabili $this->login_username = trim($_POST['username']); $this->login_password = trim($_POST['pass']); // criptiamo la password $this->login_cryptpass = $this->crypt_pass($this->login_password); // validiamo i dati (non devono essere vuoti) $not_empty_input = $this->check_input_login(); // se la validazione è andata a buon fine if($not_empty_input===TRUE){ // eseguiamo la query e verifichiamo se individua le credenziali if($this->query_select_login()==TRUE){ // settiamo lo status di utente loggato $this->set_logged($this->login_iduser); // settiamo l'username $this->set_username($this->login_username); // settiamo il messaggio di successo del login $this->message_script = 12; return TRUE; } // se la query non ha trovat utenti con quelle credenziali else{ // settiamo un messaggio di insuccesso dell'operazone $this->message_script = 11; } } } return FALSE; } // verifica che gli input del login non siano vuoti protected function check_input_login(){ if($this->empty_string($this->login_username)){ $this->message_script = 1; return FALSE; } else if($this->empty_string($this->login_password)){ $this->message_script = 3; return FALSE; } return TRUE; } // esecuzione della qeury per verificare il login protected function query_select_login(){ $query = " SELECT id FROM users WHERE username='".mysql_real_escape_string($this->login_username)."' AND pass='".mysql_real_escape_string($this->login_cryptpass)."'"; $result = mysql_query($query) or die(mysql_error()); // se individua l'utente if(mysql_num_rows($result)==1){ $row = mysql_fetch_array($result); $this->login_iduser = $row['id']; return TRUE; } return FALSE; } /*********************************** VERIFICA DELLO STATO DI LOGIN UTENTE ***********************************/ // verifica login public function is_logged(){ return isset($_SESSION['auth']); } // set login protected function set_logged($id_user){ $_SESSION['auth'] = $id_user; return; } // access denied public function access_denied(){ if(!$this->is_logged()){ header("location: ".$this->Urls['login_page']."?message=14"); exit; } return; } protected function set_username($username){ $_SESSION['username_logged'] = $username; return; } public function get_username(){ return isset($_SESSION['username_logged']) ? $_SESSION['username_logged'] : ''; } // logout public function logout(){ session_unset(); session_destroy(); setcookie(session_name(), '', time()-42000, '/'); header("location: ".$this->Urls['login_page']."?message=13"); return; } /***************************** METODO PER OTTENERE I MESSAGGI ******************************/ public function get_message(){ if(isset($_GET['message'])){ $this->message_script = $_GET['message']; } $key = intval($this->message_script); if(array_key_exists($key, $this->messages)){ return $this->messages[$key]; } return FALSE; } } ?> |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2776
|
Una cosa del genere si può scrivere?
Codice:
$this->conn = mysql_connect($this->62.149.150.176, $this->Sql616658, $this->$453c6f7c) or die(mysql_error()); |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Suppongo di no.
Cosa dovrei scrivere? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
prova così
$this->conn = mysql_connect('62.149.150.176', 'Sql616658', $453c6f7c'); |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
E' corretto scrivere $ nell'ultima parte?
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Mi dice:
"Warning: mysql_connect(): Access denied for user 'Sql616658'@'62.149.143.141' (using password: YES) in /web/htdocs/www.cosmomakeup.it/home/lib/Users.class.php on line 68 Access denied for user 'Sql616658'@'62.149.143.141' (using password: YES)" |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
dipende da come viene costruita la password e se il sistema accetta tale carattere: prova ad eliminarei il carattere $.
Però scusa, username e password dovrebbero esserti noti, io ho usato quelli da te postati ma non so se nono quelli corretti. Ultima modifica di misterx : 26-01-2013 alle 15:42. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
In che senso devono essere noti?
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Le informazioni del DB le ho a disposizione.
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
bene quindi nei campi in grassetto metti username e password che hai a disposizione e prova a conneterti al database
$this->conn = mysql_connect('62.149.150.176', 'mysql_user', 'mysql_password'); |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Ho provato a fare come mi hai detto prima, cioè:
Codice:
$this->conn = mysql_connect('62.149.150.176', 'mysql_user', 'mysql_password'); "No database selects" ho provato a mettere anche il numero del DB, ma mi dice: "Warning: mysql_connect(): Access denied for user 'Sql616658'@'62.149.143.141' (using password: YES) in /web/htdocs/www.cosmomakeup.it/home/lib/Users.class.php on line 68 Access denied for user 'Sql616658'@'62.149.143.141' (using password: YES)" |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Ho provato anche a modificare, da come mi è stato detto in questa discussione, anche la linea 69 e mi da questo tipo di errore:
"Parse error: syntax error, unexpected T_DNUMBER, expecting T_STRING or T_VARIABLE or '{' or '$' in /web/htdocs/www.cosmomakeup.it/home/lib/Users.class.php on line 68" La linea che mi riferisco è questa: Codice PHP:
Codice PHP:
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Nessuno mi riesce a dare una mano su questo piccolissimo problema che ho.
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Ho provato a costruire questo codice:
registrazione2.php: Codice PHP:
Codice PHP:
"Parse error: syntax error, unexpected T_VARIABLE in /web/htdocs/www.cosmomakeup.it/home/registrazione2.php on line 3" è per lo stesso motivo che mi dicevate l'altro giorno? |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
prova così
Codice:
<?php session_start(); $nomehost = '62.149.150.176' ; $nomeuser = 'Sql616658' ; $password = '453c6f7c' ; $dbname = 'Sql616658_1'; $myusername = $_POST['username'] ; $mypassword = $_POST['password'] : //script di connessione $connessione = mysql_connect($nomehost, $nomeuser, $password); //selezione del database $database_select = mysql_select_db ($dbname, $connessione); //si connette, sceglie il database e adesso la tabella e controlla 1x1 tutti i valori dei campi //se nel campo username ha un valore uguale a $myusername e nel campo password c'è un valore uguale a $mypassword allora count risulterà 1 e quindi: $sql = "SELECT * FROM utenti WHERE username='$myusername' and password='$mypassword'"; $result = mysql_query ($sql); $count = mysql_num_rows ($result); $_SESSION['username'] = $myusername; //quindi registrerà la sessione di login e a quel punto in ogni pagina in cui metteremo session_start() risulteremo loggati fino a quando non creeremo il session_destroy(); //chi distruggerà la sessione creata e quindi: if ($count == 1) { session_register ("myusername") ; session_register ("mypassword") ; echo "Benvenuto $username hai effettuato il login con successo"; } else { echo "Login non riuscito" ; } ?> |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Adesso mi da questo tipo di errore:
"Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /web/htdocs/www.cosmomakeup.it/home/registrazione2.php on line 20 Login non riuscito". |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
devi provare a stampare a video il valore deelle varie variabili
$result = mysql_query ($sql); echo $result; $count = mysql_num_rows ($result); echo $count; $_SESSION['username'] = $myusername; echo $myusername; |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Mi esce questo errore:
"Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /web/htdocs/www.cosmomakeup.it/home/registrazione2.php on line 21 matthew85Login non riuscito". Scusatemi se vi sto facendo tutte queste domande. |
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Sep 2005
Città: Como
Messaggi: 447
|
Ho inserito questo codice:
Codice PHP:
Grazie anticipatamente dell'aiuto. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:38.