2013-06-05 3 views
0

형태로 반환합니다. Firebug를 사용하여 양식에 문제가 있음을 발견했습니다. 면밀한 조사를 통해 누군가가 홈페이지에있을 때 나의 form action은 index.php로 설정되었습니다. 나는 이것을 단순한/방화범 안에 바꿨고 효과가 있었다. 내 문제는 양식이 일부 페이지에서는 작동하지만 다른 페이지에서는 작동하지 않는다는 것입니다. 작업 코드는

<?php echo htmlentities($_SERVER['PHP_SELF']); ?> 

으로 설정되었습니다. index.php가 아니라 홈페이지에서만 /로 표시되도록하려면 어떻게해야합니까? 내가 참조하고있는 사이트는 필요한 경우 '링크'의 홈 페이지입니다. 문제의 양식은 뉴스 레터 양식입니다. '링크'로 이동하는 동안 올바른 주소가 표시됩니다. 코드는 다음과 같습니다

</div> 
<div class="footer"> 
<div class="wideNewsletter"> 
<div class="wrapNewsletter"> 
<div class="newsletterIntro"><b>NEWSLETTER SIGN UP</b></div> 
<div class="newsletterForm"> 
<?php/* var_dump($_SERVER) */?> 
<?php 
$name = ""; 
$email = ""; 
$msg_to_user = ""; 
if ($_POST['name'] != "") { 

    include_once "connect_to_mysql.php"; 

    // Be sure to filter this data to deter SQL injection, filter before querying database 
    $name = mysql_real_escape_string(strip_tags(trim($_POST['name']))); 
    $email = mysql_real_escape_string(strip_tags(trim($_POST['email']))); 

    $sql = mysql_query("SELECT * FROM newsletter WHERE email='$email'"); 
    $numRows = mysql_num_rows($sql); 

function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 


    if (!$email) { 

     $msg_to_user = '<div class="warning"><ul><li>Please type an email address ' . $name . '.</li></ul></div><br /><br />'; 

    } else if ($numRows > 0) { 

     $msg_to_user = '<div class="warning"><ul><li>' . $email . ' is already in the system.</li></ul></div><br /><br />'; 

    } else { 

     $sql_insert = mysql_query("INSERT INTO newsletter (name, email, dateTime) 
                VALUES('$name','$email',now())") or die (mysql_error()); 

     $msg_to_user = '<div class="success"><ul><li>Thanks ' . $name . ', hope you find what you want!</li></ul></div><br /><br />'; 
     $name = ""; 
     $email = ""; 
    } 
    $message = 'Name: ' . $_POST['name'] . 'Page:'.$curPageURL.', Email: ' . $_POST['email']; 
mail('[email protected]', 'New Newsletter Sign Up at Monique Trinidad Jewelry', $message); 
} 
?> 
<form style="width:430px;" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post"> 
<fieldset style="text-align:left;padding:0px;border:0px;"> 
Name: 
<input name="name" type="text" maxlength="36" value="<?php echo $name; ?>" /> 
Email: 
<input name="email" type="text" maxlength="36" value="<?php echo $email; ?>" /> 
<input type="image" src="https://www.moniquetrinidadjewelry.com/images/new-images/green-bullet.png" border="0" name="mySubmitBtn" type="submit" value="Submit"> 

</fieldset> 
</form></div> 
<div style="position:absolute;top:120px;"><?php echo $msg_to_user; ?></div> 
<div class="newsletterExplain">Receive product updates. Remember only one of each!</div> 
</div> 
</div><!--wide newletter end--> 
<div class="wrapFooter"> 


<div class="tearOneFooter"> 
    <div class="footerColumnList"> 
     <div class="footerTitles">Connect With Us</div> 
     <div class="footerLists"> 
      <ul> 
       <li><a href="https://www.moniquetrinidadjewelry.com/contact/contact-pop.php">Connect With Monique!</a></li> 
      </ul> 
     </div> 

    </div> 
<!--Seperate Connect With us Column from Information Column--> 
    <div class="footerColumnList"> 
     <div class="footerTitles">Information</div> 
     <div class="footerLists"> 
      <ul> 
       <li><a href="https://www.moniquetrinidadjewelry.com/about-us.php">About Us</a></li> 
       <li><a href="https://www.moniquetrinidadjewelry.com/packaging.php">Packaging</a></li> 
       <li><a href="https://www.moniquetrinidadjewelry.com/terms-and-conditions.php">Terms & Conditions</a></li> 
      </ul> 
     </div> 
    </div> 
<!--Seperate Information Column from Shipping and Returns Column--> 
    <div class="footerColumnList"> 
     <div class="footerTitles">Shipping and Returns</div> 
     <div class="footerLists"> 
      <ul> 
       <li><a href="https://www.moniquetrinidadjewelry.com/return-policy.php">Orders and Returns<a/></li> 
       <li><a href="https://www.moniquetrinidadjewelry.com/secure-shopping.php">Secure Shopping</a></li> 
       <li></li> 
      </ul> 
     </div> 
    </div> 
<!--Seperate Shipping and Returns Column from Services & Support Column--> 
    <div class="footerColumnList"> 
     <div class="footerTitles">Hours Of Operation</div> 
     <div class="footerLists"> 
      <ul> 
       <li>We are a 24/7 <br />Online Establishment!<br />(US Based)</li> 
      </ul> 
     </div> 
    </div> 
<!--Seperate Connect With us Column from Information Column--> 
</div> 
<!--Beging SecondTearFooterArea--> 
<div class="tearTwoFooter"> 

    <!--<div class="signUpNewsLetter"><img src="https://www.moniquetrinidadjewelry.com/images/news_letter_temp_IMG.png" alt="newsletter" /></div>--> 
    <div class="paymentOptions"><img src="https://www.moniquetrinidadjewelry.com/images/payment_options_temp.png" alt="payment options" /></div> 
    <div class="twitter"><a href="https://twitter.com/MoniqueJewelry"><img src="https://www.moniquetrinidadjewelry.com/images/twitter_temp.png" alt="twitterLink" /></a></div> 


</div> 
</div> 
</div> 
</div> 

======================================= =================== 문제가 확장 :

더 이상 필요없는 링크가 제거되었습니다. . php_self를 사용하지 않을 때 action = ""을 sanitize 할 수 있습니까?

+0

가능한 중복 http://stackoverflow.com/questions/8720238/php-self-dont-work-in-same-page –

답변

0

양식을 현재 사용중인 페이지에 제출하려면 양식을 현재 URL에 제출할 빈 작업 속성을 사용하십시오.

<form style="width:430px;" action="" method="post"> 
+0

는 그 살펴본하지만 불완전 느낀다. 이 방식으로 간단하게 ""수행하는 것이 단점이 있습니까? 이것을 위생 처리 할 수 ​​있습니까? –

관련 문제