Problemi passaggio valori da un Form ad Una classe con query mysql

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
Ciao a tutti,
vi chiedo un aiuto perchè sto avendo un problema che non mi era mai capitato e mi fa uscire di senno !!!!
Praticamente ho il classico form con cui invio i darti ad una pagina PHP.....il problema nasce quando inserisco la query in mysql_fetch_array() ho questo warning
"Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in." come se la query non fosse corretta!

Ho fatto delle prove stampando la query con echo....e tutto viene passato correttamente.....ho verificato i valori con print_r e con un var_dump sulla singola variabile in POST e tutto è corretto...
...qualcuno sa per caso cosa cribbio sta succedendo???

P.S. sono in locale ed uso Xampp....potrebbe essere questo???
P.P.S. questo metodo l'ho utilizzato per un altra sezione del sito e funziona perfettamente su questa pagina invece no :crying:
Form in html

HTML:
  <form action="profile.php" method="post" >
            Indirizzo E-mail:<input  name="user" />
            Password:<input name="pwd" type="password"  />
            Seleziona: <select name="selezione"><option>tabella</option></select>
            <input type="submit"   />
            </form>

Creo l'oggetto in profile.php

PHP:
	                        $loggo=new log_procedure();
				@$tabella=$_POST['selezione'];
				$loggo->login($tabella);

e questo è l'oggetto della classe log_procedure

PHP:
public function login($tabella){
				@$user=$_POST['user'];
				@$pwd=$_POST['pwd'];
				
				$query="SELECT * FROM ".$tabella."";
				$inter=mysql_query($query);
				echo $query; 
				while($c=mysql_fetch_array($inter))
				{
				if($user==$c['mail']&&$pwd==$c['pwd']){ 
					header("Location:profile.php"); 
					$_SESSION['loggo']=1;}
				
				}}
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao modifica l'esecuzione della query cosi
PHP:
$inter = mysql_query($query);
if (!$inter) {
    echo "errore $query : " . mysql_error();
}
e vedi cosa ti stampa
 

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
Ciao criric, grazie per la risposta.

Ho provato ma non mi da nessun tipo di messaggio.....ho riprovato quindi a inviare la query a mysql_fetch_array ma continua con il warning.....
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Hai scritto cosi?
PHP:
public function login($tabella) {
        @$user = $_POST['user'];
        @$pwd = $_POST['pwd'];

        $query = "SELECT * FROM " . $tabella . "";
        
        $inter = mysql_query($query);
        if (!$inter) {
            echo "errore $query : " . mysql_error();
        }
        while ($c = mysql_fetch_array($inter)) {
            if ($user == $c['mail'] && $pwd == $c['pwd']) {
                header("Location:profile.php");
                $_SESSION['loggo'] = 1;
            }
        }
    }
perchè se non ti stampa il messaggio non è qui l'errore:
il messaggio che hai postato dice che mysql_fetch_array si aspetta un valore che non sia false
 

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
No avevo inserito un exit dopo il mysql_error();

togliendo l'exit l'errore che mi da è:

errore SELECT * FROM : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\riparazioni\admin\codice\php.php on line 29

Ma la sintassi della query è corretta, ho controllato che i valori passino correttamente in POST, ma appena passo tutto a mysql_fetch_array() si incasina tutto come se non passassi alcuna variabile
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
la query che abbiamo stampato è questa
SELECT * FROM
è sbagliata manca il nome della tabella
probabilmente non gli arriva come parametro per assicurartene metti un var_dump
PHP:
public function login($tabella) {
         var_dump($tabella);
 

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
Ho provato ad inserire exit ad ogni riga per capire dove fosse il prob, quello che non capisco è che tutto funziona perfettamente e non ho alcun tipo di errore poi appena faccio iniziare il ciclo while con mysql_fetch_array() mi restituisce errore anche sulle variabili che prima erano ok e non mi passa più il valore $tabella nella query...

P.S. intanto grazie della pazienza :D
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ho provato il codice che hai postato : è funzionante
intanto togli i silent @ servono solo a nascondere gli errori che sono molto importanti per capire dove si inceppa lo script poi armati di pazienza e con calma riguarda lo script da capo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dubito, io ho provato con wampp su un singolo file
PHP:
<?php

class log_procedure {

    public function login($tabella) {
        $user = $_POST['user'];
        $pwd = $_POST['pwd'];

        $query = "SELECT * FROM " . $tabella . "";
         $inter = mysql_query($query);
        if (!$inter) {
            echo "errore $query : " . mysql_error();
        }

        while ($c = mysql_fetch_array($inter)) {
            if ($user == $c['mail'] && $pwd == $c['pwd']) {
                header("Location:profile.php");
                $_SESSION['loggo'] = 1;
            }
        }
    }

}

if (isset($_POST['submit'])) {
    $loggo = new log_procedure();
    $tabella = $_POST['selezione'];
    $loggo->login($tabella);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" >
    Indirizzo E-mail:<input  name="user" />
    Password:<input name="pwd" type="password"  />
    Seleziona: <select name="selezione"><option>tabella</option></select>
    <input type="submit" name="submit" value="invia" />
</form>
 

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
Finalmente ho scoperto il problema, è l'if nel ciclo while.....non so perchè ma levando quello scompaiono gli errori.
Sto cercando una soluzione funzionante
 

Albertoesse

Nuovo Utente
21 Set 2012
14
0
0
OK fatto!!!!:fonzie:

Posto la soluzione così magari può essere d'aiuto anche per altri! :D

Ho modificato la classe in questo modo

PHP:
class log_procedure {	
		
					
			
	public function login($tabella,$user,$pwd){
		 	 
				$query="SELECT * FROM $tabella";
				$inter=mysql_query($query);
				while($risultati=mysql_fetch_array($inter)){
					if($user==$risultati['mail']&&$pwd==$risultati['pwd']){	
						$_SESSION['loggo']="loggato";
					    echo "login";}
						
				}if($_SESSION['loggo']==NULL) { header("Location:index.php");}
	}
}

e la pagine html che richiama la classe è così
PHP:
$user=$_POST['user'];
			 	$pwd=$_POST['pwd'];
				$tabella=$_POST['selezione'];
				$loggo=new log_procedure();
				$loggo->login($tabella,$user,$pwd);

Grazie ancora a criric senza i suoi consigli col ciufolo che ne sarei uscito vivo!!!!!! :byebye:
 
Discussioni simili
Autore Titolo Forum Risposte Data
G Passaggio valori [era:problemi] Classic ASP 2
N Passaggio da xhtml strict ad HTML5, problemi di charset!! HTML e CSS 1
V Problemi passaggio da hosting windows a hosting linux Hosting 4
S NicEdit - Problemi nel passaggio variabili delle TEXTAREA PHP 6
S problemi passaggio dati da menù tendina ad un'altro frame Javascript 3
L Problemi con chiusura di popup e passaggio argomenti Javascript 0
F shop online - problemi passaggio variabile PHP 0
M Upload immagine con javascript problemi con FormData() Javascript 1
F Problemi visualizzazione mappa Android studio Sviluppo app per Android 0
S Problemi Javascript + Aruba Javascript 2
A Problemi con move_uploaded_file PHP 7
M Problemi con la stampa dei valori in php PHP 1
L Problemi con il login PHP 2
L Problemi form Pagina php HTML e CSS 3
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Z problemi con foreach insert into PHP 10
B javascript per problemi con pdf e Safari Javascript 0
N Problemi kit videosorveglianza IP Cam e Videosorveglianza 0
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
R Problemi anomalo insermento in db PHP 9
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
S Problemi di un principiante PHP 3
M Problemi con blog Grav CMS (Content Management System) 0
F Problemi di visualizzazione di un sito su più browser WordPress 0
S Problemi di visualizzazione form contatti sito web HTML e CSS 2
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
A Problemi di accesso da remoto a Ipcam IP Cam e Videosorveglianza 6
michele81 [WordPress] problemi plug meteo api key WordPress 4
E Problemi in registrazione telecamere Dahua IP Cam e Videosorveglianza 6
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
M [PHP] Problemi su inserimento array nel db PHP 7
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
M [PHP] Problemi di salvataggio su campo calcolato PHP 0
O [HTML] problemi con la regola "background-attachment: fixed" in EDGE HTML e CSS 0
M [PHP] Problemi con query unione PHP 11
M [PHP] Problemi con select PHP 6
Spown [WordPress] Problemi visualizzazione su più browser + voci menu in movimento WordPress 1
ANDREA20 [HTML] problemi con il footer HTML e CSS 1
D [MS Access] problemi con inserimento campo in una maschera MS Access 6
M [PHP] Problemi con il riconoscimento login. PHP 21
A [WordPress] problemi con xampp WordPress 2
M Problemi con database Apache/2.4.37 (Win32) OpenSSL/1.1.1a PHP/7.3.1 PHP 6
P Problemi comunicazioni Comunicazioni dallo Staff 8
G I problemi non vengono solo per nuocere Presentati al Forum 0
A Problemi Wi-Fi Fastweb Reti LAN e Wireless 4
C [WordPress] Url vulnerability e problemi sito da mobile WordPress 0
S [PHP] problemi con le sessioni PHP 3
B Problemi accesso Instagram Smartphone e tablet 1

Discussioni simili