0

hello friends, first i want say i'm sorry for the title it is very strange.
i have a page where a user insert data in DB table, include he's username "email" but i whant when user click to insert if he is not log in the website to show a pop up page to require him to log in or register like on this picture 48b3e9678dee21ce0fcc5aa172b015c1
here is my code

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "formulaireajout")) {
  $insertSQL = sprintf("INSERT INTO data (client, article, SKU, quantity, shipping, prix, total) VALUES (%s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['client'], "text"),
                       GetSQLValueString($_POST['article'], "text"),
                       GetSQLValueString($_POST['SKU'], "text"),
                       GetSQLValueString($_POST['quantity'], "int"),
                       GetSQLValueString($_POST['Shipping'], "double"),
                       GetSQLValueString($_POST['prix'], "double"),
                       GetSQLValueString($_POST['total'], "double"));

  mysql_select_db($database_marketbase, $marketbase);
  $Result1 = mysql_query($insertSQL, $marketbase) or die(mysql_error());

here is the form

<form action="<?php echo $editFormAction; ?>" method="POST" name="formulaireajout" class="formulaireajout" id="formulaireajoutid">
        <label>Product<input name="article" type="text" id="champajout" value="<?php echo $row_itemdetaille['article']; ?>" readonly></label>
        <label>Select Color<select name="aditional" id="aditional">
        <option value="black" selected="selected">select color</option>
           <option value="black">Black</option>
           <option value="white">White</option>
         </select></label><br>
         <label>Price<input name="prix" type="text" id="pricefield" value="<?php echo $row_itemdetaille['prix']; ?>" readonly></label>
         <label> Quantity<input name="quantity" type="number" min="1" max="20" value="1" onKeyPress="calculateTotal()" id="quantityfield"></label>
        <label>Shipping<select name="Shipping" id="shipping"> Shipping
        <option value="0" selected="selected">Shipping</option>
           <option value="0">0.00</option>
           <option value="9.80">9.85</option>
           <option value="19.60">19.80</option>
         </select></label>
        <label>Total<input name="total" type="text" id="totalfield" value="<?php echo $initialTotal;?>" readonly></label>
         <input name="client" type="hidden" value="<?php echo $_SESSION['MM_Username'];?>">
         <input name="addtocart" type="submit" id="submittocart" value="INSERT">
         <input type="hidden" name="MM_insert" value="formulaireajout">
        </form>
3
Contributors
15
Replies
62
Views
3 Years
Discussion Span
Last Post by iamthwee
Featured Replies
  • 1

    The problem is a lack of clarity with your request. The other problem is the answer relates to how you have written the rest of your code as well. Read More

  • 1

    >please somebody help me here?? You have been getting help. There has been some advice and guidance provided but you have indicated that is not what you wanted. >what you told me to do before is not what i need cause when user go to page direcly he will redirect … Read More

  • 2

    Just a few thoughts... If what I understand is correct, you are simply asking you have some sort of forum like daniweb where you have a message box. The user cannot submit the answer box unless he is logged in. Normally, you would just check if their session is logged … Read More

0

Logic:

If session is not set redirect to another page with logon prompt.

How you implement that in your code is up to you.

0

there is my problem but i tried this and i got a syntax error on line 15

mysql_select_db($database_marketbase, $marketbase);
  $Result1 = mysql_query($insertSQL, $marketbase) or die(mysql_error());

  $insertGoTo = "../myaccount/shopping-cart.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}
if (!isset($_session))$insertGoTo = "../myaccount/login.php";
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  header(sprintf("Location: %s", $insertGoTo));
}();
0

it don't work with } and delete it () and } it work but the logic i not what i need because when user go to the page i need if he is no login he can't view the the page it direct redirect to login page, i want ot redirect only is he try insert data in db and he is not login. thank you.

0

Why not do something simple like store a value in a hidden element such as true or false representing if the user is logged on. When the user tried to take the action, check this value. If the user is not logged on, show the login dialog box.

This would prevent the post back action.

However, you still have to check the user status when the post back does occur since you can't be 100% sure the client side check is working as expected.

This solution will likely work in most instances without a postback.

0

thank you to reply
you can't see on my post the client field is hiden...:
all what you say i think is what i find but i don't know how to do

0

someone can help here please??? to create a fonction who display a pop up window if user are trying to insert data into db when i fied miss????

1

The problem is a lack of clarity with your request. The other problem is the answer relates to how you have written the rest of your code as well.

Edited by iamthwee

0

what you told me to do before is not what i need cause when user go to page direcly he will redirect to other page what i need is if use try submit when he is not connect to be redirect

0

i have generated this js code it check if field is empty and it alert error message it generated in dreamweaver
how can i make the alert message to show popup window like the pictures

<script type="text/javascript">
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
</script>

6fae4c3d45739407724f445a8e788e52

1

please somebody help me here??

You have been getting help. There has been some advice and guidance provided but you have indicated that is not what you wanted.

what you told me to do before is not what i need cause when user go to page direcly he will redirect to other page what i need is if use try submit when he is not connect to be redirect

If you read over my previous suggestion, I think my solution would work. If a user tries to submit, but the user is not logged in, you should prompt the user to log in, correct? Ok, then you need to handle that event. When the user hits the submit button, you need to figure out if the user is logged in. How can you do that? One way is to store the value of being logged on somewhere... a hidden element, a cookie, etc... If you dont handle it client side, then you would allow the page to post back and then check the logon status server side. You would have that logon status in a session variable, cookie, etc...

I think it should be relatively easy to handle this client side (and then have server side code to make sure once you allow the user to submit to make sure that your client side code wasnt bypassed). You can have a hidden element that stores either true or false. When the user hits the submit button, check that value. If its false, the user is not logged in, therefore show the popup for the user to log in. If the user is logged in, then allow the process to continue.

If you want someone to provide you with the exact code, not sure if that is going to happen.

Votes + Comments
well said
2

Just a few thoughts...

If what I understand is correct, you are simply asking you have some sort of forum like daniweb where you have a message box. The user cannot submit the answer box unless he is logged in.

Normally, you would just check if their session is logged in then redirect to a login page if they are not. Your request is slightly different because your login is actually a modal box rather than a page. In that case you would need jquery to help you along so authentication can be handled asynchronously without a page refresh.

The reason, I'm hesitant to help (and probably others too) is because I know this is going to be a case that will span several pages, looking at your recent request in the javascript forums you don't even know how to create a running total.

http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/471742/how-to-set-do-and-while-loop-on-a-exissting-jquery-function

I would recommend taking the time out to learn jquery with PHP properly. Otherwise it is just going to be a constant yo-yo with us and nothing ever gets truly learned properly.

Good luck

Edited by iamthwee

0

thank you for help "i called someone can help here just cause didn't know what to do next" brief
it will be better for me to do in client side for it i have hide the client username field with css, and place js client side verification when user is not connect it allert the the field client is required but how can i show the popup for the user to log in ???? i have my connection phph code
here is the js code who alert the error mesage.
HTML

<form action="<?php echo $editFormAction; ?>" method="POST" name="formulaireajout" class="formulaireajout" id="formulaireajoutid" onSubmit="MM_validateForm('clientmail','','RisEmail');return document.MM_returnValue">

JAVASCRIPT

<script type="text/javascript">
function MM_validateForm() { //v4.0
  if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
      if (val) { nm=val.name; if ((val=val.value)!="") {
        if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
          if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
        } else if (test!='R') { num = parseFloat(val);
          if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
          if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
            min=test.substring(8,p); max=test.substring(p+1);
            if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
      } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
} }
</script>

should i creat a div where i will include login page ???
and to raplace in alert getelementbyid ??? id of div who include login ??

Edited by chrisschristou: new idea i need help to achieve.

0

I would recommend taking the time out to learn jquery with PHP properly. Otherwise it is just going to be a constant yo-yo with us and nothing ever gets truly learned properly.

^^Re-read the above for clarification.

And just as a side note always authenticate these things server side. It really is the only way.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.