[PHP] sviluppo sitoweb

jotes

Nuovo Utente
26 Dic 2016
27
0
1
21
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
21
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.046
150
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
21
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.046
150
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
21
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
21
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
21
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
21
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
47
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
21
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.046
150
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
21
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.046
150
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3

Discussioni simili