2009-12-09 5 views
2

Je veux afficher une partie du script n'importe où sur la page web qui génère le texte pour dire à l'utilisateur qu'il a soumis quelque chose.PHP/MySQL - Comment afficher du texte généré PHP n'importe où sur une page web en utilisant PHP?

Comment puis-je corriger mon script pour ce faire? Et quelle partie de mon code devrait être changé?

Voici la partie du script que je veux afficher n'importe où sur une page Web.

if (count($tags) == 1){ 
     echo $tags[0] . " has been entered"; 
} else { 
     echo implode(", ", $tags) . " have been entered";   
} 

Voici le script complet.

<?php 
if (isset($_POST['submitted'])) { 
    $mysqli = new mysqli("localhost", "root", "", "sitename"); 
    $dbc = mysqli_query($mysqli,"SELECT questions_tags.*, tags.* FROM questions_tags, tags"); 
    if (!$dbc) { 
     print mysqli_error($mysqli); 
    } 

    $page = '3'; 

    $tag = mysqli_real_escape_string($mysqli, $_POST['tag']); 

    $mysqli = new mysqli("localhost", "root", "", "sitename"); 
    $dbc = mysqli_query($mysqli,"SELECT questions_tags.*, tags.* FROM questions_tags INNER JOIN tags ON tags.id = questions_tags.tag_id WHERE questions_tags.users_questions_id='$page'"); 

    if(mysqli_num_rows($dbc) >= 0){ 

     if (isset($_POST['tag'])) { 
       $tags = explode(",", $_POST['tag']); 

       for ($x = 0; $x < count($tags); $x++){ 
         $mysqli = new mysqli("localhost", "root", "", "sitename"); 
         $clean_url = mysqli_real_escape_string($mysqli, $page); 

         $query1 = "INSERT INTO tags (tag) VALUES ('" . $tags[$x] . "')"; 

         if (!mysqli_query($mysqli, $query1)) { 
           print mysqli_error($mysqli); 
           return; 
         } 

         $mysqli = new mysqli("localhost", "root", "", "sitename"); 
         $dbc = mysqli_query($mysqli,"SELECT id FROM tags WHERE tag='" . $tags[$x] . "'"); 


         if (!$dbc) { 
           print mysqli_error($mysqli); 
         } else { 
           while($row = mysqli_fetch_array($dbc)){ 
             $id = $row["id"]; 
           } 
         } 
         $query2 = "INSERT INTO questions_tags (tag_id, users_questions_id) VALUES ('$id', '$page')"; 

         if (!mysqli_query($mysqli, $query2)) { 
           print mysqli_error($mysqli); 
           return; 
         } 
       } 

         if (count($tags) == 1){ 
           echo $tags[0] . " has been entered"; 
         } else { 
           echo implode(", ", $tags) . " have been entered"; 

         } 
     } 

     if (!$dbc) { 
       print mysqli_error($mysqli); 
     } 
    } 
    mysqli_close($mysqli); 
} 
?> 
+0

Votre variable POST est-elle définie? Cette requête renvoie-t-elle des lignes? – Shane

+0

Il retourne ce que l'utilisateur est entré donc je crois que c'est ex. '' – SlapThiS

Répondre

0

Tant que la page est PHP, vous pouvez avoir un certain nombre de balises d'ouverture et de fermeture:

<?php 
$count = count($tags); 
if ($count == 0) { 
    $str = 'No tags have been entered.'; 
else if ($count == 1) { 
    $str = htmlentities($tags[0]) . " has been entered"; 
} else { 
    $str = htmlentities(implode(", ", $tags)) . " have been entered";      
} 
?> 

<p>HTML code here</p> 
<?php echo $str; ?> 
<p>More HTML</p> 

S'il vous plaît noter que pour des raisons de sécurité (pour éviter les scripts inter-sites), vous devriez prendre des mesures pour filtrer toute sortie de page générée par l'utilisateur. Jetez un coup d'œil rapide au htmlentities.

+0

Je remplace juste cette partie de mon code avec quelque chose comme ça? – SlapThiS

+0

@slapthis - Oui, ce serait plus sûr. –

Questions connexes