Lord_Brisingr
13-12-2017, 11:58
Salve a tutti, ho un problema nel stampare il seguente alert:
alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
window.location = "index.php";
Lo scopo è quello di segnalare che la registrazione sia andata a buon fine, evitando che la pagina si ricarichi ed utilizzando, così, ajax. Solo che, una volta controllato, attraverso una query, l'esito della registrazione, la variabile $alldone non viene impostata così come dovrebbe essere, per permettere, nel metodo success di ajax, di stampare l'alert. Ciò non avviene, dal momento che la variabile non viene modificata. Sapreste aiutarmi? Grazie mille.
<?php
$errore = "";
$alldone = false;
session_start();
require_once ('class.manifold.php');
$class = new manifold();
$html = $class->title();
echo $html;
$class->menu();
include("conn.php");
?>
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#input_form").submit(function () {
var name = $("#nick").val();
var email = $("#email").val();
var password = $("#password").val();
$.ajax({
url: '<?php $_SERVER['PHP_SELF']; ?>',
type: "POST",
data: "password=" + password + "&nick=" + name + "&email=" + email,
success: function () {
<?php
if($alldone == true){
?>
alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
window.location = "index.php";
<?php
}
?>
}
});
return false;
});
});
</script>
</head>
<body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nick = $_POST["nick"];
$pass = $_POST["password"];
$email = $_POST["email"];
$sql = "SELECT nick FROM moderatore WHERE nick = '$nick'";
echo $sql;
$result = $conn->query($sql);
if ($result->num_rows == 0) {
//criptazione pass
$pass = md5($pass);
$sql = "INSERT INTO moderatore (email, nick, password) VALUES ('$email', '$nick', '$pass')";
$alldone = true;
echo $sql;
$result = $conn->query($sql);
if (@$result->num_rows == 0) {
$alldone = true;
}
} else {
$errore = "nick già esistente";
echo $errore;
}
}
?>
<div align ="center">
<form id = "input_form" action="?">
<fieldset style = "margin-top: 10%; width:50%">
<h4>Inserisci credenziali</h4><br/>
<span style = "padding-right: 5%">email:</span> <input type ="email" id = "email" /><br/>
<span style = "padding-right: 2%">Nickname:</span> <input type ="text" id = "nick"/><?php echo $errore ?><br/>
<span style = "padding-right: 2.5%">Password:</span> <input type ="password" id = "password"/><br/>
<button>invia</button><br />
<div id="result"></div>
</fieldset>
</form>
</div>
</body>
</html>
alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
window.location = "index.php";
Lo scopo è quello di segnalare che la registrazione sia andata a buon fine, evitando che la pagina si ricarichi ed utilizzando, così, ajax. Solo che, una volta controllato, attraverso una query, l'esito della registrazione, la variabile $alldone non viene impostata così come dovrebbe essere, per permettere, nel metodo success di ajax, di stampare l'alert. Ciò non avviene, dal momento che la variabile non viene modificata. Sapreste aiutarmi? Grazie mille.
<?php
$errore = "";
$alldone = false;
session_start();
require_once ('class.manifold.php');
$class = new manifold();
$html = $class->title();
echo $html;
$class->menu();
include("conn.php");
?>
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#input_form").submit(function () {
var name = $("#nick").val();
var email = $("#email").val();
var password = $("#password").val();
$.ajax({
url: '<?php $_SERVER['PHP_SELF']; ?>',
type: "POST",
data: "password=" + password + "&nick=" + name + "&email=" + email,
success: function () {
<?php
if($alldone == true){
?>
alert("Grazie per esserti registrato. Clicca OK per tornare alla home");
window.location = "index.php";
<?php
}
?>
}
});
return false;
});
});
</script>
</head>
<body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nick = $_POST["nick"];
$pass = $_POST["password"];
$email = $_POST["email"];
$sql = "SELECT nick FROM moderatore WHERE nick = '$nick'";
echo $sql;
$result = $conn->query($sql);
if ($result->num_rows == 0) {
//criptazione pass
$pass = md5($pass);
$sql = "INSERT INTO moderatore (email, nick, password) VALUES ('$email', '$nick', '$pass')";
$alldone = true;
echo $sql;
$result = $conn->query($sql);
if (@$result->num_rows == 0) {
$alldone = true;
}
} else {
$errore = "nick già esistente";
echo $errore;
}
}
?>
<div align ="center">
<form id = "input_form" action="?">
<fieldset style = "margin-top: 10%; width:50%">
<h4>Inserisci credenziali</h4><br/>
<span style = "padding-right: 5%">email:</span> <input type ="email" id = "email" /><br/>
<span style = "padding-right: 2%">Nickname:</span> <input type ="text" id = "nick"/><?php echo $errore ?><br/>
<span style = "padding-right: 2.5%">Password:</span> <input type ="password" id = "password"/><br/>
<button>invia</button><br />
<div id="result"></div>
</fieldset>
</form>
</div>
</body>
</html>