2013-10-03 7 views
-1

J'essaye d'ajouter quelques données dans la base de données, après l'insertion je veux une alerte mais elle ne fonctionne pas outre que la fonction d'en-tête() fonctionne.javascript alert() ne fonctionne pas

<?php 
     include("connection.php"); 
     if(isset($_POST['submit_bank'])) 
     { 
      $b_date=$_POST['bank_date']; 
      $b_type=$_POST['bank_type']; 
      $b_name=$_POST['bank_name']; 
      $b_bname=$_POST['bank_bname']; 
      $b_amount=$_POST['bank_amount']; 

      $result = mysql_query("INSERT INTO banking_info(b_date,b_type,b_name,b_branch,b_amount) 
       VALUES('$b_date','$b_type','$b_name','$b_bname','$b_amount')"); 
      if ($result!=0) 
      { 
       echo "<script>alert('Addition Successfull !!');</script>"; 
       header("Location: banking.php"); 
      } 
      else 
      { 
       echo "<script>alert('Addition Failed !!');</script>"; 
       header("Location: banking.php"); 
      } 
     } 
    ?> 
+3

** Danger **: Vous utilisez [une API de base de données ** obsolète **] (http://stackoverflow.com/q/12859942/19068) et devrait utiliser un [remplacement moderne] (http://php.net/manual/fr/mysqlinfo.api.choosing.php). Vous êtes également vulnérable aux [attaques par injection SQL] (http://bobby-tables.com/) ** qu'une API moderne rendrait plus facile à [défendre] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

ajouter le ci-dessus au fait que cela cherche à devenir un site BANCAIRE ... –

+0

"Tais-toi et prends mon argent" -bank –

Répondre

2

Il est facile: vous avez la tête Emplacement:

echo "<script>alert('Addition Successfull !!');</script>"; 
header("Location: banking.php"); 

Lorsque vous envoyez en-tête d'emplacement à l'utilisateur, il/elle se redirigée et script ne sera pas interprété!

P.S: Comme dit @Quentin, les fonctions mysql_ sont obsolètes, elles sont anciennes et ne sont plus maintenues. Utiliser mysqli ou PDO.

P.S 2: Vous envoyez du contenu avant l'en-tête, donc supposez que vous utilisez output buffering.

+0

Vous voulez dire bien sûr que les fonctions 'mysql_ *' sont obsolètes. –

+0

@ Sébastien Désolé, édité. – undone

+0

ouais je l'ai eu grâce @undone –

0

Vous vous éloignez immédiatement après l'écho, mais cela devrait donner une erreur (vous ne pouvez pas header() si la sortie (comme l'écho) a été placée à l'écran).

J'Asume que vous utilisez quelque chose comme ob_start()
Je suggère la méthode suivante:

header("Location: banking.php?alert=Addition%20Successfull%20!!"); 

et l'enregistrement balking.php pour isset($_GET['alert']), le cas échéant, l'écho, sinon, ne pas faire quelque chose

+0

mais l'en-tête fonctionne .. j'ai juste essayé votre méthode et itssssssssssssssssssssss fonctionnant ... merci –

+0

Veuillez marquer comme solution pour d'autres personnes qui lisent ce sujet :) – Martijn

+0

réellement je dois savoir marquer une réponse comme solution. –

0

header ("Location: banking.php"); vous rediriger avant exécuter JavaScript utilisation <script>window.location.replace("http://mydomain.com/banking.php");</script>

0

Try this ...

if ($result!=0) 
     { 
      echo "<script> 
        alert('Addition Successfull !!'); 
        window.location.replace('banking.php'); 
        </script>"; 
      //header("Location: banking.php"); 
     } 
     else 
     { 
      echo "<script> 
        alert('Addition Failed !!'); 
        window.location.replace('banking.php'); 
        </script>"; 
      //***strong text***header("Location: banking.php"); 
     }