PHP Post Sorunu
Selam dostlar 👋
linktr.ee mantığında bir site yapıyorum. fakat bir sorunum var.
sayfamda link eklemek için post atınca, sayfayı yenilediğim zaman post işlemi tekrarlanıyor.
sayfayı her yenilediğimde, yeni bir link ekleniyor.
bu sorunu nasıl çözebilirim?
Resim: https://www.hizliresim.com/cwfwufd
kodlar:
if ($_POST) {
if ($_POST['token'] == $_SESSION['_token']) {
if ($_POST['islem'] == "ekle") {
$insert = $db->prepare("INSERT INTO linkler SET link_name=?, link_address=?, link_owner=?");
$control_insert = $insert->execute(array($_POST['link_name'], $_POST['link_address'], $_SESSION['username']));
}else if($_POST['islem']=="sil"){
$delete = $db->prepare("DELETE FROM linkler WHERE link_id=?");
$control_delete = $delete->execute(array($_POST['deger_hidden']));
}
}
}
?>
<hr>
<h3>Link Ekle!</h3>
<form method="post">
<label for="link_name_id">Link İsmi: </label><input type="text" placeholder="youtube, facebook..." name="link_name" id="link_name_id"><br>
<label for="link_id">Link: </label><input id="link_id" placeholder="http://" type="text" name="link_address">
<input type="hidden" name="islem" value="ekle">
<input type="hidden" name="token" value="<?=$_SESSION['_token']; ?>">
<br>
<br><button>Ekle</button>
</form>
<hr>
<h3>Linklerin</h3>
<ol>
link ismi - link adresi
</ol>
<ol>
<?php
$mgryrdwadwadwdaggjf = $db->prepare("SELECT * FROM linkler WHERE link_owner=?");
$mgryrdwadwadwdaggjf->execute(array($_SESSION['username']));
if (!empty($mgryrdwadwadwdaggjf->rowCount())) {
while($fregyryrdy=$mgryrdwadwadwdaggjf->fetch()){
?>
<li>
<?=$fregyryrdy['link_name']." - ".$fregyryrdy['link_address']; ?><form method="post"><input name="deger_hidden" type="hidden" value="<?=$fregyryrdy['link_id']; ?>"><input type="hidden" name="islem" value="sil"><input name="token" type="hidden" value="<?=$_SESSION['_token']; ?>"><button>SİL!</button></form>
</li>
<?php
}
}else{
echo "eklediğiniz link Bulunmuyor.";
}
?></ol><hr>
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
işlem bitince header ile yönlendıreceksın
if ($_POST) {
if ($_POST['token'] == $_SESSION['_token']) {
if ($_POST['islem'] == "ekle") {
$insert = $db->prepare("INSERT INTO linkler SET link_name=?, link_address=?, link_owner=?");
$control_insert = $insert->execute(array($_POST['link_name'], $_POST['link_address'], $_SESSION['username']));
header('Location: xxx.php');
exit;
}else if($_POST['islem']=="sil"){
$delete = $db->prepare("DELETE FROM linkler WHERE link_id=?");
$control_delete = $delete->execute(array($_POST['deger_hidden']));
header('Location: xxx.php');
exit;
}
}
}