Domanda Risolto Problema con xampp

Stato
Discussione chiusa ad ulteriori risposte.

Firepect

Utente Iron
2 Giugno 2021
28
10
0
16
Salve, ho un problema con xampp prima andava tutto ma adesso mi da un'errore con un codice cioè questo:
Notice: Undefined index: email in C:\xampp\htdocs\StudenForum\registration\server.php on line 16
e il codice è questo:

$email = mysqli_real_escape_string($db, $_POST['email']);


Qualcuno conosce il perchè?

"ho provato con il portatile e fisso"
 
Significa che il campo "email" non è stato postato alla pagina, non è quindi presente nella variabile $_POST. Se mostri il form nella stessa pagina dove gestisci la registrazione metti il codice che esegue quest'ultima dentro un if:

PHP:
if (isset($_POST['email']))
{
    // ...
    $email = mysqli_real_escape_string($db, $_POST['email']);
    // ...
}
In tal modo quel codice non verrà eseguito se non hai ancora inserito nessun dato e stai solo visitando la pagina. Altrimenti il problema potrebbe essere che dal form o da javascript invii il campo usando un altro nome tipo "mail" e per quello non lo trova.
 
Ultima modifica:
Significa che il campo "email" non è stato postato alla pagina, non è quindi presente nella variabile $_POST. Se mostri il form nella stessa pagina dove gestisci la registrazione metti il codice che esegue quest'ultima dentro un if:

PHP:
if (isset($_POST['email']))
{
    // ...
    $email = mysqli_real_escape_string($db, $_POST['email']);
    // ...
}
In tal modo quel codice non verrà eseguito se non hai ancora inserito nessun dato e stai solo visitando la pagina. Altrimenti il problema potrebbe essere che dal form o da javascript invii il campo usando un altro nome tipo "mail" e per quello non lo trova.
gia fatto e nel db è tutto giusto
server.php:
<?php
session_start();
// initializing variables
$username = "";
$email = "";
$errors = array();
// connect to the database
$db = mysqli_connect('localhost', 'root', '', 'registration');
// REGISTER USER
if (isset($_POST['reg_user'])) {
// receive all input values from the form
$username = mysqli_real_escape_string($db, $_POST['username']);
$email = mysqli_real_escape_string($db, $_POST['email']);
$password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
$password_2 = mysqli_real_escape_string($db, $_POST['password_2']);
// form validation: ensure that the form is correctly filled ...
// by adding (array_push()) corresponding error unto $errors array
if (empty($username)) { array_push($errors, "<strong><b>Username è richiesto</strong></b>"); }
if (empty($email)) { array_push($errors, "<b>Email richiesta"); }
if (empty($password_1)) { array_push($errors, "<b>Password è richiesta"); }
if ($password_1 != $password_2) {
array_push($errors, "Le password non combaciano");
}
if (empty($password_1)) {array_push($errors, "<b>Password obbligatoria");}
if (empty($password_2)) {array_push($errors, "<b>Conferma Password obbligatoria");}

// first check the database to make sure
// a user does not already exist with the same username and/or email
$user_check_query = "SELECT * FROM users WHERE username='$username' OR email='$email' LIMIT 1";
$result = mysqli_query($db, $user_check_query);
$user = mysqli_fetch_assoc($result);

if ($user) { // if user exists
if ($user['username'] === $username) {
array_push($errors, "<b>Username già in uso");
}
if ($user['email'] === $email) {
array_push($errors, "<b>Email già in uso ");
}
}
// Finally, register user if there are no errors in the form
if (count($errors) == 0) {
$password = md5($password_1);//encrypt the password before saving in the database
$query = "INSERT INTO users (username, email, password)
VALUES('$username', '$email', '$password')";
mysqli_query($db, $query);
$_SESSION['username'] = $username;
$_SESSION['success'] = "<h3>Ora sei loggato<h3>";
header('location: index.php');
}
}
// ...
// LOGIN USER
if (isset($_POST['login_user'])) {
$username = mysqli_real_escape_string($db, $_POST['username']);
$password = mysqli_real_escape_string($db, $_POST['password']);

if (empty($username)) {
array_push($errors, "<b>Username è obbligatorio");
}
if (empty($password)) {
array_push($errors, "<b>Password è obbligatoria");
}

if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$results = mysqli_query($db, $query);
if (mysqli_num_rows($results) == 1) {
$_SESSION['username'] = $username;
$_SESSION['success'] = "<b>Sei loggato";
header('location: index.php');
}else {
array_push($errors, "<b>Username/Password sbagliato");
}
}
}

?>
Messaggio unito automaticamente:

RISOLTO nella pagina register.php nell input dell'email ho messo name="text"
 
Stato
Discussione chiusa ad ulteriori risposte.