2012-09-03 26 views
-1

在我的脚本上,当我点击“更新”按钮时,它失败。基本上,它不会检查输入字段是否输入正确。另外,如果表格填写正确,它不会实际更新信息。简而言之,处理错误检查和更新代码不起作用。这是我的脚本。如何修复未处理表单的PHP脚本?

<?php 
error_reporting (E_ALL^E_NOTICE); 
session_start(); 
$userid = $_SESSION['userid7906']; 
$username = $_SESSION['username7906']; 
$email = $_SESSION['email7906']; 
$one = $_SESSION['yes7906']; 
$zero = $_SESSION['no7906']; 
?> 
<!DOCTYPE html> 

<html> 
<head> 
<title>Profile Settings</title> 
<meta http-equiv="Content=Type" content="text/html; charset=utf-8" /> 
<LINK REL=StyleSheet HREF="./css/profile_settings.css" TYPE="text/css" MEDIA=screen> 
</head> 
<body> 
<?php 

$info = $_COOKIE['user7906']." <a href='./logout.php'>Log Out</a> <a href='./memberpage.php'>Home</a> <b><a href='./profile.php? user=$_COOKIE[user7906]'>Profile</a></b> > Edit <a href='./search.php'>User Search</a> <a href='./account.php'>Account</a> <br/><hr/>"; 
$info2 = $_COOKIE['user7906']." <a href='./logout.php'>Log Out</a> <a href='./memberpage.php'>Home</a> <b><a href='./profile.php?user=$username'>Profile</a></b> > Edit <a href='./search.php'>User Search</a> <a href='./account.php'>Account</a> <br/><hr/>"; 
if (isset($_COOKIE['user7906']) && isset($_COOKIE['pass7906']) && isset($_COOKIE['email7906'])) { 
         echo $info."<br/>"; 

         if (isset($_COOKIE['no7906'])) { 
          header("Location: ./profile.php?user=$_COOKIE[user]"); 
         } 
         else { 
          require('./connect.php'); 
          $fgh = mysql_query("SELECT * FROM `users` WHERE username='$_COOKIE[user7906]'"); 
          $abc = mysql_num_rows("$fgh"); 
          if ($abc !== 0) { 

           $osu = mysql_fetch_assoc($fgh); 
           $harv = $osu['id']; 
           $usr = $osu['username']; 

            $et = mysql_query("SELECT * FROM `profiles` WHERE users_id='$harv'"); 
            $elm = mysql_num_rows($et); 
             if ($elm !== 0) { 

              $c = mysql_fetch_assoc($et); 
              $mm = $c['email']; 
              $bio = $c['about']; 
              $fnm = $c['first_name']; 
              $lnm = $c['last_name']; 
              $lc4 = $c['location']; 


              echo "<center><b>Profile Settings</b></center><br/><br/>"; 

                if (isset($_POST['submit']) === true) { 
                $value=$_REQUEST['fn']; 
                } 
                else { 
                $value=$fnm; 
                } 


               if (isset($_POST['go']) === true) { 
                $value=$_REQUEST['fn']; 
                $value2=$_REQUEST['ln']; 
                $value3=$_REQUEST['email']; 
                $value4=$_REQUEST['about']; 
                $value5=$_REQUEST['locate']; 

               } 
               else { 
                $value=$fnm; 
                $value2=$lnm; 
                $value3=$mm; 
                $value4=$bio; 
                $value5=$lc4; 
               } 



              ?><center> 
              <form action='./profile_settings.php' method='POST' name='lp' /> 
              <table> 
              <tr> 
               <td>First Name:</td> 
               <td><input type='text' name='fn' value="<?php echo $value; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Last Name:</td> 
               <td><input type='text' name='ln' value="<?php echo $value2; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Email:</td> 
               <td><input type='text' name='email' value="<?php echo $value3; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>About:</td> 
               <td><input type='text' name='about' value="<?php echo $value4; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Location:</td> 
               <td><input type='text' name='locate' value="<?php echo $value5; ?>" /><br/></td> 
              </tr> 
              </table> 
               <center><input type='submit' name='go' value='Update' /> <?php echo "<a href='./profile.php?user=$_COOKIE[user7906]'>Cancel</a>"; ?></center> 
              </center></form> 


              <?php 
              $go = $_POST['go']; 
              $fn = $_POST['fn']; 
              $ln = $_POST['ln']; 
              $em = trim(strtolower($_POST['email'])); 
              $ab = $_POST['about']; 
              $lc = $_POST['locate']; 




              if (isset($go)==='Update') { 


               if ((!empty($fn)) && (!empty($ln)) && (!empty($em)) && (!empty($ab)) && (!empty($lc)) && (strlen($em) > 6) && (strstr($em, "@")) == false && (strstr($em, ".")) == false) { 


                require("./connect.php"); 
                $update = mysql_query("UPDATE `profiles` SET first_name='$fn' WHERE users_id='$harv' "); 
                $update2 = mysql_query("UPDATE `profiles` SET last_name='$ln' WHERE users_id='$harv' "); 
                $update3 = mysql_query("UPDATE `profiles` SET email='$em' WHERE users_id='$harv' "); 
                $update4 = mysql_query("UPDATE `profiles` SET about='$ab' WHERE users_id='$harv' "); 
                $update5 = mysql_query("UPDATE `profiles` SET location='$lc' WHERE users_id='$harv' "); 

                echo '<br/>Profile updated successfully'; 







               } 
               elseif (!isset($_POST)) { 
               echo '<br/><center>Please fill out this form.</center>'; 
               } 
               elseif (isset($fn)==='') { 
               echo '<br/><center>Enter your first name.</center>'; 
               } 
               elseif (isset($ln)==='') { 
               echo '<br/><center>Enter your last name.</center>'; 
               } 
               elseif (isset($em)==='') { 
               echo '<br/><center>Enter your email.</center>'; 
               } 
               elseif ((strlen($em) < 7) || (strstr($em, "@")) === false || (strstr($em, ".")) === false) { 
               echo '<br/><center>Invalid email</center>'; 
               } 
               elseif (isset($ab)==='') { 
               echo '<br/><center>Write something about yourself.</center>'; 
               } 
               elseif (isset($lc)==='') { 
               echo '<br/><center>Enter your location.</center>'; 
               } 
               else { 
               echo '<center>An error has occured.</center>'; 
               } 



              } 


             } 
             else { 
             header("Location: ./profile.php?user=$_COOKIE[user7906]"); 
             } 

          } 
          else { 
          echo '<center>An error has occured.</center>'; 
          } 



} 







} 
elseif(isset($username) && isset($userid) && isset($email)) { 
         echo $username.$info2."<br/>"; 



          require('./connect.php'); 
          $fgh = mysql_query("SELECT * FROM `users` WHERE username='$username'"); 
          $abc = mysql_num_rows($fgh); 
          if ($abc !== 0) { 

           $osu = mysql_fetch_assoc($fgh); 
           $harv = $osu['id']; 
           $usr = $osu['username']; 

            $et = mysql_query("SELECT * FROM `profiles` WHERE users_id='$harv'"); 
            $elm = mysql_num_rows($et); 
             if ($elm !== 0) { 

              $c = mysql_fetch_assoc($et); 
              $mm = $c['email']; 
              $bio = $c['about']; 
              $fnm = $c['first_name']; 
              $lnm = $c['last_name']; 
              $lc4 = $c['location']; 

              echo "<center><b>Profile Settings</b></center><br/><br/>"; 

                if (isset($_POST['go']) === true) { 
                 $value=$_REQUEST['fn']; 
                 $value2=$_REQUEST['ln']; 
                 $value3=$_REQUEST['email']; 
                 $value4=$_REQUEST['about']; 
                 $value5=$_REQUEST['locate']; 
                } 
                else { 
                 $value=$fnm; 
                 $value2=$lnm; 
                 $value3=$mm; 
                 $value4=$bio; 
                 $value5=$lc4; 
                } 





              ?> 

              <form action='./profile_settings.php' method='POST' name='lp' /><center> 


              <table> 
              <tr> 
               <td>First Name:</td> 
               <td><input type='text' name='fn' value="<?php echo $value; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Last Name:</td> 
               <td><input type='text' name='ln' value="<?php echo $value2; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Email:</td> 
               <td><input type='text' name='email' value="<?php echo $value3; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>About:</td> 
               <td><input type='text' name='about' value="<?php echo $value4; ?>" /><br/></td> 
              </tr> 
              <tr> 
               <td>Location:</td> 
               <td><input type='text' name='locate' value="<?php echo $value5; ?>" /><br/></td> 
              </tr> 
              </table> 
               <center><input type='submit' name='go' value='Update' /> <?php echo "<a href='./profile.php?user=$username'>Cancel</a>"; ?></td></center> 

              </center></form> 


              <?php 
              $go = $_POST['go']; 
              $fn = $_POST['fn']; 
              $ln = $_POST['ln']; 
              $em = trim(strtolower($_POST['email'])); 
              $ab = $_POST['about']; 
              $lc = $_POST['locate']; 




              if (isset($go)==='Update') { 


               if ((!empty($fn)) && (!empty($ln)) && (!empty($em)) && (!empty($ab)) && (!empty($lc)) && (strlen($em) > 6) && (strstr($em, "@")) == false && (strstr($em, ".")) == false) { 


                require("./connect.php"); 
                $update = mysql_query("UPDATE `profiles` SET first_name='$fn' WHERE users_id='$userid' "); 
                $update2 = mysql_query("UPDATE `profiles` SET last_name='$ln' WHERE users_id='$userid' "); 
                $update3 = mysql_query("UPDATE `profiles` SET email='$em' WHERE users_id='$userid' "); 
                $update4 = mysql_query("UPDATE `profiles` SET about='$ab' WHERE users_id='$userid' "); 
                $update5 = mysql_query("UPDATE `profiles` SET location='$lc' WHERE users_id='$userid' "); 

                echo '<br/>Profile updated successfully'; 







               } 
               elseif (!isset($_POST)) { 
               echo '<br/><center>Please fill out this form.</center>'; 
               } 
               elseif (isset($fn)==='') { 
               echo '<br/><center>Enter your first name.</center>'; 
               } 
               elseif (isset($ln)==='') { 
               echo '<br/><center>Enter your last name.</center>'; 
               } 
               elseif (isset($em)==='') { 
               echo '<br/><center>Enter your email.</center>'; 
               } 
               elseif ((strlen($em) < 7) || (strstr($em, "@")) === false || (strstr($em, ".")) === false) { 
               echo '<br/><center>Invalid email</center>'; 
               } 
               elseif (isset($ab)==='') { 
               echo '<br/><center>Write something about yourself.</center>'; 
               } 
               elseif (isset($lc)==='') { 
               echo '<br/><center>Enter your location.</center>'; 
               } 
               else { 
               echo '<center>An error has occured.</center>'; 
               } 



              } 


             } 
             else { 
             header("Location: ./profile.php?user=$username"); 
             } 

          } 
          else { 
          echo '<center>An error has occured.</center>'; 
          } 







} 
else { 
     echo "<center>Please <a href='./login.php'log in</a> for access to this page.</center>"; 
} 

?> 

+1

如果你是这个脚本的作者,你可能是解决它的最有信心的人。只要采取良好的'var_dump'并做到这一点! – zerkms

+0

我们不打算阅读数百行代码来尝试和调试。将其缩小到实际存在问题的部分。 –

+0

东西告诉我你应该学习如何编写自己的功能 –

回答

1
if (isset($go)==='Update') { 

isset()传回truefalse,而不是字符串。

+0

我将'Update'字符串中的isset()语句更改为true,并且错误检查现在正在运行。但是,它会自动显示“发生错误”消息。我假定在该消息之上的某个地方,比如elseif语句或在它应该更新之前的长检查是不正确的。我无法弄清楚我出错的地方。 – user1644769

+0

我没有意识到我写了$ fgh作为一个字符串。我修好了它。这是我的错。抱歉。但是,就像我之前说过的,“出现错误”消息不断显示,所以我认为我的elseif()语句是错误的和/或:if((!empty($ fn))&&(!empty( $&&&(!empty($ em))&&(!empty($ ab))&&(!empty($ lc))&&(strlen($ em)> 6)&&(strstr($ em,“@ “))== false &&(strstr($ em,”。“))== false){ 声明。 – user1644769