PHP& JavaScript:非工作的第二个脚本

时间:2013-07-10 08:47:59

标签: php javascript

我疯了。 在一个非常简单的PHP文件中,没有安全性考虑,因为它仅供有信任的几个人内部使用,我设置了两个JS警报。非常非常基本。 我们有一个带警报的IF,然后有一个带有第二个警报的ELSE。

当必需字段为空时,第一个触发,第二个触发,一切正常时触发,只是让用户知道表单已发布。 超出此第二个警报永远不会触发。

让我粘贴代码:

<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=***;dbname=***', '***', '***');
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}


// Concaténation des données des checkboxes iRules avant exécution
if (isset($irules)){
    $irules = implode( ", ", $_POST['irules'] ); 
}
else
{
    $irules = "default";
}

// Si des champs importants sont vides, l'utilisateur reçoit une alerte et les données ne sont pas envoyées
if (empty($_POST['url']) || empty($_POST['nom_vip']) || empty($_POST['ip_vip']))
{
    ?>

    <script>
        Javascript:alert('Merci de remplir tous les champs !')
        document.location.replace("index.php");
    </script>

    <?php
}
else
{
    // Insertion des données à l'aide d'une requête préparée
    $req = $bdd->prepare('INSERT INTO creation_vs (Protocol, Url, Alias_DNS, Virtual_Server_Name, Virtual_Server_IP_Port, OneConnect_Profile, HTTP_Profile, SSL_Client_Profile, Certificat_Name, SNAT_Pool, Default_Persistence_Profile, Pool_Name, Health_Monitor, Members_Ip_Port, Load_Balancing_Method, iRules, Comments) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');

    $req->execute(array($_POST['protocole'], $_POST['url'], $_POST['nom_vip'], $_POST['nom_vs'], $_POST['ip_vip'], $_POST['profil_oneconnect'], $_POST['profil_http'], $_POST['profil_ssl_client'], $_POST['nom_certificat'], $_POST['pool_snat'], $_POST['persistance'], $_POST['nom_pool_vs'], $_POST['health_monitor'], $_POST['members_ip_port'], $_POST['methode_LB'], $irules, $_POST['commentaires']));

    ?>
        <script>
            Javascript:alert('Instance ajoutee ! Merci.');
        </script>
    <?php

    header('Location: index.php'); 
}
?>

我做了一些测试:

  • 将第二个脚本移到第一个脚本正下方:NOK
  • 置换两个脚本:问题仍然相同,流程中的第一个脚本工作,第二个脚本没有

你看到这段代码有错误吗?没有什么是优化的,但这是一个开发版本,我希望在改进代码之前能够正常运行,所以请放纵;)

谢谢。

1 个答案:

答案 0 :(得分:0)

根据要求,

为什么要使用两种方法进行重定向?第一个工作,为什么不重复使用它?首先,在显示警报后,javascript重定向到index.php 。在第二个,PHP尝试重新写入标题,以便输出不会显示,index.php文件输出没有警报