Script PHP con MySQL

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Buon giorno a tutti,
recentemente, ho sistemato un codice per la registrazione e il login, ma mi da questo errore:

"Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/htdocs/www.cosmomakeup.it/home/register.php on line 26"

Il codice utilizzato è:

PHP:
<?php  

include("config.php");  

// connect to the mysql server 
$link = mysql_connect($server, $db_user, $db_pass) 
or die ("Could not connect to mysql because ".mysql_error()); 

// select the database 
mysql_select_db($database) 
or die ("Could not select database because ".mysql_error()); 
if($_POST["username"]!="" && $_POST["password"]!="" && $_POST["conferma_password"]!="" && $_POST["nome"]!="" && $_POST["cognome"]!="" && $_POST["partita_iva"]!="" && $_POST["codice_fiscale"]!="" && $_POST["indirizzo"]!="" && $_POST["cap"]!="" && $_POST["citta"]!="" && $_POST["provincia"]!="" && $_POST["mail"]) 
{ 
    // check if the username is taken 
    $check = "select id from $table where username = '".$_POST['username']."';";  
    $qry = mysql_query($check) 
    or die ("Could not match data because ".mysql_error()); 
    $num_rows = mysql_num_rows($qry);  
    if ($num_rows != 0) {  
    echo "Sorry, the username $username is already taken.<br>"; 
    echo "<a href=register.html>Try again</a>"; 
    exit;  
    } else { 

    // insert the data 
    $insert = mysql_query("insert into user (username,password,conferma_password,nome,cognome,partita_iva,codice_fiscale,indirizzo,cap,citta,provincia,mail,newsletter) values ('".$_POST["username"]!="" && $_POST["password"]!="" && $_POST["conferma_password"]!="" && $_POST["nome"]!="" && $_POST["cognome"]!="" && $_POST["partita_iva"]!="" && $_POST["codice_fiscale"]!="" && $_POST["indirizzo"]!="" && $_POST["cap"]!="" && $_POST["citta"]!="" && $_POST["provincia"]!="" && $_POST["mail"]"") 
    or die("Could not insert data because ".mysql_error()); 

    // print a success message 
    echo "Your user account has been created!<br>";  
    echo "Now you can <a href=login.html>log in</a>";  
    } 
}  
else echo "Sorry, you have to insert all the fields.<br><a href=register.html>Try again</a>"; 
?>

Il problema è di questa riga:

PHP:
    $insert = mysql_query("insert into user (username,password,conferma_password,nome,cognome,partita_iva,codice_fiscale,indirizzo,cap,citta,provincia,mail,newsletter) values ('".$_POST["username"]!="" && $_POST["password"]!="" && $_POST["conferma_password"]!="" && $_POST["nome"]!="" && $_POST["cognome"]!="" && $_POST["partita_iva"]!="" && $_POST["codice_fiscale"]!="" && $_POST["indirizzo"]!="" && $_POST["cap"]!="" && $_POST["citta"]!="" && $_POST["provincia"]!="" && $_POST["mail"]"")

cosa ho sbagliato?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ma che razza d query hai fatto?
se vuoi inserire i vari valori dei $_POST
PHP:
<?php
//......
$insert = mysql_query("INSER INTO user (username,password,conferma_password,nome,cognome,partita_iva,codice_fiscale,indirizzo,cap,citta,provincia,mail,newsletter) VALUES('".$_POST["username"],"', '".$_POST["password"]."', '".$_POST["conferma_password"]."', '".$_POST["nome"]."', '".$_POST["cognome"]."', '".$_POST["partita_iva"]."', '".$_POST["codice_fiscale"]."', '".$_POST["indirizzo"]."', '".$_POST["cap"]."', '".$_POST["citta"]."', '".$_POST["provincia"]."', '".$_POST["mail"]."'") or die("Could not insert data because ".mysql_error());
//......
?>
che comunque DEVI verificare prima dell'inserimento e non solo come fai di verificare che non fossere vuoti, es. se uno abita a l'aquila ti manda in pallino il record

p.s.
quando le query sono così lunghe ti converrebbe dividere la queryystringa da mysql_query in modo con un var_dump verificarla se c'è qualcosa che non va
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Ok. Ma nel codice che mi hai scritto tu in questo momento la posso mettere già nello script?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si potresti comunque da verificare perche non ho la tua tabella e quindi non l'ho testato, ci possono essere (sperp di no) degli errori di digitazione
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Mi esce fuori questo errore:

"Parse error: syntax error, unexpected T_ELSE in /web/htdocs/www.cosmomakeup.it/home/register.php on line 35".

Cosa intendi con questo: "ci possono essere (sperp di no) degli errori di digitazione"?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto l'errore
syntax error, unexpected T_ELSE in /web/htdocs/www.cosmomakeup.it/home/register.php on line 35"
probabulmente in un if-elese non hai chiuso una graffa o manca una parentesi o un ;
verifica perche spesso questo tipo di errore non nasce alla riga indicata, ma a monte.

per errore di digitazione intendo (non avendolo testato) aver messo (es) una , al posto di un .
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Non potrebbe essere i punti che sono stati inseriti nel valore della query?
Intendo la riga $insert, sia la prima parte sia la seconda?

PHP:
<?php 

include("config.php"); 

// connect to the mysql server
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because ".mysql_error());

// select the database
mysql_select_db($database)
or die ("Could not select database because ".mysql_error());
$insert = mysql_query("INSER INTO user (username,password,conferma_password,nome,cognome,partita_iva,codice_fiscale,indirizzo,cap,citta,provincia,mail,newsletter) VALUES('".$_POST["username"],"', '".$_POST["password"]."', '".$_POST["conferma_password"]."', '".$_POST["nome"]."', '".$_POST["cognome"]."', '".$_POST["partita_iva"]."', '".$_POST["codice_fiscale"]."', '".$_POST["indirizzo"]."', '".$_POST["cap"]."', '".$_POST["citta"]."', '".$_POST["provincia"]."', '".$_POST["mail"]."'") or die("Could not insert data because ".mysql_error());
{
	// check if the username is taken
	$check = "select id from $table where username = '".$_POST['username']."';"; 
	$qry = mysql_query($check)
	or die ("Could not match data because ".mysql_error());
	$num_rows = mysql_num_rows($qry); 
	if ($num_rows != 0) { 
	echo "Sorry, the username $username is already taken.<br>";
	echo "<a href=register.html>Try again</a>";
	exit; 
	} else {

	// insert the data
	$insert = mysql_query("insert into user (username,password,conferma_password,nome,cognome,partita_iva,codice_fiscale,indirizzo,cap,citta,provincia,mail,newsletter) values ('".$_POST["username"].="" && $_POST["password"].="" && $_POST["conferma_password"].="" && $_POST["nome"].="" && $_POST["cognome"].="" && $_POST["partita_iva"].="" && $_POST["codice_fiscale"].="" && $_POST["indirizzo"].="" && $_POST["cap"].="" && $_POST["citta"].="" && $_POST["provincia"]!="" && $_POST["mail"]."'")
	or die("Could not insert data because ".mysql_error());
	echo $insert;

	// print a success message
	echo "Your user account has been created!<br>"; 
	echo "Now you can <a href=login.html>log in</a>"; 
	}
} 
else echo "Sorry, you have to insert all the fields.<br><a href=register.html>Try again</a>";
}
?>
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa una cosa: ma è lo script completo? non vedo alcuni if (vedo le parentesi {, ma non gli if).
poi a che cosa ti serve la seconda insert?
mi sembra (ma posso sbagliarmi) che tu abbia le idee un po' confuse riguardo alla sintassi delle query.
spiega bene cosa vuoi fare/ottenere

p.s.
i punti servono per concatenare la stringa
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Buon giorno,
vorrei inserire su un sito di e-commerce la possibilità di registrarsi e di fare acquisti sul sito internet. Però mi servirebbe uno script che mi permetta di registrarsi e di loggarsi nel momento in cui si decide di fare l'acquisto o di guardare il proprio storico prodotti.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
@matthew85
non ti accodare così ad altri post, poi se sai qualcosa di php/mysql guarda nelle varie discussioni trovi script atti a loggarsi butti giu uno script che ualche utente ti aiuta a eventualmente correggerlo/migliorarlo.
se invece vuoi tutto fatto fai un post nella bacheca annunci.
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
@borgo italia, vorrei essere aiutato, se è possibile, se no posso tranquillamente guardare, come lei ha detto, su altre discussioni.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non avevo evidentemente capito il tuo ultimo post.
comunque il problema va diviso in due parti
1) un utente non registrato si registra (qui devi dire tu se si puo registrare un pinco pallo qualsiasi o vuoi tu confermare la registrazione)
2) un utente già registrato si logga e quindi puo accedere alle pagine riservate
comunque vedo che hai già messo qualcosa cioè ha definito la tabella user?
username
password #questa dovrà essere salvata codificata
conferma_password #a che ti serve questo
nome
cognome
partita_iva
codice_fiscale
indirizzo
cap
citta
provincia
mail
newsletter # cosa e?
essendo la tabella il perno di tutto, posta il dump

p.s.
:) guarda che nessuno usa il lei qui nel forum :)
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
ciao
non avevo evidentemente capito il tuo ultimo post.
comunque il problema va diviso in due parti
1) un utente non registrato si registra (qui devi dire tu se si puo registrare un pinco pallo qualsiasi o vuoi tu confermare la registrazione)
2) un utente già registrato si logga e quindi puo accedere alle pagine riservate
comunque vedo che hai già messo qualcosa cioè ha definito la tabella user?
username
password #questa dovrà essere salvata codificata
conferma_password #a che ti serve questo
nome
cognome
partita_iva
codice_fiscale
indirizzo
cap
citta
provincia
mail
newsletter # cosa e?
essendo la tabella il perno di tutto, posta il dump

p.s.
:) guarda che nessuno usa il lei qui nel forum :)

Innanzitutto vorrei che il tizio deve prima confermare la sua richiesta di registrazione tramite un link, secondariamente la password è codificata, come giustamente hai già detto tu, "conferma_password" io la intendevo la conferma della password che sui siti che ci sono richiedono la conferma della password e la newsletter è la possibilità di ricevere aggiornamenti sulle varie promozioni o non dell'attività.

Ecco qua il dump:

Codice:
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` int(11) NOT NULL,
  `password` int(11) NOT NULL,
  `conferma_password` int(11) NOT NULL,
  `nome` int(11) NOT NULL,
  `cognome` int(11) NOT NULL,
  `partita_iva` int(11) NOT NULL,
  `codice_fiscale` int(11) NOT NULL,
  `indirizzo` int(11) NOT NULL,
  `cap` int(11) NOT NULL,
  `citta` int(11) NOT NULL,
  `provincia` int(11) NOT NULL,
  `mail` int(11) NOT NULL,
  `newsletter` int(11) NOT NULL,
  `times` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

penso, però, che le voci partita_iva e codice_fiscale verranno unificate.

Chiedo scusa se davo del lei e non del tu, da oggi inizierò a dare del tu.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
la tabella in generale va bene come concetto ma non come attributi, ti metto i commenti ai campi
Codice:
CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT, //questo è ok
  `username` int(11) NOT NULL, //l'username non è un numero intero ma una stringa `username` varchar(50) NOT NULL,
  `password` int(11) NOT NULL,//c.s. in più poi va codificata `password` varchar(100) NOT NULL
  `conferma_password` int(11) NOT NULL,//c.s. e in più non serve
  `nome` int(11) NOT NULL,//c.s.`nome` varchar(50) NOT NULL,
  `cognome` int(11) NOT NULL,//c.s.`cognome` varchar(50) NOT NULL,
  `partita_iva` int(11) NOT NULL,// attento sembra un numero ma non lo è, se lasci cosi es. 00325 diventa 325, quindi varchar(25) NOT NULL,
  `codice_fiscale` int(11) NOT NULL,//c.s. comunque lo lascerei, privato non p.IVA ma C.F., ditta individuale p.IVA+C.F.
  `indirizzo` int(11) NOT NULL,//c.s.`indirizzo` varchar(100) NOT NULL,
  `cap` int(11) NOT NULL,//stesso discorso della partita_iva
  `citta` int(11) NOT NULL,//c.s. `citta` varchar(50) NOT NULL,
  `provincia` int(11) NOT NULL,//c.s. `provincia` varchar(2) NOT NULL, basta 2 provincia es. PD TN PA....
  `mail` int(11) NOT NULL,//c.s.`mail` varchar(50) NOT NULL
  `newsletter` int(11) NOT NULL,// questo non so cosa sia
  `times` datetime NOT NULL,// questo se è la data in cui uno si registra, io generalemte uso il timestamp quindi meglio `times` int(15) NOT NULL
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

se poi vuoi essere tu a autorizzare la registrazione devi aggiungere un campo
`autorizzato` enum( '0', '1' ) NOT NULL ;
che può assumere solo i valori 0 e 1 per cusi es se 0=> NON autorizzato, se 1=> autorizzato
 

matthew85

Nuovo Utente
9 Feb 2013
12
0
0
Ho ricreato la tabella, ma il problema mi persiste sull'else finale. Cosa dovrei fare?

L'errore che mi dice è:

"Parse error: syntax error, unexpected T_ELSE in /web/htdocs/www.cosmomakeup.it/home/register.php on line 35"

e lo script è quello che avevo inserito qualche giorno fa.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
lo script che hai fatto all'inizio (diciamo) è un po' un ca..no.
quindi ripartiamo dall'inizio.
mi hai detto che hai rifatto la tabella: ok
per prima cosa butta giu il form con cui l'utente si iscrive, poi vediamo lo script (potrebbe essere tutto in una stessa pagina col form, o se preferisci su due)che strutterei in questo modo
verifica dei dati inviati in particolar modo user e pass perche se la pass e/o l'user non la dai tu ma la sceglie l'utente si deve indicare come devono essre fatti (es min 6 max 12 caratteri e quali) e, anche se improbabile ma non impossibile, verificare che non esistano di gia per un altro utente
una volta verificati i dati inviati dal form se corretti si fa l'inserimento nel db altrimenti l'utente viene riinviato al form per ripetere l'immissione.

ti sto dicendo questo perchè da quello che capisco questo scrip ti serve per lavoro e non per hobby, quindi a mio parere deve essere accurato
quindi posta per prima cosa come faresti il form poi come per la tabella ti faccio le mie osservazioni
 
Discussioni simili
Autore Titolo Forum Risposte Data
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
K Help: problema con uno script di booking in php! PHP 0
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
Trapano Script php che non va più' con Versione MySQL: 5.6 PHP 5
giancadeejay Bloccare utente se non loggato con script php PHP 12
S Problema con script php-javascript PHP 2
romeocharly Creare un script/codice in php per collegare un id mysql con un file PHP 0
L Refresh include php con jquery problemi negli script dopo load jQuery 2
F Problemi login con lo script php PHP 2
M Script php login con password in scadeza ogni tre mesi PHP 2
T Aiuto con script PHP PHP 0
E Problema con uno script php PHP 1
L problema invio newsletter con script proprio in php PHP 10
G inviare comandi ssh con script php PHP 4
M Music Search Engine il Script PHP con Youtube api Altri Annunci 0
7 Script php che legge un dato da pagine web e lo confronta con un altro su csv... PHP 2
K Cerco script php gestione eventi con tasti PHP 6
neo996sps Problema con query e script PHP PHP 4
M Problemi con apache non interpreta script php Apache 6
L problema con script php PHP 6
E Problema con script ajax+php Ajax 2
B Problema invio mail con script php verso i dominii libero PHP 9
SolidSnake4 miglior script per l'upload di immagini con php su DB PHP 5
P [PHP] problema script con checkbox! PHP 0
G Script php per invio email con controllo sintassi e record MX PHP 0
G Script php per invio email con controllo sintassi e record MX PHP 7
F ordinare una form con uno script php PHP 2
P lanciare script asp (o php) da jquery Javascript 1
M Collegamento tra form html e script php PHP 4
felino PHP e script generazione file excel PHP 2
R Primo script in PHP / CSS PHP 4
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
Max 1 [PHP] Script che funziona in locale e non online PHP 16
O [PHP] inviare dati da form e script ajax PHP 0
P [PHP] Aggiungere un mio script a prestashop? PHP 10
D [Javascript] inserire uno script in un file php Javascript 6
Gabriele15497514 php testo errato durante la lettura del file txt quando lo script viene eseguito contemporaneamente PHP 3
romeocharly [PHP] Script per rinominare in automatico le immagini inviate da ftp PHP 0
TpD [PHP] Script per organizzazione presenza eventi PHP 3
D [PHP] script che invii una mail automatica dopo risposta ad una discussione di un forum PHP 0
T interpretare uno script php non fatto da me... PHP 3
O Script PHP e loro visibilità PHP 4
A [PHP] Script Ip camera su altervista senza sottocartelle PHP 6
M [PHP] Problema script ricezione e invio posta... PHP 1
Y Codice AdSense su script php PHP 4
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP] Script per censurare parole PHP 4
C richiamare una funzione in un altro script php PHP 1
M [PHP] Script per controllo disponibilitá negozio in citta PHP 4

Discussioni simili