الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في ادخال الى قاعدة البانات

بدأه نهو الحالي في 17 مارس 2012 · 17 رد · 892 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام علكيم ورحمة الله وبركاته

استفسار عندي فروم والمشكلة انو عندا الادخال

اذا ضغط المستخددم مرتين عن submit يتم ادخل المعلومات مرتين لو ضغط 3 مرات يتم ادخال المعلومات 3 مرات على كل حال هو مايقدر يضغط اكتر من 4 مرات الانو الصفحة راح تتحدث في اربع تواني

لكن هذا مشكل لانو لو كل مستخم يدخل اربع مرات بوست لكل موضع راح تمتلئ قاعدت البينات من دون فائدة

ملاحظة الفورم يحتوى على الكابتش ومع ذالك يتم الادخال اربع مرات لو هو ضغط اربع مرات بسرعة على submit

يرجى اعطاء متال بكود

#2

حاول بعد الظغط على submit اقتل البرمجة على طول

1
#3
legendq كتب:

حاول بعد الظغط على submit اقتل البرمجة على طول

اريد الطريقة متال

#4

ممكن ارفاق الملف لحل المشكلة إن شاء الله

مبرمج نظم معلومات

#5

ارفق الكود

#6

الكود كا اي كود

متلا

if(isset($_POST['sb']))	 {

ايش راح ينفذ الكود

///////////////////////////////

#7

راجع هذا الرابط واقرء التعليقات

http://www.daniweb.com/web-development/php/threads/100606

او هذا الرابط

http://www.superiorwebsys.com/blog/48/How_to_stop_form_from_submitting_with_page_refresh_using_PHP/

تم تعديل هذه المشاركة بواسطة M.B.O في 18 مارس 2012 في 00:42

1 −1

M.B.O

Mohamed Bin Othman

إبن المكلا

يابني البشر ماذا فعلتم بالبشر !!

إسـألـنـي

#8
<?php   
extract($_POST);

if(isset($_POST['sending']) && isset($_POST['sending']) == 'go'  && !$_COOKIE['add']) {
// هنا كود الادخال في قعدة البينات


	setcookie('add','from',time()+60);
	 header("Location: ".$_SERVER['PHP_SELF']."");
	exit;


}
?>

تم تعديل هذه المشاركة بواسطة legendq في 18 مارس 2012 في 00:48

1
#9
M.B.O كتب:

شكرااا للاجابة لكن ليس هذا ما قصدته

legendq كتب:

<?php   
extract($_POST);

if(isset($_POST['sending']) && isset($_POST['sending']) == 'go'  && !$_COOKIE['add']) {
// هنا كود الادخال في قعدة البينات


	setcookie('add','from',time()+60);
	 header("Location: ".$_SERVER['PHP_SELF']."");
	exit;


}
?>

شكرااااااااا بارك الله فيك اخي الكريم لكن لم تنفع ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

لا افهم لماذا يتم اخد البوسات الاخرى مع انو المفروض ياخد البوست الاول فقط ويتم تجهال بوستات الاخرى المتتالية

غير منطي اذا ضغط هو اربع مرات على بوست يتم نشر مقالواا اربع مرات

تم تعديل هذه المشاركة بواسطة نهو الحالي في 19 مارس 2012 في 23:36

#10

استخدم الاستعلام هل الموضوع موجود في قاعدة البينات مكرر ام لا اذ مكرر اعطية خطاء

او اخفي الفورم مباشرة بعد ارسالة

تم تعديل هذه المشاركة بواسطة legendq في 20 مارس 2012 في 00:07

#11

طيب كيفية اخفاء الفورم بعد الاستعلام

<html>
<?php

$db_loclhost='loclhost';
$db_user='user';
$db_pass='123456';
$db_name='ins';


$con=mysql_connect($db_loclhost,$db_user,$db_pass) or die ('cat connect');
$sel=mysql_select_db($db_name);

if(!$sel){
die ('not database select');
}

?>

<?php

if(isset($_POST['submit'])){

$uesr=$_PSOT['uesr'];
$pass=$_POST['pass'];
$email=$_POST['email'];

$ins="INSERT INTO *FORM USER ('user','pass','email') values ('$user','$pass','$email')";


}
?>

<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">

<input name='uesr' type='text' /> <br />
<input name='pass' type='text' /> <br />
<input name='email' type='text' /> <br />
<input name='submit' type='submit'  value='inscription' /> <br />

<form>



</html>
#12

up

#13

بعد ما يضغط submit

يحوله ع طول لا تخليه في نفس الصفحه

مثلا اذا كان الفورم صحيح يحوله ع صفحه فيها ان المعلومات صحيحه او خطأ

$query = $mysqli->query($sql);
	   if ($query){

       	header ("Location: ../list.php");

       }else{
       	echo "يوجد لديك أحد الأخطاء التالية".$mysqli->error;
       }

مثلا بعد ما يعبي الحقول وخلاص يحوله ع الصفحه اسمها list.php

مثال ع كود كتبته عندي

#14

عموما الهدير يأخد وقد حتى يتم اعداة التحويل وفي هذا الوقت يمكن الضغط على submit رابع مرات على الاقل انا ابي اخفي الفورم مباشرتا بعدا submit

بارك الله فيك اخي الكريم على مشاركتك

#15
note("OK");

بدال الهيدر اذا ما تبي

وفي الكود تبعك سوي شرط تحقق من البيانات اذا كانت موجودة لا يسوي لها ابديت واذا فاضيه يعبي البيانات

اتمني اني اكون افدتك ونشوف الخبراء

مثال :

$query = 'SELECT custno FROM customers WHERE custom="' . mysql_real_escape_string($number) . '"';

$result = mysql_query($query);

if ($result && mysql_num_rows($result) > 0) die("<p>Customer already exists!</p>");

تم تعديل هذه المشاركة بواسطة احب الورد في 27 مارس 2012 في 04:11

#16

أخي الغالي ,,

عليك استخدام الجلسات كالتالي :

<?php
session_start();


$_SESSION['Submit']="";

if(isset($_POST['submit']))
{
if($_SESSION['submit'])
{
////هنا الكود

}
else{
}

}

ان شاء الله تزبط معك

#17

استخدم الهيدر بذلك حتى لو قام بعمل ريفريش لن يقول له هل تريد إرسال الطلب مره أخرى

أرشح هذا الكود الذي أستخدمه في مثل هذه الأمور

	header('Location: ' . $_SERVER[HTTP_REFERER]);
	exit();

طبعا بعد التأكد من إرسال الطلب وحفظ البيانات المرسله يتم كتابه الكود السابق والذي يقوم بإعادة توجيه المتصفح إلى الصفحة التي تم الإرسال منها

CMS Sfhati , Website Generator


نظام إدارة المحتوى صفحتي ... جربه الآن 


 


small-logo.png

#18

لم يتم اريد اخفاء الفورم فورااا والتوجه الى صفحة اخرى تم لو عاد وادخل نفس المدخلات عادي يتم ادخلها

تم تعديل هذه المشاركة بواسطة نهو الحالي في 14 أبريل 2012 في 21:23

مواضيع مشابهة