Måske har jeg misforstået spørgsmålet, men snakker vi opdatering og output af tekst fra fx MySql database er PHP's prepared statements eller PDO måden at hente og bringe tekst på. Giver gerne et eksempel herunedr..
Iøvrigt synes jeg selv at PHP headers / AJAX redirects afhængig af submit on form / button / a href er lidt af et mysterium, og måske endda browserspecifikt - oplever fx Chrome opfører sig anderledes end Firefox ved redirects via AJAX og PHP afhængigt af om der ligger en redirect i PHP-scriptet, AJAX på siden, om der er en preventDefault på form eller returnfalse ifht ændring af CSS......
Klart nok skal tekst via input i en form køres gennem mindst 1 tjek før det lagres i databasen - fx
// ..OMKRIV EVT HTML-TEGN FØR DE INDSÆTTES I MYQL
$text = htmlentities($text, ENT_QUOTES, "UTF-8");
// TIL AJAX - VISNING I DIV EFTER AT AJAX HAR KØRT
echo $text;
// FORBERED MYSQL
$insert = $conn -> prepare("UPDATE emne SET text = ? WHERE brugernavn = 'et eller andet brugernavn' ");
// vælg "string" OG VARIABEL FOR INPUT var text
$insert -> bind_param( "s", $text);
// INDSÆT DATA I MYSQL
$insert->execute();
// LUK CONN TIL MYSQL
$insert->close();
Bagefter hentes texten -
Ifht validering af user + pass akn man køre den her igen prepared statements - bruges hash validation af pass er der forskel på tidlig og sen PHP-versioner..
I forhold til sessions og login ja / nej kan man lave et spørgsmål "session - true / false"
if (isset($_POST['submit_login'])) {
// VARIABLER FRA FORM INPUT
$brugernavn = $_POST['brugernavn'];
$password_login = $_POST['password_login'];
// TRUE / FALSE CONDITION TIL HÅNDTERING AF ERRORS
$valid = true;
// VALIDATE BRUGERNAVN
if (empty($_POST['brugernavn'])) {
show_login_message("Du har ikke indtastet dit navn");
$valid = false;
} else { // END EMPTY BRUGERNAVN
// BRUGERNAVN - SØG I MYSQL.
$result = $conn -> prepare("SELECT brugernavn FROM artister WHERE brugernavn = ? LIMIT 1 ");
// TILFØJ FORM INPUT TIL SØGNINGEN I MYSQL..
$result -> bind_param( "s", $brugernavn);
// GENNEMSE MYSQL
$result -> execute();
// ..SÅ INDSÆT INDHOLDET I EN VAR OG NAVNGIV SOM
$result -> bind_result($brugernavn_database);
// OPBEVAR RESULTATET
$result -> store_result();
// HENT ALLE ROWS - HVIS DER IKKE (!=)) ER ET MATCH...
if ($result -> num_rows != 1) {
show_login_message("Kunstneren findes ikke");
$valid = false;
}
// VALIDATE PASSWORD
if (empty($_POST['password_login'])) {
show_login_message("Du har ikke indtastet dit password");
$valid = false;
} else {
// PASSWORD
$result = $conn -> prepare("SELECT password FROM artister WHERE brugernavn = ? ");
// TILFØJ FORM INPUT TIL SØGNINGEN I MYSQL..
$result -> bind_param( "s", $brugernavn);
// GENNEMSE MYSQL
$result -> execute();
// ..SÅ INDSÆT INDHOLDET I EN VAR OG NAVNGIV SOM "$password_database"
$result -> bind_result($password_database);
// OPBEVAR RESULTATET
$result -> store_result();
// HVIS DER FINDES ET PASSWORD HOS KUNSTNEREN..
if ($result -> num_rows == 1) {
// HENT INDHOLD
$result -> fetch();
// KONVERTER HASHED PASS TIL STRING OG TJEK OM "password_login" MATCHER "password_database"
if (password_verify($password_login, $password_database)) {
// ER KUNSTNERNAVN OK + MATCHER PASSWORD SÅ ACCEPTER SOM "VALID" OG EKSEKVER FUNKTIONER UNDER "if valid...."
$valid = true;
} else {
show_login_message("Forkert password");
$valid = false;
}
} // END OF "if ($result -> num_rows > 0) {..."
} // END OF } else { // END EMPTY PASSWORD
} // END OF } else { // END EMPTY BRUGERNAVN
// LUK CONN TIL MYSQL
$result -> close();
if ($valid) {
// START NY SESSION FOR BRUGERNAVN
$_SESSION['brugernavn'] = $brugernavn;
// REGISTERER AT BRUGER ER LOGGED IND VED AT OPRETTE EN NY POSITIV SESSION
$_SESSION['logged_in'] = true;
// LAV NOGET HER.....
}
} // END OF "submit_login"
// END OF SECTION LOGIN ------------------------------------------------------
?>
Indlæg senest redigeret d. 05.11.2017 22:09 af Bruger #21904