problemi con mysqli

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Sto iniziando a programmare in mysqli. I dati della connessione al db sono garantiti che funzionano. Però quando vado a memorizzare un dato mi da errore nella query. La mia domanda è la seguente: questa stringa posto ora è corretta per mysqli ???? Grazie.

inserimento dati stringa:

PHP:
$query=("INSERT INTO utenti (nome, cognome, username,email) VALUES('".$nome."','".$cognome."','".$username."','".$email."')");
$result=@mysql_query($query) or die("Error query DataBase:".mysql_error());

Spero che qualcuno mi possa correggere nello sbaglio. Grazie.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se stai usando mysqli giustamente non puoi usare le funzioni mysql che tra l'altro sono obsolete
PHP:
<?php
//...
//dato che usy msqli da qualche parte avrai
$link = mysqli_connect("localhost", "tuo_user", "tua_password", "tuo_db");
//...
//quindi correggi l'insert
$query=("INSERT INTO utenti (nome, cognome, username,email) VALUES('$nome','$cognome','$username','$email')");
$result=mysqli_query($link,$query) or die("Error query DataBase:".mysql_error()); 
//.....
?>

p.s.
non usare il silent @, gli errtori vanno eliminati non nascosti
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Ciao ho sotituito la stringa come mi hai detto te, ma mi restituisce quest'errore:

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /volume1/web/utenti/Noelnewver/iscrizione.php on line 13 Error query DataBase:

Linsert attuale è il seguente:

$query=("INSERT INTO utenti (nome, cognome, username,email) VALUES('$nome','$cognome','$username','$email')");
$result=mysqli_query($link,$query) or die("Error query DataBase:".mysql_error());
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Allora,

Ho visto ora il db e i campi sono completamente vuoti tranne ll'id ??? Come mai ???? Questo è il risultato.

risultato dell'inserimento dati su phpmyadmin.PNG
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Per valorizzare tu dici in quetsa maniera ????

$idnome = mysql_real_escape_string(trim($_POST['idnome']));
$nome = mysql_real_escape_string(trim($_POST['nome']));
$username = mysql_real_escape_string(trim($_POST['username'])

E' solo un esempio che ho preso. Come vedi non ha mysqli è vecchio come esempio. Sicuramente ci sarà da correggerlo.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
tu hai
....VALUES('$nome','$cognome','$username','$email')"
quindi da qualche parte prima della query devi avere qualcosa di simile

PHP:
<?php
//...
$nome=mysqli_real_escape_string($con, trim($_POST['nome']));
$cognome=mysqli_real_escape_string($con, trim($_POST['cognome']));
$username=mysqli_real_escape_string($con, trim($_POST['username']));
$email=mysqli_real_escape_string($con, trim($_POST['email']));
//...
?>

attento: NON puoi mescolare mysqli con mysql
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
Allora facciamo così per chiarimenti di quello che sto facendo . Qua di seguto ti posto l'intero file del modulo iscrizione:

modulo iscrizione:

PHP:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
 $(".controllo").attr("src","no.png"); 
 $(".controllo").hide();
 startTime();
 $("form").submit(function(event){
  event.preventDefault();
 });
 
 $("#nome").change(function(){
  var valore = $("#nome").val();
  var l = valore.length;
  if(l<2){
   $("#nome").val("");
   $("#nomectrl").attr("src","no.png");
   $("#nomectrl").show();
  }else{
   $("#nomectrl").attr("src","si.png");
   $("#nomectrl").show();
  }
 });
 
 $("#cognome").change(function(){
  var valore = $("#cognome").val();
  var l = valore.length;
  if(l<2){
   $("#cognome").val("");
   $("#cognomectrl").attr("src","no.png");
   $("#cognomectrl").show();
  }else{
   $("#cognomectrl").attr("src","si.png");
   $("#cognomectrl").show();
  }
 });
 
 $("#username").change(function(){
  var valore = $("#username").val();
  var l = valore.length;
  if(l<8){
   $("#username").val("");
   $("#usernamectrl").attr("src","no.png");
   $("#usernamectrl").show();
  }else{
   var campo = "username";
   loadXMLDoc(valore,campo);
  } 
 });
 
 $("#email").change(function(){
  var valore = $("#email").val();
  var i = valore.indexOf("@"); 
  if(i==-1){
   $("#email").val("");
   $("#emailctrl").attr("src","no.png");
   $("#emailctrl").show();
  }else{
   var campo = "email";
   loadXMLDoc(valore,campo);
  }  
 });
 
 $("#email2").change(function(){
  var valore = $("#email2").val();
  var valore2 = $("#email").val();
  if(valore===valore2){
   $("#email2ctrl").attr("src","si.png");
   $("#email2ctrl").show();
  }else{
   $("#email2").val("");
   $("#email2ctrl").attr("src","no.png");
   $("#email2ctrl").show();
  }
 });
 
});

function startTime() {
    var today=new Date();
    var dd = today.getDate();
    var mm = today.getMonth();
    mm++;
    var aaaa = today.getFullYear();
    
    if(dd<10){
     dd = "0"+dd;
    }
    if(mm<10){
     mm = "0"+mm;
    }
    
    $("#testa h2").html(dd+"/"+mm+"/"+aaaa);
}


function loadXMLDoc(valore,campo)
{
var xmlhttp;
if (window.XMLHttpRequest){
  xmlhttp=new XMLHttpRequest();
}else{
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
  if (xmlhttp.readyState==4 && xmlhttp.status==200){
     var risposta = xmlhttp.responseText;     
     var n = risposta.indexOf("VERO"); 
     if (n==-1){
      $("#"+campo+"ctrl").attr("src","si.png");
     }else{
      $("#"+campo+"ctrl").attr("src","no.png");
      $("#"+campo).val("");
     }
     $("#"+campo+"ctrl").show();
    }
  }
xmlhttp.open("GET","cerca.php?valore='"+valore+"'&campo='"+campo+"'",true); 
xmlhttp.send();   
}

function controllo(){
 var controlla = true;
 var campoNome = $("#nome").val();
 var campoCognome = $("#cognome").val();
 var campoUsername = $("#username").val();
 var campoEmail = $("#email").val();
 var campoEmail2 = $("#email2").val();

 if(campoNome===""){
  controlla=false;
 }
 if(campoCognome===""){
  controlla=false;
 }
 if(campoUsername===""){
  controlla=false;
 }
 if(campoEmail===""){
  controlla=false;
 }
 if(campoEmail2===""){
  controlla=false;
 }

 if(controlla){
  $("form").submit(function(event){
   $(this).unbind('submit').submit();
  });
 }
}
</script>  
<style>
#testa h1{
 margin:auto;
 text-align:center;
}
#testa h2{
 position:relative;
 top:-54px;left:20px;
}
#testa{
 margin-bottom:20px;
}
#corpo{
 
}
.controllo{
 width:32px;height:32px;
}
table, input{
 font-family:Arial, Sans-serif;
 font-size:150%;
}
table{
 margin-left:20px;
}
table td:nth-child(1){
 text-align:right;
}
</style>
</head>
<body>

<div id="testa">
 <h1>TITOLO DELLA PAGINA</h1>
  <h2></h2>

</div>

<div id="corpo">

<form action="iscrizione.php" method="GET">
<table>

<tr>
<td>Nome:</td>
<td><input id="nome" type="text" name="nome"/></td>
<td><img class="controllo" id="nomectrl" src="" /></td>
</tr>

<tr>
<td>Cognome:</td>
<td><input id="cognome" type="text" name="cognome"/></td>
<td><img class="controllo" id="cognomectrl" src="" /></td>
</tr>

<tr>
<td>Username:</td>
<td><input id="username" type="text" name="username"/></td>
<td><img class="controllo" id="usernamectrl" src="" /></td>
</tr>

<tr>
<td>Email:</td>
<td><input id="email" type="text" name="email"/></td>
<td><img class="controllo" id="emailctrl" src="" /></td>
</tr>

<tr>
<td>Ripeti Email:</td>
<td><input id="email2" type="text" name="email2"/></td>
<td><img class="controllo" id="email2ctrl" src="" /></td>
</tr>

<tr>
<td></td>
<td><button type="submit" onclick="controllo()">INVIA</button></td>
<td></td>
</tr>

</table>
</form>

</div>

</body>
</html>


Qua invece ti posto l'iscrizione vera e propria ossia la registrazione dati:

iscrizione.php

PHP:
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        require_once("connettimysqli.php");

$id = mysqli_real_escape_string($con, $id);
$nome = mysqli_real_escape_string($con, $nome);
$cognome = mysqli_real_escape_string($con, $cognome);
$username = mysqli_real_escape_string($con, $username);
$email = mysqli_real_escape_string($con, $email);

$query=("INSERT INTO utenti (nome, cognome, username,email) VALUES('$nome','$cognome','$username','$email')");
$result=mysqli_query($con,$query) or die("Error query DataBase:".mysql_error());

if($result){
    echo("<p> Inserimento avvenuto correttamente <p>");
} else{
    echo("<br>Inserimento non eseguito");
}

        ?>
    </body>
</html>


Questi sono i due file in tutto questo non ti posto la connessionemysqli che sarebbe la connessione verso al db in quanto mi dice che mi sono connesso al db. Quindi ciò vuol dire che è giusta. La variabile interna alla connessione è:


Questa è la tabella utenti:

utenti:

PHP:
create table provadati (
	
idnome 			INT(11) NOT NULL AUTO_INCREMENT,
nome 		VARCHAR(80) NOT NULL,
cognome		VARCHAR(80) NOT NULL,
username	VARCHAR(80) NOT NULL,
    
PRIMARY KEY (idnome)
);

Vedi se per caso c'è qualche errore. Grazie. Il risultato attuale è sempre in bianco i campi.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
verifica con un var_dump prima della querysringa
PHP:
<?php
//...
var_dump($nome,$cognome,$username,$email);
$query=("INSERT INTO utenti (nome, cognome, username, email) VALUES('$nome','$cognome','$username','$email')");
//...
?>
e vedi se sono valorizzati
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se velorizzati ti riporta il valore esempio string(5) "pinco"
se non valorizzati NULL
se ti da NULL c'è un errore nella trasmissione dei $_POST, tipo nomi errati e/o diversi dai campi di input
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
cioa
ho visto ora una cosa nel form: method="GET"
non puoi usare il method="GET" e poi raccogliere i dati con $_POST['xxx']
o usi il method="POST" o raccogli i dati con $_GET['xxx']
il method="POST" è consigliabile
 

paperinik4

Utente Attivo
29 Mag 2011
1.811
0
36
Roma
www.ricetteagogo.it
me lo puoi corregger ein modo tale che l'invio dati resti nella stessa pagina ??? Mi spiego meglio, ora ho due pagine una il modulo iscrizione e l'altra iscrizione.php. Quest'ultima la vorrei unire al modulo iscrizione ossia alla prima. Io non ci sono riuscito con mysqli, mentre con mysql si. Questo in pratica ti fa i controlli sull'iscrizione con le "V" se è libero e con le "X" se è occupato. Se riesco a risolvere questo sono al 2% del lavoro :p
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ti schematizzo come fare tutto in una pagina
leggi i commenti
PHP:
<!DOCTYPE HTML">
<html>
<head>
<!-- tutto quello che ti serve nell'head -->
</head>
<body>
<?php
if(isset($_POST['log'])){//è stato premuto il submit
	require_once("connettimysqli.php");
	$nome=$_POST['nome'];
	//...
	$email=$_POST['email'];
	/*fai tutti i controlli necessari lato server
	i controlli lato client possono essere bypassati
	es. 
	nome e cognome solo letter
	indirizzo email valido
	verificare se password o user o entrambi sono gia esistenti
	potrsti usare una variabile di controllo chiamata $errore inizialmente vuota
	*/
	$errore="";
	//...controlli vari es indirizzo email
	$email=filter_var($email, FILTER_SANITIZE_EMAIL);
	if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
		$errore.="indirizzo email non valido<br>";
	}
	//e altri controlli
	//se NON errori la varibile $errore è rimasta vuota
	if($errore==""){
		//non errori: fai l'inserimento nel db
	}else{
		//ci sono stati degli errori quindi li mostri
		echo $errore;
	}
	//e quindi rimandi al form
	echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
}else{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST">
<!-- tutti i campi di input che ti servono es, -->
<td><input id="nome" type="text" name="nome"/></td>
<!-- eccetera e metti il name al button-->
<td><button type="submit" name="log" onclick="controllo()">INVIA</button></td> 
</form>
<?php
}
?>
</body>
</html>
studiati lo schema e prova
 
Discussioni simili
Autore Titolo Forum Risposte Data
P problemi con mysqli PHP 16
P problemi con l'estensione mysqli PHP 5
P problemi ricerca record con mysqli PHP 14
T problemi con dati menu a tendina HTML e CSS 2
M Upload immagine con javascript problemi con FormData() Javascript 1
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
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
M Problemi con creazione maschere Presentati al Forum 1
M Problemi con query a più tabelle PHP 3
S Problemi delle funzioni eliminate con PHP e MySQL PHP 4
M Problemi con blog Grav CMS (Content Management System) 0
S incoerenza di stampa. problemi con il magenta Photoshop 3
A problemi con paypall Java 1
S Problemi con modulo upload video php (help!) PHP 0
felino [Windows 8.1] Problemi con connessione WiFi Windows e Software 0
E [PHP] problemi nuova riga con fwrite su piattaforma android PHP 5
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
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
S [PHP] problemi con le sessioni PHP 3
T [PHP] problemi con il browser PHP 0
Andrea_Ventura [HTML] Problemi con effetto hover HTML e CSS 5
M [PHP] Problemi con login facebook PHP 0
Andrea_Ventura [HTML] Problemi con visualizzazione Navigation Bar HTML e CSS 10
andreas88 Creare file .htaccess per risolvere alcuni problemi con il tester SEO SEO e Posizionamento 0
Eugene [Joomla] Problemi con modulo per strutture alberghiere JHotelreservation starter Joomla 6
F [PHP] Problemi di base con bot di telegram PHP 9
M [Photoshop] Problemi con importazione immagini trasparenti in indesign Photoshop 0
E [Photoshop] Problemi con dimensioni immagini Photoshop 12
G [HTML] Problemi con inserimento immagini HTML e CSS 7
L Problemi con Javascript e Mustache Javascript 0
G Invio Mail con PHPMailer, problemi SMTP PHP 7
A [Javascript] problemi con javascrip e posizione GPS html5 Javascript 6
D Due problemi con Photoshop... Photoshop 1
G Problemi con pagina online.php di una chat in php PHP 38
S Problemi con impostazioni php PHP 3
P Problemi con AndroidStudio Sviluppo app per Android 0
S Problemi con Dell Precision T5400 Windows e Software 2
F ciao, sono ferro e ho bisogno di aiuto per problemi con la mail di alice.it Presentati al Forum 1
S [PHP] Problemi con Login e pagina Utente PHP 5
Z problemi con swf e chrome o sistemi portatili Webdesign e Grafica 5

Discussioni simili