passaggio di variabili a query sql

Salve a tutti, sono nuovo e dopo ore che navigo su questo splendido sito penso di poter postare questo problema a cui non ho trovato ancora soluzione ni topic precedenti..

premetto che uso Xampp su windows xp e su ubuntu 5.10 quindi uso phpmyadmin fornito nel software e le installazioni di php mysql e apache di default.

<?php

<?php
$nome=$_POST["user"];
$pass=$_POST["pass"];
//connessione a mysql
$connessione=mysql_connect('localhost','root','')
or die('Errore di connessione');
//connessione a db
mysql_select_db('lanist',$connessione)
or die('errore di accesso');
//creazione stringa di interrogazione
//$sql = 'SELECT `user`AND`password`FROM `usersepa` WHERE `user`=\'$nome\' AND `password`=\'$pass\'';
$sql = 'SELECT `user`AND`password`FROM `usersepa` WHERE `user`=\'$_POST["user"]\' AND `password`=\'$_POST["pass"]\'';
//$sql = 'SELECT `user` AND`password` FROM `usersepa` WHERE `user`=\'alex\' AND `password`=\'alex81\'';
//esecuzione query
$risultato=mysql_query($sql,$connessione)
or die('Errore di query');
//conta i record e vede se sono nulli
$numerirecord=mysql_num_rows($risultato);
$record=mysql_fetch_row($risultato);
      $user=$record[0];
       $password=$record[1];
if($numerirecord==1)
   {
      print("Complimenti ti sei logato con successo");
   }
else
   {
   echo("Username o Password sconosciuti<br><br>");
   echo("Hai inserito $nome $pass<br><br>");
   echo("quelli veri sono $user $password ");
   }   

mysql_close($connessione)
or die("DB gia chiuso");
?>

?>

questo è il mio script e come vedete ho inserito 3 stringhe di connessione...la sintassi l'ho controllata con phpmyadmin e quando io provo a passare nella query i valori definiti da me (alex, alex81) tutto funziona mentre se provo a passare i parametri ricevuti dalla pagina precedente secondo la sintassi di phpmyadmin non mi funzoina più nulla e grazie alle stringhe di controllo vedo che con quella sintassi la quesry non riceve nulla come argomento...

ho notato che sul forum spesso usate la scritta "SELECT user AND password FROM usersepa WHERE user=$nome AND password=$pass" ma a me non funziona...sapete dirmi dove sbaglio?

inviato 10 anni fa
out_out
X 0 X

Ho modificato lo script che hai riportato correggendo la query e semplificando la verifica del risultato. Se ci sono cose non chiare chiedi pure.

<?php
$nome=$_POST["user"];
$pass=$_POST["pass"];

//connessione a mysql
$connessione=mysql_connect('localhost','root','')
   or die('Errore di connessione');

//connessione a db
mysql_select_db('lanist',$connessione)
   or die('errore di accesso');

//creazione stringa di interrogazione
$sql = "SELECT user FROM usersepa WHERE user='$nome' AND password='$pass'";

//esecuzione query
$risultato=mysql_query($sql,$connessione)
   or die('Errore di query');

// il primo (ed unico) eventuale risultato
$record=mysql_fetch_row($risultato);

if($record)
{
   $user=$record[0];
   print("Complimenti $user, ti sei logato con successo");
}
else
{
   echo("Username o Password sconosciuti<br><br>");
}

mysql_close($connessione)
   or die("DB gia chiuso");
?>

Ovviamente non si tratta di uno script di login a prova di bomba ma per iniziare può andar bene.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

ciao Gianni, ti ringrazio per la tempestiva risposta.

Ho provato lo script ma se inserisco quel tipo di query mi restituisce

Parse error: syntax error, unexpected T_VARIABLE in C:\Programmi\xampp\htdocs\test\login2.php on line 12

e la riga 12 è quella dell

$record=mysql_query($sql,$connessione)

per quanto riguarda la stampa finale nell'else la uso per vedere se prende le variabili perchè quando testo la stringa che mi riporta il phpmyadmin ottengo un output del tipo

Username o Password sconosciuti

Hai inserito alex alex81

quelli veri sono

cioè non riconosce i valori user=\'$nome'\ AND password=\'$pass'\

leggendo tutte le guide non riesco a capire come mai riconosce la stringa di query solo con questa formattazione e poi non mi riconosce neanche i valori...

ora provo a rileggermi la documentazoine di xampp

p.s. lo so che non è un granchè ma avendo cominciato a programmare php solo da ierri mattina non riuscivo a trovare un'altra soluzione :)

risposto 10 anni fa
out_out
X 0 X

Strano, a me non risulta nessun errore di sintassi nel codice che ho riportato, Sicuro ri averlo ricopiato così com'è?

Immagino che a parte lo stript PHP tu stia suando un form HTML, vero? Controlla il nome dei campi input del form e verifica che siano proprio "user" e "pass".

Se vuoi sapere che dati invii alla pagina attraverso il form ti basta un:

print_r($_POST);

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda