Pagina 1 din 1
inregistrare automata la refresh
Scris: Joi Mar 10, 2016
de andras
Salut,
Atunci cind adaug o inregistrare in BD iar dupa iesire dau Refresh in browser, se adauga automat inca o inregistrare nedorita. Defectiunea e strict din codul scris? Multumesc.
inregistrare automata la refresh
Scris: Joi Mar 10, 2016
de MarPlo
Salut
Nu e o defectiune de cod, motivul e ca atunci cand se da Refresh, browser-ul acceseaza adresa inca o data, cu tot cu datele transmise initial.
Solutia e sa faci un auto-refresh din php, dupa ce ai inregistrat datele; astfel se elimina refresh-ul cu datele transmise.
Cod: Selectaţi tot
<?php
//gets and register data from form..
//auto-refresh
header('Location: '. $_SERVER['PHP_SELF']);
inregistrare automata la refresh
Scris: Vin Mar 11, 2016
de andras
Am incercat dar n-are efect, cred ca n-am plasat corect instructiunea. Dupa salvare (modelinsertdocument.php apelat cu ajax) am pus la sfirsitul fisierului (simplificat):
Cod: Selectaţi tot
<?php
$rezolvat = $conn->sqlExec($re); // aici se face INSERT in tabela document
header('Location: '. $_SERVER['PHP_SELF']); // apare pagina alba
if (isset($_SESSION['document']) && $_SESSION['document'] =='document')
include('modeldocument.php'); // SELECT pe tabela document - afiseaza din nou tabelul HTML cu SELECT reimprospatat (dupa caz, pe tabela de baza sau pe tabela document)
else include('modelselect.php'); // SELECT pe tabela de baza
header('Location: '. $_SERVER['PHP_SELF']); // aici nu are efect
?>
Unde este corect sa-l pun? Daca il pun inainte de SELECT apare o pagina alba, daca il pun dupa SELECT nu are efect, la Refresh mai incarca o data in tabela document chiar daca sint pe tabela de baza.
inregistrare automata la refresh
Scris: Vin Mar 11, 2016
de MarPlo
Conteaza logica si structura codului. Redirect-ul /Refresh sa se faca Doar cand sunt date trimise de la formular. Cand se aplica refresh cu header(), codul de afisare de dupa acea linie de cod, care e in aceeasi conditie if(), nu va putea fi afisat fiindca e Refresh inaintea lui.
Cam asa se face:
Cod: Selectaţi tot
<?php
//daca sunt date de formular
if(isset($_POST['nume_camp'])){
//adauga datele in mysql
//face refresh
header('Location: '. $_SERVER['PHP_SELF']);
exit();
}
else {
//restul codului necesar cand nu e actiune de adaugare in baza de date
}