[PHP] sviluppo sitoweb

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
ciao a tutti.
ho da poco cominciato lo sviluppo di un sito web
per svilupparlo sto usando php, html e sql
ho un problema con il log in degli utenti.
premetto che non ricordo mai qual è il tag per avvisare che sto per inserire del codice
ad ogni modo il codice della tabella utenti è questo:
CREATE TABLE members
(ID INT NOT NULL AUTO_INCREMENT,
Username varchar(64) NOT NULL,
Email varchar(255) NOT NULL,
Password varchar(32) NOT NULL,
PRIMARY KEY (ID));
e fin qui tutto ok
il codice per fare la registrazione invece è il seguente:
PHP:
<?php
// richiamo il file di configurazione con i dati del database
include "config.php";
// seleziono il database per poterci lavorare
mysql_select_db($db_name,$db);
// raccolgo i dati dal form
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
// inserisco le informazioni nel database
mysql_query("INSERT INTO ".$tabella." (Username, Email, Password) VALUES ('$username','$email', '$password')",$db) || die(mysql_error());
echo "registrazione avvenuta con successo";
// quindi i dati sono stati salvati nel database e l'utente è registrato
mysql_close($db);
?>
e anche qui non ci sono problemi. il problema sorge dal lgin. quando io inserisco i dati nel form pur essendo esatti me lo da come se fossero sbagliati. il codice dello script per il login è il seguente:
PHP:
<?php
include "config.php";
// Procedimento per connettersi al Database
mysql_select_db($db_name, $db) or die("can not select DB);");
// Nome utente e password inviate attraverso il form
$username = $_POST["username"];
$password = $_POST['password'];
$sql="SELECT * FROM $tabella WHERE Username='$username' and Password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) {
// Register $myusername, $mypassword and redirect to file "login_success.php"
$_SESSION['username']= $username;
$_SESSION['password']= $password;
header("location:login_success.php");
}
else {
echo "Attenzione username o password errati";
header("location:index.php");
}
?>
non capisco quale sia il problema.
spero di ricevere una risposta. Scusatemi per il codice lungo ma volevo farmi capire in pieno. se volete visitare il sito che è in fase di sviluppo per provare personalmente il link è:
http://appaccessibili.altervista.org/
 
Ultima modifica di un moderatore:

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Ciao, dopo l'apertura del tag <?php occorre startare la sessione:
PHP:
<?php
session_start();
?>
Comunque ricordati di filtrare sempre le variabili POST e GET tramite addslashes ed effettua sempre l'escape dei caratteri dannosi, inoltre per la password ti consiglio di criptarla in MD5 o SHA1
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
io ho messo le sessioni in tutti i file php adesso ma continuo a ricevere lo stesso errore.
in quanto all'escape e alla criptazione delle password preferisco prima poter fare una struttura di base poi inserirò le cose più complesse
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
che errore ti da?
poi quando posti del codice racchiudilo tra gli appositi bccode, quartultima iconcina barra formattazione del post "inserisci.. -> codice e poi selct cosa (generico, php, html)"
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
anche se ho messo session_start(); quando eseguo nonostante le credenziali siano esatte nel login non mi fa loggare.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
visto così non mi sembra di vedere errori di sintassi a oarte quel $tabella che non so da dove venga e dove sia valorizzato
comunque metti un var_dump per vedere se la query viene scritta come dovrebbe
PHP:
<?php
session_start();//questa deve essere alla prima riga
include "config.php";
// Procedimento per connettersi al Database
//mysql_select_db($db_name, $db) or die("can not select DB);");questa è gia in mysqli
// Nome utente e password inviate attraverso il form
$username = $_POST["username"];
$password = $_POST['password'];
$sql="SELECT * FROM $tabella WHERE Username='$username' and Password='$password'";
var_dump($sql);//poi lo togli
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) {
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    $_SESSION['username']= $username;
$_SESSION['password']= $password;
    header("location:login_success.php");
}else {
    echo "Attenzione username o password errati";
    header("location:index.php");
}
?>
e posta quello che riporta
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
ho messo il codice che mi hai postato qui e l'errore è:
Parse error: syntax error, unexpected '"config.php"' (T_CONSTANT_ENCAPSED_STRING) in /membri/appaccessibili/checklogin.php on line 3
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
PHP:
<?php
session_start(); //questa deve essere alla prima riga
include "config.php"; // Procedimento per connettersi al Database
//mysql_select_db($db_name, $db) or die("can not select DB);");questa è gia in mysqli
// Nome utente e password inviate attraverso il form
$username = $_POST["username"];
$password = $_POST['password'];
$sql="SELECT * FROM $tabella WHERE Username='$username' and Password='$password'";var_dump($sql);
//poi lo togli
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) {
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    $_SESSION['username']= $username;
$_SESSION['password']= $password;
header("location:login_success.php");
}else {
    echo "Attenzione username o password errati";
    header("location:index.php");
}
?>
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
ciao a tutti. per caso vedete un errore in questo codice?
io ho provato a leggerlo con lo screenreader ma non ho rilevato errori
intendo di sintassi non di funzioni deprecate
PHP:
<?php
session_start(); //questa deve essere alla prima riga
require("config.php"); // Procedimento per connettersi al Database
mysql_select_db($db_name, $db);
//Nome utente e password inviate attraverso il form
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$sql="SELECT * FROM $tabella WHERE Username='$username' and Password='$password'";var_dump($sql);
//poi lo togli
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1) {
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    $_SESSION['username']= $username;
$_SESSION['password']= $password;
header("location:login_success.php");
}else {
    echo "Attenzione username o password errati";
    header("location:index.php");
}
misql_close($db);
?>
ho usato $_REQUEST perchè mi dava errore anche con post e get ma ora mi da comunque lo stesso errore
se volete controllare il sito è:
http://appaccessibili.altervista.org/
 

xone

Utente Attivo
4 Apr 2014
181
14
18
Salento
Il codice non ha errori, usando POST non dovresti ricevere errore, io credo che dovresti riguardare il database per verificare che i campi della tabella corrispondano. Facendo il var_dump la query viene eseguita correttamente?
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
PHP:
<?php
session_start();
$host="localhost"; // Hostname
$username="appaccessibili"; // Mysql username
$password=""; // Mysql password
$db_name="my_appaccessibili"; //Nome del Database
$tabella="members"; // Nome della Tabella
$db = mysql_connect($host,$username,$password);
?>
 

Bryan

Nuovo Utente
18 Giu 2017
9
0
1
44
Allora, premetto che non sono un esperto, ma io sto avendo problemi proprio con mysql.
Ovvero, in php tali codici (mysql_connect and mysql_query) sono deprecati , cioè non si utilizzano più.

Prova a mettere a mysqli_connect e mysqli_query, che corrispondono alla versione aggiornata.
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
ciao brian,
le funzioni deprecate le aggiornerò più avanti perchè ora sto avendo un errore di sintassi e non riesco a capire quale sia
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
a parte che conviene passare a mysqli, per la connessione usando le vecchie mysql, in quello che hai postato manca la connessione al database
PHP:
<?php
//connessione usando le vecchie funzioni mysql
$host = 'localhost';//nome host
$username = 'appaccessibili';//user name
$password = 'pinco_pallo';//password
$tabella="members"; // Nome della Tabella
$db_name = 'my_appaccessibili';// nome data base
//---connessione----------------------------------------------------
$connnessione = mysql_connect($host,$username,$password) or die (mysql_error());
$sel = mysql_select_db($db_name) or die (mysql_error());//MANCA QUESTA
?>
se invece usi, meglio, le funzioni mysqli
PHP:
<?php
//connessione usando le nuove funzioni mysqli
$host = 'localhost';//nome host
$username = 'appaccessibili';//user name
$password = 'pinco_pallo';//password
$tabella="members"; // Nome della Tabella
$db_name = 'my_appaccessibili';            // nome data base
//---connessione----------------------------------------------------
$connessione = mysqli_connect($host,$username,$password, $db) or die (mysql_error());
?>
la session_start() è meglio direttamente nella pagina in cui ti serve, comunque alla prima riga
 

jotes

Nuovo Utente
26 Dic 2016
27
0
1
19
grazie. ma dal check_login.php come richiamo la variabile che contiene mysql_select_db();
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
se usi le vecchie mysql non devi richiamare nulla
PHP:
<?php
require_once"config.php";
$res=mysql_query("SELECT ecc..");
//....
?>
se usi le mysqli nella query devi richiamare la variabile di connessione
PHP:
<?php
require_once"config.php";
$res=mysqli_query($connessione,"SELECT ecc..");
//....
?>
con le mysqli puoi usare anche la programmazione ad oggetti (ma da non mescolare la procedurale con quella ad oggetti)
 
Discussioni simili
Autore Titolo Forum Risposte Data
FabiettoMilano82 Suggerimento per corso di sviluppo APP e corso di sviluppo PHP Programmazione 3
R configurazione ambiente di sviluppo per php PHP 2
T Cerco webmaster per sviluppo sito in php Offerte e Richieste di Lavoro e/o Collaborazione 5
A Sviluppo applicazione php PHP 0
S [Offro] Sviluppo siti, applicazioni web PHP, C#, .NET e software Offerte e Richieste di Lavoro e/o Collaborazione 1
B Sviluppo professionale Php usando Dreamweaver PHP 13
A Consiglio per sviluppo sito con sezione news in PHP Webdesign e Grafica 6
C [offro] Sviluppo siti web - Grafica - Applicazioni web PHP&Mysql Offerte e Richieste di Lavoro e/o Collaborazione 0
R Cerco [retribuito]programmatore php mysql per sviluppo semplice progetto di ticketing Offerte e Richieste di Lavoro e/o Collaborazione 4
C Ambiente di sviluppo con debug in PHP? PHP 1
C Ambiente Sviluppo Visuale Php PHP 2
A team per sviluppo applicazioni php, mysql PHP 0
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 0
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0

Discussioni simili