Question

Je suis en train de coder un edit du post de la page de mon site qui met à lui-même à l'aide d'un google openid d'ouverture de session, cependant j'ai juste une page blanche, à la place du formulaire de modification.Voici le code que j'utilise:

<html>
  <head>
    <title>BQuotes</title>
    <!-- <meta name="viewport" content="width=device-width, initial-scale=1"> -->
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <link href="votingfiles/voting.css" rel="stylesheet" type="text/css" />
    <script src="votingfiles/voting.js" type="text/javascript"></script>
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
    <link rel="stylesheet" type="text/css" href="http://bquotes.me/mystyle-a.css">
    <script src="http://code.jquery.com/jquery-1.10.0.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
    <style>
      .head_text {
        color: #ffffff;
      }
      a {
        text-decoration: none;
      }
    </style>

    <script type="text/javascript">
      $('#g-login').bind('click', function (event) {
        // event.preventDefault();
        // $('#form-id').attr('action', 'google-login.php').trigger('submit');
        alert("Clicked");
      });
    </script>
  </head>
  <body style="color:#d4ffaa">


    <!-- BQ Edit Post Start -->
    <div data-role="page" id="editPost">
      <div data-role="header" style="background-color:#5FBF00">
        <h1 class="head_text">BQuotes: Edit Statuses</h1>
      </div>
      <div data-role="main" class="ui-content">

        <?php





          ?>


      </div>



         <?php
          define ('HOSTNAME', 'host');
          define ('USERNAME', 'user');
          define ('PASSWORD', 'pass');
          define ('DATABASE_NAME', 'db');

          $db = mysql_connect(HOSTNAME, USERNAME, PASSWORD) or die ('I cannot connect to MySQL.');

          mysql_select_db(DATABASE_NAME);

          $tbl='table';
          $id=$_POST['pid'];

          $query="SELECT * from $tbl WHERE $id=id";
          $result = mysql_query($query);

          while($row = mysql_fetch_array($result)) {
          $id=$row['id'];
          $username=$row['username'];
          $message=$row['message'];
          $tag=$row['tag'];



         session_start();
              if($_SESSION['myusername'] != null &&  isset($_SESSION['myusername'])){
              echo "<form action='logout.php' method='post' id ='form-logout' data-ajax='false'>
                    <br/><input type='submit' value='Logout'/>";
              echo "</form>";
              echo "<div style='margin-left:20px;'>Logged In As:  ".$_SESSION['myusername']."</div>";

             echo "<form name='post-edit' action='' method='post'>";
             echo "<input type='hidden' name='id' value=".$row['id'].">";
             echo "<input type='hidden' name='username' value=".$row['username'].">";
             echo "<textarea name='message' value=".$row['message'].">";
             echo "<input type='text' name='tag' value=".$row['tag'].">";
             echo "<input type='submit' name='submit' value='Edit!'>";
             echo "</form>";

              }
            else if($_SESSION['myusername'] == null){
              echo "<form action='google-login.php?login=true' method='post' id ='form-id' data-ajax='false'>";    
                 echo "<span class='loginreq'>Login to Edit</span>";           
                echo "<br/><input type='submit' value='Login with Google'/>";
                echo "</form>";
            }
            }



          if (isset($_POST['submit'])) {

          $query = "UPDATE mybq_post_txt_main SET message=$message, tag=$tag WHERE id=$id ";

          $result = mysql_query($query);

          while ($row = mysql_fetch_array($result)) {

          echo "Your post has been edited to:";<br>
          echo $row['message'];
          echo $row['tag'];
          }

          mysql_free_result($result);
          mysql_close();

          }

        ?>



        <a href='mybq-index.php'>Home</a>


      </div>


  </body>
</html>

Toute aide sera appréciée.(ne jamais oublier le PHP, SQL, je vais les convertir en PDO plus tard).

Était-ce utile?

La solution 4

Ici le code de travail (Le code Complet ci-dessous l'extrait).La première bug a été le saut de ligne ( <br> ) après l' "votre message a été édité à l':" qui n'a pas été correctement mis en forme pour php.Les autres bugs ont été concernant le $_GET variable correctement, mauvais nom de la table, et le mal la mise en boucle de l'initiale", alors que " la condition.

Merci!

Autres conseils

$query="SELECT * from $tbl WHERE $id=id";

devrait être

$query="SELECT * from $tbl WHERE id=$id";

(i.e. Retournez autour de "ID" pour mettre la colonne SQL d'abord et votre variable PHP seconde)

Je ne sais pas si cela réparera tout, mais c'était la première chose qui m'a sauté à moi.

Je suis sûr que vous voulez au moins que le formulaire de connexion se présente s'il n'est pas encore connecté.Si oui, changez:

while($row = mysql_fetch_array($result)) {

...

}

à ceci:

$row = mysql_fetch_array($result);

...

//}

Je suppose que la requête est uniquement destinée à retourner 1 ou 0 rangées, donc pas besoin de boucle de toute façon.

J'ai la clôture de la fermeture de REMP'Di pour clarifier qu'elle doit être retirée du code de fonctionnement.Vous pouvez simplement le supprimer.

Les formulaires de votre code sont dans la boucle MYSQL_FETCH_ARRAY, alors lorsque aucun enregistrement d'utilisateur n'est trouvé, aucune forme n'a de chance d'afficher.

Essayez de déplacer la session_start () en haut de votre page?Vous voulez généralement appeler cela avant que autre chose soit envoyée au navigateur.Au-dessus de la balise HTML, probablement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top