Jump to content

foreach help??


darkfreaks

Recommended Posts

ok iget the following error:

 

invalid arguement for foreach on line 71

 

my code is:

 

 

<?php
// This will warn the user if there are html vars in his data
foreach ($_POST as $PostVar1) { //line  71
    $PostVar2 = htmlspecialchars($PostVar1);
    if ($PostVar1 != $PostVar2) {
        $g++; }
//This will make it so it only shows the error one time...
     
} ?>

Link to comment
https://forums.phpfreaks.com/topic/95185-foreach-help/
Share on other sites

this is my whole code where am i going wrong ???

 

 <?php
  
  $Title =isset($HTTP_POST_VARS['Title']);
$Description =isset($HTTP_POST_VARS['Description']);
/****************************************
************ERROR CHECKING!*************
* This will check for many erreros like
* feilds that are left blank and such.*
****************************************/
echo "Checking for errors...<br>";
// This will look for errors in the ranks...
if ($Type == "Quiz") { // This is make sure there is a rank (there is only a rank if its a quiz)
    while ($i <= 3) { // This will load up the ranks into the include.php
        $i++;
        $RankVar = "RankLvl" . $i; //This is a temp var
        if ($HTTP_POST_VARS[$RankVar] == "") { // This is b/c the change in the last element in the array
            echo "<b>Error: </b> Rank #$i is blank.<br>\n";
            $Error = 1;
        } 
    } // while  
    // Clear all temp vars for later use
    $i = "";
    $k = "";
} // End of rank checker.  
// Now to check the rest (questions, options, answers)
$i = $Number;
while ($i >= 1) {
    $i--;
    $QuestNumber++; 
    // This is to make a var that can be used to call the right value in $HTTP_POST_VAR array
    $QuestVar = "Quest" . $QuestNumber;
    if ($HTTP_POST_VARS[$QuestVar] == "") {
        echo "<b>Error: </b> You left question #$QuestNumber blank.<br>\n";
        $Error = 1;
    } 
    // Now for the options
    $g = $Options;
    while ($g >= 1) {
        $g--;
        $OptNumber++; 
        // This is same as for $QuestVar but for the options
        $OptVar = "Opt" . $QuestNumber . "_" . $OptNumber;
        if ($HTTP_POST_VARS[$OptVar] == "") {
            echo "<b>Error: </b> For question #$QuestNumber, option #$OptNumber was left blank.<br>\n";
            $Error = 1;
        } 
    } // while    
    // This will clear all the temp vars...
    $g = "";
    $OptNumber = ""; 
    // Now for the amswers...
    $AnsVar = "Ans" . $QuestNumber; //This sets up the call for HTTP vars...
    $AnsTmp = $HTTP_POST_VARS[$AnsVar]; //This is the call...
    $Ans = "Opt" . $QuestNumber . "_" . $AnsTmp; // Now we make the answer = to the options test...
    if ($HTTP_POST_VARS[$AnsVar] == "") {
        echo "<b>Error: </b> Answer for question #$QuestNumber in blank.<br>\n";
        $Error = 1;
    } 
} // while

// Need to rest the vars for later use in the real program...
$QuestNumber = "";
$AnsTmp = "";
$AnsVar = "";
$Ans = "";
// Option check done!
// This will warn the user if there are html vars in his data
foreach ($HTTP_POST_VARS as $PostVar1) { 
    $PostVar2 = htmlspecialchars($PostVar1);
    if ($PostVar1 != $PostVar2) {
        $g++; }//This will make it so it only shows the error one time...

    } 
    

if ($g >= 1) {
    echo "<b>Warning: </b>You have entered data that has html tags in it. All html will be filtered.<br>\n";
} 
$g = "";
// end of check

$Title =isset($_POST['Title']);
$Description =isset($_POST['Description']);
    if ($Title == ""||!isset($Title)) {
        echo "<b>Error: </b> You <i>must</i> have a title.<br>\n";
    $Error=1;
    } 
    if ($Description == ""||!isset($Description)) {
        echo "<b>Error: </b> You <i>must</i> have a description.<br>\n";
  $Error=1;
    }
  

    /*****************************************
     ************END OF ERROR CHECK***********
     *****************************************/

    /***************************************
     *************MAIN PROGRAM**************
     * Here is the rest of the script..
     ***************************************/
} elseif ($Error >= 1) {
    echo "<b>Error: </b> Sorry the data you inputed did not pass our error system. Please go back and fix the above errors.\n<br><br>\n";
} else{ // Go proggy go!
    // Filter out any html code the user might had put in.
    $Title = htmlspecialchars($Title);
    $Description = htmlspecialchars($Description); 

    // Debug stuff...
echo "Debug<br>\n";
  echo "<textarea name=\"debug\" cols=\"40\" rows=\"20\">\n";
   print_r($HTTP_POST_VARS);
echo "</textarea>\n<br>\n<br>\n"; 


    // This is saveing stuff

    $DirStat = mkdir("./saved/$DirName", 0777); //This should reture a 1 if the dir was made the "@" stops php from outputting a gay error msg. 
    // This sees if the dir was made.
    if ($DirStat == 0) {
        echo "<b>Error: </b>$DirName was not made, make sure you have the right permmissons or you are not tring to make 2 of the same directories.<br>\n";
    } elseif ($DirStat == 1) { // If it passes here then we can go on to make the files etc...
        echo "$DirName was succesfulyt made!<br>\n"; 
        // Include.php go!
        $FileInc = fopen("./saved/$DirName/include.php", "w+"); 
        // this will write to include...
        fwrite($FileInc, "<?php\n");
        fwrite($FileInc, "\$Title = \"$Title\";\n");
        fwrite($FileInc, "\$Description = \"$Description\";\n");
        fwrite($FileInc, "\$Type = \"$Type\";\n");
        fwrite($FileInc, "\$HTMLOut = \"$HTMLOut\";\n");
        fwrite($FileInc, "\$Store = \"$Store\";\n");
        $QuizID = crypt($Title); //Cryot is up be-othc!
        fwrite($FileInc, "\$QuizID = \"$QuizID\";\n"); //This will be used for cookies, each quiz needs it own id.
        if ($Name) { // If there is a custom name do this!
            fwrite($FileInc, "\$Name = \"$Name\";\n");
        } else { // If its blank
            fwrite($FileInc, "\$Name = \"\";\n");
        } 
        // Now for the rank array
        if ($Type == "Quiz") { // Check if its a quiz and thus there is a rank...
            fwrite($FileInc, "\$Rank = array(\n");
            while ($i <= 3) { // This will load up the ranks into the include.php
                $i++;
                $RankVar = "RankLvl" . $i; //This is a temp var
                $HTTP_POST_VARS[$RankVar] = htmlspecialchars($HTTP_POST_VARS[$RankVar]); //html filter for the quiz ranks
                if ($i == 4) { // This is b/c the change in the last element in the array
                    fwrite($FileInc, "	\"$i\" => \"$HTTP_POST_VARS[$RankVar]\"\n");
                } else {
                    fwrite($FileInc, "	\"$i\" => \"$HTTP_POST_VARS[$RankVar]\",\n");
                } 
            } // while
            fwrite($FileInc, ");\n"); 
            // Clear all temp vars for later use
            $i = "";
            $k = "";
        } //end    
        // Now for the question array...
        fwrite($FileInc, "\$Quiz = array( \n"); 
        // Now for the arrays....
        $i = $Number;
        while ($i >= 1) {
            $i--;
            $QuestNumber++; 
            // This is to make a var that can be used to call the right value in $HTTP_POST_VAR array
            $QuestVar = "Quest" . $QuestNumber;
            $HTTP_POST_VARS[$QuestVar] = htmlspecialchars($HTTP_POST_VARS[$QuestVar]); //HTML char filter for the questions
            fwrite($FileInc, "	\"$QuestNumber\" => array(\"Question\" => \"$HTTP_POST_VARS[$QuestVar]\",\n"); 
            // Now for the options
            fwrite($FileInc, "		\"Options\" => array(");
            $g = $Options;
            while ($g >= 1) {
                $g--;
                $OptNumber++; 
                // This is same as for $QuestVar but for the options
                $OptVar = "Opt" . $QuestNumber . "_" . $OptNumber;
                $HTTP_POST_VARS[$OptVar] = htmlspecialchars($HTTP_POST_VARS[$OptVar]); //html filter for the options  
                // Thisis becasue there is no "," at the end of the array.
                if ($Options == $OptNumber) {
                    fwrite($FileInc, "\"$HTTP_POST_VARS[$OptVar]\"),\n");
                } else {
                    fwrite($FileInc, "\"$HTTP_POST_VARS[$OptVar]\",");
                } 
            } // while    
            // This will clear all the temp vars...
            $g = "";
            $OptNumber = ""; 
            // Now for the amswers...
            $AnsVar = "Ans" . $QuestNumber; //This sets up the call for HTTP vars...
            $AnsTmp = $HTTP_POST_VARS[$AnsVar]; //This is the call...
            $Ans = "Opt" . $QuestNumber . "_" . $AnsTmp; // Now we make the answer = to the options test...
            $HTTP_POST_VARS[$Ans] = htmlspecialchars($HTTP_POST_VARS[$Ans]); //html filter for the answers
            fwrite($FileInc, "		\"Answer\" => \"$HTTP_POST_VARS[$Ans]\",\n"); 
            // THis is for the chagne in syntax for the last object in the array
            if ($Number == $QuestNumber) {
                fwrite($FileInc, "		)\n");
            } else {
                fwrite($FileInc, "		),\n");
            } 
        } // while
        fwrite($FileInc, ");\n"); //end of array
        fwrite($FileInc, "?>");
        echo "include.php was <b>made</b>.<br>\n";
        fclose($FileInc); //include.php made and done    
        // index.php (aka step 1) go!
        /* Basicly how this works is it copies the data from a file
			*  into a string and then writes that string to a different
			*  file in a differnt place.*/
        $FileStep1 = fopen("./saved/$DirName/index.php", "w+"); //File tah twill be written to...
        $FileName = "quiz1.php"; //File that the data is being copied from...
        $FileContents = fopen ($FileName, "r"); // open it!
        $FileStep1Str = fread($FileContents, filesize($FileName)); //get the data for writing
        fwrite($FileStep1, $FileStep1Str); //write it!
        fclose ($FileContents); //close it!
        $FileContents = ""; //Clear this var for later use.
        $FileName = ""; //Clear this var for later use.
        echo "index.php was <b>made</b>.<br>\n"; //tell the user!    
        // done!
        // quiz2.php (aka step 2) go!
        /* Basicly how this works is it copies the data from a file
			*  into a string and then writes that string to a different
			*  file in a differnt place.*/
        $FileStep1 = fopen("./saved/$DirName/quiz2.php", "w+"); //File tah twill be written to...
        $FileName = "quiz2.php"; //File that the data is being copied from...
        $FileContents = fopen ($FileName, "r"); // open it!
        $FileStep1Str = fread($FileContents, filesize($FileName)); //get the data for writing
        fwrite($FileStep1, $FileStep1Str); //write it!
        fclose ($FileContents); //close it!
        $FileContents = ""; //Clear this var for later use.
        $FileName = ""; //Clear this var for later use.
        echo "quiz2.php was <b>made</b>.<br>\n"; //tell the user!    
        // done!
        // footer.php go!
        /* Basicly how this works is it copies the data from a file
			*  into a string and then writes that string to a different
			*  file in a differnt place.*/
        $FileStep1 = fopen("./saved/$DirName/footer.php", "w+"); //File tah twill be written to...
        $FileName = "footer.php"; //File that the data is being copied from...
        $FileContents = fopen ($FileName, "r"); // open it!
        $FileStep1Str = fread($FileContents, filesize($FileName)); //get the data for writing
        fwrite($FileStep1, $FileStep1Str); //write it!
        fclose ($FileContents); //close it!
        $FileContents = ""; //Clear this var for later use.
        $FileName = ""; //Clear this var for later use.
        echo "footer.php was <b>made</b>.<br>\n"; //tell the user!    
        // done!
        if ($Store == "Yes") {
            // score.dat go!
            /* Basicly how this works is it copies the data from a file
			*  into a string and then writes that string to a different
			*  file in a differnt place.*/
            $FileStep1 = fopen("./saved/$DirName/score.dat", "w+"); //File that will be written to...
            #$FileName = "score.dat"; //File that the data is being copied from...
            $FileContents = fopen ("score.dat", "r"); // open it!
            $FileStep1Str = fread($FileContents, filesize("score.dat")); //get the data for writing
            fwrite($FileStep1, $FileStep1Str); //write it!
            chmod("./saved/$DirName/score.dat", 0777);
            fclose ($FileContents); //close it!
            $FileContents = ""; //Clear this var for later use.
            #$FileName = ""; //Clear this var for later use.
            echo "score.dat was <b>made</b>.<br>\n"; //tell the user!    
            // done!
        } 

        echo "<b>Done </b> Click <a href=\"./saved/$DirName/\">Here</a> to go to your $Type<br>\n";
    } //All Saves are done.
} 
/****************************************
***********END OF MAIN PROGRAM**********
****************************************/

?>

Link to comment
https://forums.phpfreaks.com/topic/95185-foreach-help/#findComment-487961
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.