PHP Form not directing to correct pages

后端 未结 4 1120
挽巷
挽巷 2021-01-26 18:11

I\'m making a login page for the admins to make some changes to a website easily. However, the login page isn\'t working correctly. It won\'t go to the error page Invali

相关标签:
4条回答
  • 2021-01-26 18:42

    Two problems are joining forces to cause this error. First, your PrepSQL function does not echo the response, and neither does the code that calls it. You need to echo or print the response so that it appears in your generated HTML.

    <?php echo PrepSQL($AdminChanges); ?>
    

    Second, you need to encapsulate that value of the action attribute in double-quotes, like this:

    <form action = "<?php echo PrepSQL($AdminChanges); ?>"  method="post">
    

    Also note that your code assumes that your mysql_query() statements were successful. For troubleshooting purposes, you should at least add an or die(mysql_error()) statement to the end of the mysql_query() lines. This will allow your code to provide some feedback when the query fails.

    Additionally, please note that your query-handling method will never result in a valid login response.

    $checkUserName = mysql_query($checkUserNameQuery);
    $checkPassWord = mysql_query($checkPassWordQuery);
    if (($userName == $checkUserName) && ($passWord == $checkPassWord))
    

    mysql_query() returns a MySQL resource, not a single field from the database. Your code attempts to compare that resource to the supplied username and password, and the comparison will always fail. For details about handling the results of mysql_query() see the documentation.

    0 讨论(0)
  • 2021-01-26 18:44

    Replace: PrepSQL($AdminChanges);

    with: print PrepSQL($AdminChanges);

    0 讨论(0)
  • 2021-01-26 18:59

    Try this:

    <form action = "<?php echo PrepSQL($AdminChanges); ?>"  method="post">
    

    You need to echo the value.

    0 讨论(0)
  • 2021-01-26 19:07

    There are 2 errors I noticed:

    Your $_POST['submit'] if statement doesn't let $AdminChanges be set for the form unless it has already been submitted.

    To fix this you could change your if submit statement to just redirect to your invalid login page like so:

    if (($userName == $checkUserName) && ($passWord == $checkPassWord)) 
    {
        //Correct info do what you need to here
    }
    else 
    {
        header("Location: InvalidLogin.html");
        exit();
    }
    

    And also:

    You need to change the action to go post to this page.

    <form action="<? $_SERVER['PHP_SELF'];?>"  method="post" enctype="multipart/form-data">
    
    0 讨论(0)
提交回复
热议问题