Codice php o my sql che funziona a singhiozzo?

di il
1 risposte

Codice php o my sql che funziona a singhiozzo?

Buongiorno a tutti,

sto creando una pagina di inserimento dati in php e bootstrap, premetto che prima funzionava correttamente, poi ha smesso di scrivere i dati su DB. Ho ricreato il progetto da zero e il DB, a volte scrive i dati correttamente, e se modifico un campo dalla pagina di amministrazione o cancello un record, dopo smette di funzionare, anche se cancello db e progetto e lo ricreo da zero.

Non ho alcun errore, e sembra tutto funzionare correttamente.

allego codice delle pagine

<!-- INIZIO CODICE PAGINA REGISTER.PHP -->

<!-- INSERT DATA -->

<?php
include('security.php');
?>

<div class="modal fade" id="addadminprofile" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Add Admin Data</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form action="code.php" method="POST">

<div class="modal-body">

<div class="form-group">
<label> Username </label>
<input type="text" name="username" class="form-control" placeholder="Enter Username">
</div>
<div class="form-group">
<label>Email</label>
<input type="email" name="email" class="form-control checking_email" placeholder="Enter Email">
<small class="error_email" style="color: red;"></small>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" class="form-control" placeholder="Enter Password">
</div>
<div class="form-group">
<label>Confirm Password</label>
<input type="password" name="confirmpassword" class="form-control" placeholder="Confirm Password">
</div>


</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" name="registerbtn" class="btn btn-primary">Save</button>
</div>
</form>

</div>
</div>
</div>

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#addadminprofile">
Add Admin Profile
</button>
<!-- FINE CODICE PAGINA REGISTER.PHP -->

<!-- INIZIO CODICE PAGINA CODE.PHP -->

<!-- INSERT DATA -->

<?php
include('security.php');

if(isset($_POST['registerbtn']))
{
$cpassword = $_POST['confirmpassword'];

$email_query = "SELECT * FROM register WHERE email='$email' ";
$email_query_run = mysqli_query($connection, $email_query);
if(mysqli_num_rows($email_query_run) > 0)
{
$_SESSION['status'] = "Email Already Taken. Please Try Another one.";
$_SESSION['status_code'] = "error";
header('Location: register.php');
}
else
{
if($password === $cpassword)
{
$query = "INSERT INTO register (username,email,password) VALUES ('$username','$email','$password')";
$query_run = mysqli_query($connection, $query);

if($query_run)
{
// echo "Saved";
$_SESSION['status'] = "Admin Profile Added";
$_SESSION['status_code'] = "success";
header('Location: register.php');
}
else
{
$_SESSION['status'] = "Admin Profile Not Added";
$_SESSION['status_code'] = "error";
header('Location: register.php');
}
}
else
{
$_SESSION['status'] = "Password and Confirm Password Does Not Match";
$_SESSION['status_code'] = "warning";
header('Location: register.php');
}
}

}

<!-- FINE CODICE PAGINA CODE.PHP -->

<!-- INIZIO CODICE PAGINA DBCONFIG.PHP DENTRO CARTELLA DATABASE -->
<?php

$server_name = "localhost";
$db_username = "********";
$db_password = "*********";
$db_name = "adminpanel";

$connection = mysqli_connect($server_name,$db_username,$db_password,$db_name);

if(!$connection)
{
die("Connection failed: " . mysqli_connect_error($conn));
echo '
<div class="container">
<div class="row">
<div class="col-md-8 mr-auto ml-auto text-center py-5 mt-5">
<div class="card">
<div class="card-body">
<h1 class="card-title bg-danger text-white"> Database Connection Failed </h1>
<h2 class="card-title"> Database Failure</h2>
<p class="card-text"> Please Check Your Database Connection.</p>
<a href="#" class="btn btn-primary">:( </a>
</div>
</div>
</div>
</div>
</div>
';
}
?>

<!-- FINE CODICE PAGINA DBCONFIG.PHP DENTRO CARTELLA DATABASE -->

<!-- INIZIO CODICE PAGINA SECURITY.PHP -->
<?php
session_start();
include('database/dbconfig.php');

if($connection)
{
// echo "Database Connected";
}
else
{
header("Location: database/dbconfig.php");
}
?>
<!-- FINE CODICE PAGINA SECURITY.PHP -->

1 Risposte

  • Re: Codice php o my sql che funziona a singhiozzo?

    Ci sono alcune imprecisioni $email non è mai (forse con register_globals deprecato da php 5.3) definito.
    Devi chiamare session_start prima di ogni output, se la sessione http esiste verrà recuperata altrimenti creata (default un file di sessione). Inoltre $_SESSION da php 7.1 può essere inizializzata solo se la sessione è attiva (cioè
    $_SESSION['status'] = 'inizializzazione';
    ) se esiste
    Esempio pagina creazione sessione ma non recupero:
    session_start();
    $st_err = ''; //stato globale di una variabile, presente solo la prima volta
    $bool = true;
    if($bool) {
    $_SESSION['status'] = 'inizializzazione'; //Esempio solo se valida, per tale motivo ho impostato $bool su vero.
    //Altrimenti avrei creato l'errore su $st_err
    }
    
    //Verifica se valida
    if(isset($_SESSION['status'])) {
    //Sono valido, altro no.
    if(!$st_err) {
    $a = 2 + 2; // fa sempre 4
    } else {
    $_SESSION['status'] = null;
    unset($_SESSION['status']);
    }
    } else {
    //altro no, questo comportamento dovrebbe essere implicito
    $st_err = 'errore1';
    }
    
    if(!$st_err) {
    //codice valido
    $a = 2 + 2;
    }
    
    //termine script con o senza ulteriori
    //file inclusi
    unset($st_err);
    //fine non esiste altro codice
    non occorre specificare diverso da valido, è una pratica ridondante.
    poi al termine dello script l'informazione verrà salvata nel file di sessione. https://www.php.net/manual/en/function.session-write-close.php
    Più che mostrarti il codice basati su cosa ho scritto sopra.
Devi accedere o registrarti per scrivere nel forum
1 risposte