【问题标题】:White Screen on form post表单帖子上的白屏
【发布时间】:2011-08-13 14:03:14
【问题描述】:

当用户发布我制作的表单时,我出现了白屏死机。有趣的是,当我作为网站的管理员(该网站使用 wordpress 运行)在表单中发布相同的数据并提交时,它可以工作,但是当用户这样做时,它会出现白屏并提供帮助。以下是我正在使用的表单数据和其他一些代码。

这是表单部分的代码(我知道这不是很好的代码,我还在学习)

    function bio_form(){
global $wpdb, $current_user;

//get current user info
get_currentuserinfo();  

$yes = $_GET['submitted'];

//check log in
if(!is_user_logged_in()) {  
    //user isnt logged in
    echo "You must be logged in to use this form";
    //show login form
    if (!(current_user_can('level_0'))){
        echo "<h2>Login</h2>";
        echo "<form action=" . get_option('home') . "/wp-login.php method='post' enctype='multipart/form-data'>";
        echo "<input type='text' name='log' id='log' value='" . wp_specialchars(stripslashes($user_login), 1) . "' size='20' />";
        echo "<input type='password' name='pwd' id='pwd' size='20' />";
        echo "<input type='submit' name='submit' value='Send' class='button' />";
        echo "<p>";
        echo "<label for='rememberme'><input name='rememberme' id='rememberme' type='checkbox' checked='checked' value='forever' /> Remember me</label>";
        echo "<input type='hidden' name='redirect_to' value=" . $_SERVER['REQUEST_URI'] . " />";
        echo "</p>";
        echo "</form>";
        echo "<a href='" . get_option('home') . "/wp-login.php?action=lostpassword'>Recover password</a>";
        //add register link
    } else { 
        echo "<h2>Logout</h2>";
        echo "<a href=" . wp_logout_url(urlencode($_SERVER['REQUEST_URI'])) . ">logout</a><br />";
    }   
}else{
    $gg = false;
    if($yes == NULL){
        $id = $_GET['enID'];
        $em = $_GET['em'];
        $sub = $_GET['submit'];
        if($id == NULL || $em == NULL){     
            echo "<div align='center'><form action=''>";
            echo "<p>Plese use the email you used on the your entry, and the entryID that was generated for your entry.</p>";
            echo "Email: <input type='text' name='em' value='$em'></input></br>";
            echo "EntryID: <input type='text' name='enID' value='$id'></input></br>";
            echo "<input type='hidden' name='submit' value='yes'></input>";
            echo "<input type='submit' value='submit'></input></form></div>";
    }else{
        $sql = "SELECT * FROM `" . WP_BIO_GIRLS_DATA . "`"; 
        $users = $wpdb->get_results($sql);  
        foreach($users as $user){
            if(($user->id == $id)&& ($user->email == $em)){
                $gg = true;
                break;
            }
        }   
    }
}else{
    $gg = true;
}

    if($gg == true){
        //user is logged in
        $sql = "SELECT * FROM `" . WP_BIO_GIRLS . "`";  
        $users = $wpdb->get_results($sql);

        //Check to see if user is in GG DB
        $userThere = false;

        foreach($users as $user){
            if($user->user_id == $current_user->ID){    
                $userThere = true;
                break;
            }
        }

        //If not in GG DB add to it
        if($userThere == false){
            $sql = "INSERT INTO `" . WP_BIO_GIRLS . "` (user_id,title1,title2,title3,title4,title5,title6,title7,title8,title9,title10,title11,title12,title13,title14,title15) VALUES ($current_user->ID,'What game consoles (if any) do you own & which is your favorite?','What are your Gamertags & corresponding gamerscores for those consoles?','What are your top 3 games? Movies? Favorite Genre?','What nerd icon, hero, or villian do you have a crush on?','What was your first exposure to nerd culture?','What is your dream game?','What would be your ideal character to cosplay?','What do you feel makes nerd culture unique?','What do you feel nerd culture lacks?','How do you feel about professional Video Gaming?','What superpower would you have and would  / should you register it?','What is the worst pick up line you have ever heard?','Do you find Murdoc (our mascot) sexy?','How many hours a day would you say you spend nerding out?','How do you envision D-day coming about?')";
            $insert = $wpdb->query($sql);
        }

        //Place to get post and store data
        $fName = $_GET['firstname'];
        $lName = $_GET['lastname'];
        $email = $_GET['email']);
        $dName = $_GET['disname'];
        $enID = $_GET['eid'];
        $Q1 = $_GET['Q1'];
        $Q2 = $_GET['Q2'];
        $Q3 = $_GET['Q3'];
        $Q4 = $_GET['Q4'];
        $Q5 = $_GET['Q5'];
        $Q6 = $_GET['Q6'];
        $Q7 = $_GET['Q7'];
        $Q8 = $_GET['Q8'];
        $Q9 = $_GET['Q9'];
        $Q10 = $_GET['Q10'];
        $Q11 = $_GET['Q11'];
        $Q12 = $_GET['Q12'];
        $Q13 = $_GET['Q13'];
        $Q14 = $_GET['Q14'];
        $Q15 = $_GET['Q15'];


    if($dName != NULL && $email != NULL && $lName != NULL && $fName != NULL && $enID != NULL && ($_GET['submitted'] != NULL)){  
        //Call entry id db to see if they are a GG.
        echo "<div align='center'>Information was saved!!</div>";

        //Store database
        $sql = "UPDATE `" . WP_BIO_GIRLS . "` SET FirstName='$fName', LastName='$lName', Email='$email', DisName='$dName', EID='$enID', text1='$Q1', text2='$Q2', text3='$Q3', text4='$Q4', text5='$Q5', text6='$Q6', text7='$Q7', text8='$Q8', text9='$Q9', text10='$Q10', text11='$Q11', text12='$Q12', text13='$Q13', text14='$Q14', text15='$Q15' WHERE user_id='$current_user->ID'";
        $stored = $wpdb->query($sql);   

    }else{
        //Need to fill required fields
        if(($fName == NULL || $lName == NULL || $email == NULL || $dName == NULL || $enID == NULL) && ($_GET['submitted'] != NULL)){
            echo "<div align='center'><style>h2 {color:#FF0000;}</style><h2>Please fill out all the required boxes</h2></div>"; 
    }
        //Old, needs deleted
        $status = false;    

        $sql = "SELECT * FROM `" . WP_BIO_GIRLS . "`";  
        $users = $wpdb->get_results($sql);      

        foreach($users as $user){       
            if($user->user_id == $current_user->ID){            
                $status = true;                         
                break;      
            }   
        }   

        if($status == false){       
            echo "<div align='center'><h3>Sorry only gamer girls can fill out this form</h3></div>";
        }else{
            //Show form if all checks pass

            //get current users current values
            $sql = "SELECT * FROM `" . WP_BIO_GIRLS . "` WHERE user_id='$current_user->ID'";    
            $users = $wpdb->get_results($sql);      

            //get values from db
            foreach($users as $user){
                $userID = $user->user_id;
                $fName = $user->FirstName;
                $lName = $user->LastName;
                $dName = $user->DisName;
                $email = $user->Email;
                $EID = $user->EID;
                $userQ1T = $user->title1;
                $userQ1X = $user->text1;
                $userQ2T = $user->title2;
                $userQ2X = $user->text2;
                $userQ3T = $user->title3;
                $userQ3X = $user->text3;
                $userQ4T = $user->title4;
                $userQ4X = $user->text4;
                $userQ5T = $user->title5;
                $userQ5X = $user->text5;
                $userQ6T = $user->title6;
                $userQ6X = $user->text6;
                $userQ7T = $user->title7;
                $userQ7X = $user->text7;
                $userQ8T = $user->title8;
                $userQ8X = $user->text8;
                $userQ9T = $user->title9;
                $userQ9X = $user->text9;
                $userQ10T = $user->title10;
                $userQ10X = $user->text10;
                $userQ11T = $user->title11;
                $userQ11X = $user->text11;
                $userQ12T = $user->title12;
                $userQ12X = $user->text12;
                $userQ13T = $user->title13;
                $userQ13X = $user->text13;
                $userQ14T = $user->title14;
                $userQ14X = $user->text14;
                $userQ15T = $user->title15;
                $userQ15X = $user->text15;
            }
            //create form
            echo "<style>textarea {resize:none;} table {text-align: center;}</style>";      
            echo "<div align='center' id='form'><h1>Gaming Girls Information Form</h1>";
            echo "<h7>* denoted required fields</h7>";
            echo "<table cellspacing='20' cellpadding='3'>";
            echo "<tr><td><form name='info_form' action='' method='get' ENCTYPE='multipart/form-data'></td></tr>";
            echo "<tr><td colspan='2'>*First Name: <input type='text' name='firstname' value='$fName'></input></td></tr>";  
            echo "<tr><td colspan='2'>*Last Name: <input type='text' name='lastname' value='$lName'></input></td></tr>";    
            echo "<tr><td colspan='2'>*Display Name: <input type='text' name='disname' value='$dName'></input></td></tr>";
            echo "<tr><td colspan='2'>*Email: <input type='text' name='email' value='$email'></input></td></tr>";
            echo "<tr><td colspan='2'>*OHMS Gaming EntryID: <input type='text' name='eid' value='$EID'></input></td></tr>";
            echo "<tr><td>$userQ1T : <TEXTAREA rows='3' cols='30' name='Q1'>$userQ1X</TEXTAREA></td>";  
            echo "<td>$userQ2T : <TEXTAREA rows='3' cols='30' name='Q2'>$userQ2X</TEXTAREA></td></tr>"; 
            echo "<tr><td>$userQ3T : <TEXTAREA rows='3' cols='30' name='Q3'>$userQ3X</TEXTAREA></td>";              
            echo "<td>$userQ4T : <TEXTAREA rows='3' cols='30' name='Q4'>$userQ4X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ5T : <TEXTAREA rows='3' cols='30' name='Q5'>$userQ5X</TEXTAREA></td>";
            echo "<td>$userQ6T : <TEXTAREA rows='3' cols='30' name='Q6'>$userQ6X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ7T : <TEXTAREA rows='3' cols='30' name='Q7'>$userQ7X</TEXTAREA></td>";
            echo "<td>$userQ8T : <TEXTAREA rows='3' cols='30' name='Q8'>$userQ8X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ9T : <TEXTAREA rows='3' cols='30' name='Q9'>$userQ9X</TEXTAREA></td>";
            echo "<td>$userQ10T : <TEXTAREA rows='3' cols='30' name='Q10'>$userQ10X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ11T : <TEXTAREA rows='3' cols='30' name='Q11'>$userQ11X</TEXTAREA></td>";
            echo "<td>$userQ12T : <TEXTAREA rows='3' cols='30' name='Q12'>$userQ12X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ13T : <TEXTAREA rows='3' cols='30' name='Q13'>$userQ13X</TEXTAREA></td>";
            echo "<td>$userQ14T : <TEXTAREA rows='3' cols='30' name='Q14'>$userQ14X</TEXTAREA></td></tr>";
            echo "<tr><td>$userQ15T : <TEXTAREA rows='3' cols='30' name='Q15'>$userQ15X</TEXTAREA></td></tr>";
            echo "<input type='hidden' value='yes' name='submitted'></input>";      
            echo "<tr><td colspan='2'><input type='submit' value='Submit'></input></td></tr>";      
            echo "</form></table></div>";
            }
        }
    }else{
        if($sub == true){
            echo "<div align='center'><h1>Not a vaild id</h1></div>";
        }
    }
}
}

如果有人可以在这里提供帮助,那就太好了。我想知道它是否与发布数据有关,例如,这是提交表单时的 url 示例。

http://ohmsgaming.com/gaming-girls/gaming-girls-form/?firstname=Lilith&lastname=Crimson&disname=Lilith+Crimson&email=laceylynn325%40yahoo.com&eid=18301743&Q1=Sega+Genesis%2C+Super+Nintendo-2%2C+Nintendo-+2%2C+PlayStation+1%2C+Game+cube%2C+Gameboy%2C+Gameboy+Color%2C+Gameboy+Advanced%2C+Gameboy+SP%2C+Nintendo+64%2C+Xbox+360.&Q2=N%2FA&Q3=Games-%0D%0A1.+Battle+Toads%0D%0A2.+Elder+Scrolls%0D%0A3.+tales+of+symphonia%0D%0A%0D%0AMovies-%0D%0A1.+Labyrinth%0D%0A2.+Strangeland%0D%0A3.+Ace+Ventura+2%0D%0A%0D%0AGenre%0D%0AScifi&Q4=Anthony+Edward+Stark+%28Tony+Stark%2C+Iron+Man%29&Q5=My+Eldest+Brother+and+his+friends+playing+D%26D+and+Magic+the+Gathering+back+in+the+90%27s&Q6=Not+sure+what+you+mean+by+that%2C+but+Skyriim+at+the+Moment.+%0D%0A%0D%0AIf+I+could+create+one%3F+%0D%0A%0D%0AOne+that+takes+place+in+all+time+periods%2C+larger+then+Elder+Scrolls%2C+Being+able+to+create+your+own+fashions+Vastly%2C+weapons%2C+creatures%2C+looks%2C+Kinect+probably+could+take+a+self+scan+and+place+you+into+that+world+and+allow+you+to+live+the+world%2C+as+if+its+your+own+world.&Q7=Poison+Ivy%2C+or+Black+Widow..or+maybe+Red+Sonja.+Really+just+redheaded.+&Q8=The+Ability+to+see+past+reality+and+create+Their+own+Universal+Dimension+if+you+can+say%2C+and+expand+our+minds+into+thinking+%22What+if%22.+%0D%0A%0D%0AThe+nerds+mind+have+been+ubiquitous%2C+and+created+a+vast+reality+of+our+own%2C+making+life%2C+easier+for+some%2C+and+much+more+fun+for+others%2C+and+all+really.+%0D%0A%0D%0ATo+be+a+nerd%2C+isn%27t+just+about+having+brains+anymore%2C+Its+about+having+fun+and+bringing+a+new+level+of+reality+to+all+who+wishes+to+hear+it.&Q9=Pizza.+&Q10=I+think+its+a+great+idea.+Video+gaming+is+a+sport+%28in+its+own+way%29%2C+and+it+allows+gamers+to+pick+up+their+game+and+improve+their+abilities+and+others+learn.+Challenging+skills+allow+those+to+really+see%2C+who+can+kick+A**+and+who+just+need+to+go+home+and+continue+playing+Halo+with+their+friends+at+parties.&Q11=Flying%2FControl+of+Elements+%28really+that+would+be+considered+air%29.+No.+Where+is+the+fun+in+that%3F&Q12=-Hey+girl%2C+what%E2%80%99s+up%3F+Guess+what%3F+It%E2%80%99s+your+lucky+day.+Out+of+all+the+girls+here%2C+I+picked+you+to+talk+to-&Q13=In+a+Sense%2C+yes.+He%27s+very+Attractive.+I+want+to+hug+him+and+feed+him+Cheese+Lol&Q14=Probably+all+day..My+teacher+is+a+huge+nerd%2C+and+all+we+talk+about+is+video+games.+Yes%2C+she%27s+65.+%0D%0A%0D%0AThen+I+come+home%2C+and+pop+in+whatever+game+we+were+talking+about+all+day%2C+or+Oblivion.+Then+spend+the+rest+on+here+on+Deviant+Art+talking+about+Marvel%2C+DC%2C+and+Dark+Horse+Comics%2C+along+with+others.+%0D%0A%0D%0AAlso+D%26D+with+Magic+the+Gathering+with+one+of+my+young+friends+who+is+obsessed+with+them+and+needs+me+to+guide+them+Lol.+So+its+actually+kind+of+forced+sometimes&Q15=Nuclear+Apocalypse%2C+Zombies+then+Follow!&submitted=yes 

它真的很长,里面有很多东西,我想知道这是否是问题所在,尽管正如我所说,当我使用上述相同的字符串时,当我以管理员身份登录时它对我来说很好。

P.S 抱歉,代码块中的代码格式不正确。

【问题讨论】:

  • 首先,做一个“查看源代码”以查看是否有输出,但它只是呈现一个空白页面。其次,您需要查看 Web 服务器的错误日志。那里可能有一条消息告诉您该页面中的一些问题。
  • 我查看了错误日志,什么也没有。而且没有出处,相信跟查询中的%27等代码有关
  • 我通过更改表单的方法来修复它

标签: php wordpress forms post


【解决方案1】:

白屏通常是服务器 500 错误,但如果有任何通知,则不会输出到浏览器。

在您的 wp-config.php 中将 debug 设置为 true:

define('WP_DEBUG', true); 

然后注销刷新缓存,清除 cookie,然后尝试以普通用户身份提交表单,您将收到错误消息。

【讨论】:

  • 我通过更改表单的方法来修复它
【解决方案2】:

白屏通常意味着由于错误而崩溃。我建议通过添加到 php 代码行来尝试搜索错误:

print_r(error_get_last());

如果在此行以下发生错误,则不会打印错误。

也不要忘记检查数据库是否没有错误返回(mysql、mysqli、PDO..使用不同的函数来获取错误)。

【讨论】:

  • 我添加了那行代码,但我没有看到它在任何地方打印任何内容,并且该行位于函数的顶部
  • 尝试添加 print_r(error_get_last());在你的 php 代码的底部
  • 我收到了一个错误代码,但与表单无关,因为其他原因,以及另一个函数中未定义的 var。
  • 尝试在表单数据所在的位置添加这一行。您说提交数据时出现问题。所以检查处理提交数据的 php 文件的错误。
  • 我通过更改表单的方法来修复它
猜你喜欢
  • 2021-05-10
  • 2012-05-10
  • 2019-12-16
  • 2012-10-02
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多