Salve a tutti,
Gli errori sussistono sempre. Ho modificato alcune righe suggeritomi da mzanella (vedere post #24), ma sono cambiate solo le righe degli errori ossia questi sono i seguenti errori:
Warning: mysqli_query() expects parameter 2 to be string, object at line 95
Warning: mysqli_num_rows() expects exactly 1 parameter, 2 given at line 98 0
Riga 95:
Codice PHP:
$result = mysqli_query($con, $checknazionalita);
Riga 98:
Codice PHP:
$vuota=mysqli_num_rows($con,$checknazionalita);
Questo è il listato completo:
Codice PHP:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Modulo Iscrizione</title>
<style type="text/css">
body {
background-color:#333;
color:#FFF;
font-family:Comic Sans MS;
font-size:20px;
}
#intestazione{
width:100%;
height:100px;
position:absolute;
font-family: Comic Sans MS;
top:0px;
left:0px;
text-align: center;
}
#divhr {
position:absolute;
top: 100px;
font-family:Comic Sans MS;
}
#messaggio {
position: absolute;
top: 480px;
font-family:Comic Sans MS;
}
</style>
<div id ="intestazione">
<H1>BENVENUTI NEL MODULO D'ISCRIZIONE</H1>
<hr>
</div>
<div id ="divhr">
<form method="POST" autocomplete ="off" action="<?php $_SERVER['PHP_SELF'] ?>">
<p> <p> <p>
<label for =campo-cognome"> Cognome: </label> <input type ="text" name = "cognome" required />
</p> </p> </p>
<p> <p><label for =campo-nome"> Nome: </label> <input type ="text" name = "nome" required/> </p></p>
Selezionare la data di nascita:
<?php
// formazione dei tre select:
// giorno
echo '<select name="giorno">';
echo '<option value="">Scegli giorno: </option>';
for($i=1;$i<32;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo"</select> ";
// mese
echo '<select name="mese">';
echo '<option value="">Scegli mese: </option>';
for($i=1;$i<13;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo"</select> ";
// anno
echo '<select name="anno">';
echo '<option value="">Scegli anno: </option>';
for($i=1920;$i<2012;$i++){
echo "<option value=\"" . $i . "\">" . $i . "</option>\n";
}
echo "</select>";
//controlla l'inserimento della data che sia corretta
if (!checkdate($input['mese'], $input['giorno'], $input['anno'])) {
$errore = "Data non valida";
}
#Inizio e input con selettore nazionalità
require_once("connettimysqli.php");
#$query = "SELECT nazionalita FROM utenti";
$checknazionalita= mysqli_query($con, "SELECT nazionalita FROM utenti WHERE nazionalita='$nazionalita'");
$result = mysqli_query($con, $checknazionalita);
$nazionalite = [];
$vuota=mysqli_num_rows($con,$checknazionalita);
if($vuota > 0){
while ($f = mysqli_fetch_assoc($checknazionalità)){
print_r($f);
}
}
echo mysqli_connect_errno();
?>
<select name="nazionalita">
<option value="">Scegli nazionalità</option>
<?php
foreach($nazionalite as $key => $val){
echo "<option>".$val."</option>";
?>
<p> <p><label for =campo-username"> Username: </label> <input type ="text" name = "username" required/> </p></p>
<p> <p><label for =campo-email"> E-Mail: </label> <input type ="email" name = "email" required/> </p></p>
<p> <p><label for =campo-ripemail"> Ripeti-Email: </label> <input type ="email" name = "ripemail" required/> </p></p>
<p> <p><label for =campo-password"> Password: </label> <input type ="password" name = "password" required/> </p></p>
<p> <p><label for =campo-rippassword"> Ripeti-password: </label> <input type ="password" name = "rippassword" required/> </p></p>
<div align ="center">
<input type="submit" name="reg" value="Invio Iscrizione" />
</div>
</div>
</form>
</head>
<body>
<?php
require_once ("connettimysqli.php");
require_once ("data.php");
echo"</hr>";
if(!empty($_POST)){
# Inizializzazioni variabili
$id = mysqli_real_escape_string($con, $_POST['id']);
$cognome = mysqli_real_escape_string($con, $_POST['cognome']);
$nome = mysqli_real_escape_string($con, $_POST['nome']);
$giorno = mysqli_real_escape_string($con, $_POST['giorno']);
$mese = mysqli_real_escape_string($con, $_POST['mese']);
$anno = mysqli_real_escape_string($con, $_POST['anno']);
$nascita = sprintf("%04d%02d%02d", $anno, $mese, $giorno);
$nazionalita = mysqli_real_escape_string($con, $_POST['nazionalita']);
$citta = mysqli_real_escape_string($con, $_POST['citta']);
$prov = mysqli_real_escape_string($con, $_POST['prov']);
$username = mysqli_real_escape_string($con, $_POST['username']);
$email = mysqli_real_escape_string($con, $_POST['email']);
$ripemail = mysqli_real_escape_string($con, $_POST['ripemail']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$rippassword = mysqli_real_escape_string($con, $_POST['rippassword']);
// formazione dei tre select:
echo '<div id ="messaggio">';
#Inizamo a controllare il carattere inserito per l'email che sia corretto
$query=("INSERT INTO utenti (cognome, nome, nascita, nazionalita, username, email, password) "
. "VALUES('$cognome','$nome','$nascita','$nazionalita','$username','$email','$password')");
$result=mysqli_query($con,$query);
if($result){
echo("<p> Inserimento avvenuto correttamente <p>");
} else{
echo("Inserimento non eseguito. Errore: ".mysqli_error($con));
}
}
}
?>
</body>
</html>
Le inizializzazxioni delle variabili ci sono ma prima viene l'html sarà quello il problema ???? Spero di venirne a capo con l'aiuto vostro. Grazie.