v2.5.2
Giriş yap

PHP Post Sorunu

mami
1,244 defa görüntülendi ve 1 kişi tarafından değerlendirildi

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>


demo
1258 gün önce

post'tan gelen token ve session'dan gelen token'i karşılaştırıp işleme aldıktan sonra; örneğin if($insert) {.... şeklinde insert işlemi başarılıysa session token'i unset etmeyi deneyebilirsin. böylece her token ile tek 1 işlem yapılır