$_GET Probleem

Status
Niet open voor verdere reacties.

Tha Devil

Moderator
Forumleiding
Moderator
Lid geworden
1 sep 2002
Berichten
16.494
Besturingssysteem
macOS Sequoia
Nogsteeds druk bezig met het script, maar stuitte nu al op een "bug".

Als ik in de adresbalk van mijn browser de volgende code typ: admin.php?do=addmember2

dan hoort hij normaal de gegevens die er op ?do=addmember zijn ingevuld te controleren op lege velden en als die er niet zijn worden de gegevens naar de database gestuurd.

Maar als ik het dus in een keer intyp dus zonder langs ?do=addmember te zijn geweest, geeft hij aan dat er spul in de database worden toegevoegd (ik heb het zo gemaakt dat je een bevestiging krijgt te zien met de ingevoerde gegevens) maar de velden zijn dan dus leeg. Dit terwijl ik toch duidelijk aan had gegeven dan de velden niet leeg mochten zijn.

Weet iemand hoe ik dit probleem verhelp? Dus dat PHP niets in de database gaat zetten als ik het adres in mijn adresbalk zet.

Dit is het addmember2 gedeelte (bevat een switch gedeelte)
PHP:
        case "addmember2": //Voegt de gegevens aan de database toe
        $title ="Admin - Adding a member";
        foreach ($_POST as $field) //Gaat na of alles is ingevuld
        {
                if ($field == "" )
                {
                    echo "You haven't filled in all fields<BR>";
                    echo "<form method='post' action='admin.php?do=addmember'>
                           <input type='submit' value='Go Back'>
                          </form>";
                    exit();
                }
        }
        include ("config.inc");

        $connection = mysql_connect($host,$user,$password)
                      or die ("Couldn't connect to server.");

        $db = mysql_select_db($database,$connection)
                      or die ("Couldn't select database.");

        $query = "INSERT INTO User (loginName, password, firstName, lastName)
                  VALUES ('$_POST[login]', '$_POST[fpassword]', '$_POST[fname]'
                  , '$_POST[lname]')";
        mysql_query($query);
        echo "
        The following information has been added to the database:\n";

        echo "<table cellspacing='15'>";
        echo "<tr><td colspan='4'><hr></td></tr>";
        echo "<tr>\n
               <td><b>Login Name:</b></td>\n
               <td>'$_POST[login]'</td>\n
              </tr>\n
              <tr>\n
               <td><b>First Name:</b></td>\n
               <td>'$_POST[fpassword]'</td>\n
              </tr>\n
              <tr>\n
               <td><b>Last Name:</b></td>\n
               <td>'$_POST[fname]'</td>\n
              </tr>\n
              <tr>\n
               <td><b>Password:</b></td>\n
               <td>'$_POST[lname]'</td>\n
              </tr>\n";

      break;
 
Hmm na toch wat uitvogelen heb ik het script opnieuw geschreven (tenminste: dit gedeelte) en nu werkt het wel, en ben ik van het $_GET probleem af. Dit is het geworden
PHP:
case "addmember" : //Voegt een member toe
        echo "<title>Admin - Add a Member</title>";
        if ($_POST['submit']) // Controleert of submit is ingevoerd
        {
                if ($_POST[loginname] == "")
                    unset($_POST[submit]);
                if ($_POST[password] == "")
                    unset($_POST[submit]);
                else
                {
                    include("config.inc");
                    $connection = mysql_connect($host, $user, $password)
                                  or die("Couldn't connect to server.");
                    $db = mysql_select_db($database, $connection)
                                  or die("Couldn't select database.");
                    $query = "INSERT INTO user (
                              loginname,
                              password,
                              firstname,
                              lastname)
                              VALUES (
                              '$_POST[loginname]',
                              '$_POST[password]',
                              '$_POST[firstname]',
                              '$_POST[lastname]')";
                    mysql_query($query) or die(mysql_errno() . ": " . mysql_error());
                    echo "member toegevoegd";
                 }
        }
        else
        {
                    echo "
                    <FORM action='admin.php?do=addmember' METHOD='post'>
                    Login Naam:
                    <BR><INPUT TYPE='text' NAME='loginname' SIZE='20' MAXLENGTH='50'>
                    <BR>Password:
                    <BR><INPUT TYPE='password' NAME='password' SIZE='20' MAXLENGTH='80'>
                    <BR>Voornaam:
                    <BR><INPUT TYPE='text' NAME='firstname' SIZE='20' MAXLENGTH='20'>
                    <BR>Achternaam:
                    <BR><INPUT TYPE='text' NAME='lastname' SIZE='20' MAXLENGTH='20'>
                    <INPUT TYPE='hidden' NAME='submit'  VALUE='maakt_niet_uit'>
                    <P><INPUT TYPE='submit' VALUE='Add Member'>
                    </FORM>";
        }
                    echo "<form method='post' action='admin.php'>
                    <input type='submit' value='Back to Admin'>
                    </form>
                    <p>Copyright Devil's Organisation</p>\n</center>";
      break;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan