Affichage d'un UPDATE avec pages protégées

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage d'un UPDATE avec pages protégées

par ordisoft » 21 avr. 2008, 00:10

Merci à vous deux Ryle et dunbar
les deux manière fonctionne.

Je met le code complet ( il serviras au autre... )




index.php

Code : Tout sélectionner

<? session_start(); // Je regarde si le formulaire a été envoyé if (isset($_POST["membre_pseudo"]) || isset($_POST["membre_pwd"])) { // Je me connecte à ma base de données @mysql_connect("localhost","root","") or die("Echec de connexion au serveur."); @mysql_select_db("cours_membres") or die("Echec de sélection de la base."); // Je vais faire ma requête $requete_verif = "SELECT membre_pseudo,membre_pwd FROM t_membres WHERE membre_pseudo='".$_POST["membre_pseudo"]."' AND membre_pwd='".$_POST["membre_pwd"]."'"; $resultat_verif = mysql_query($requete_verif); $nombre = mysql_num_rows($resultat_verif); if ($nombre>0) { // On crée la variable de session $_SESSION["pseudo"] = $_POST["membre_pseudo"]; // On va rediriger vers membre.php header("Location:membre.php"); } else { // On affiche un message d'erreur $erreur = true; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <link href="interface.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="650" border="0" align="center" cellpadding="10" cellspacing="0" id="contenant"> <tr> <td><h1>Mon beau site avec partie priv&eacute;e</h1> <hr /></td> </tr> <tr valign="top"> <td><table width="100%" border="0" cellspacing="0" cellpadding="10" bgcolor="#EFEFEF"> <tr valign="top"> <td><h2>Editorial</h2> <p>Oo hdglh qdlkfghq ldkfhglkqdhflk gqhdlkg dqlkfghlqkd kfhglkqdf h glkqdhflg hqdlgh qlkdfhglk qdhfgl qdhfgl qdhlfgh qdlkg qdlkghlk qdh fgl hqdlfkg hdqlfgh dqlkhgl qdh gldq hlgk lqdkgh ldqkf</p> <p>P mdjgml qdjmlg jqdmgj qmdljgm qdjfgmq djmlgj qdmlfgj mqdfjgm qdjfmg dqmlg mldqf gm qdjfmg jqdmfkg mqdfj gm dqjfmgj qdmf jgm qdfjgmk jdqfmg jmdfj g </p></td> <td width="200" bgcolor="#F1F1F1"><form id="form1" name="form1" method="post" action="index.php"> <table width="100%" border="0" cellspacing="0" cellpadding="3"> <tr> <td colspan="2"><strong>ESPACE MEMBRES</strong> <? if (isset($erreur)) { ?> <br />Mauvais login ou mdp <? } ?> <? if (isset($_GET["error"])) { ?> <br />T'as voulu nous hacker ??? heeee !!! <? } ?> </td> </tr> <tr> <td>Login</td> <td><label> <input name="membre_pseudo" type="text" id="membre_pseudo" /> </label></td> </tr> <tr> <td>Password</td> <td><input name="membre_pwd" type="password" id="membre_pwd" /></td> </tr> <tr> <td>&nbsp;</td> <td><label> <input type="submit" name="Submit" value="Envoyer" /> </label></td> </tr> <tr> <td>&nbsp;</td> <td><a href="inscription.php">> Inscrivez-vous</a><br /> <a href="oubli.php">> J'ai tout oubli&eacute; </a></td> </tr> </table> </form> </td> </tr> </table></td> </tr> <tr> <td><hr /> IEPS 2008 </td> </tr> </table> </body> </html>

modifier.php

Code : Tout sélectionner

<? session_start(); if (!isset($_SESSION["pseudo"])) { header("Location:index.php?error=1"); } ?> <? // Je me connecte à ma base de données @mysql_connect("localhost","root","") or die("Echec de connexion au serveur."); @mysql_select_db("cours_membres") or die("Echec de sélection de la base."); // Je vais faire ma requête $requete_todo="SELECT * FROM t_membres WHERE membre_pseudo='".$_SESSION["pseudo"]."'"; $resultat = mysql_query($requete_todo); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <link href="interface.css" rel="stylesheet" type="text/css" /> </head> <body> <table width="650" border="2 " align="center" cellpadding="10" cellspacing="0" id="contenant"> <tr> <td><h1>Modification de profil </h1> <hr /></td> </tr> <tr valign="top"> <td><table width="100%" border="2" cellspacing="0" cellpadding="10" bgcolor="#EFEFEF"> <tr valign="top"> <td><form action="modifier2.php" method="post" name="form1" id="form1"> <table width="100%" border="0" cellspacing="0" cellpadding="3"> <tr> <td colspan="2"><strong>INFORMATION DU PROFIL </strong> </td><br /> <? $ligne = mysql_fetch_array($resultat); ?> </tr> <tr> </tr> <tr> <td>Password</td> <td><input name="membre_pwd" type="password" id="membre_pwd" value="<? echo $ligne["membre_pwd"]; ?>"/></td> </tr> <tr> <td>Mail</td> <td><input name="membre_mail" type="text" id="membre_mail" value="<? echo $ligne["membre_mail"]; ?>"/></td> </tr> <tr> <td> <input name="membre_id" type="hidden" id="membre_id" value="<? echo $ligne["membre_id"]; ?>" /></td> <td><label> <input type="submit" name="Submit" value="Envoyer" /> </label></td> </tr> </table> </form></td> <td width="200">&nbsp; </td> </tr> </table></td> </tr> <tr> <td><hr /> IEPS 2008 </td> </tr> </table> </body> </html>


modifier2.php

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION["pseudo"])) { heaphpder("Location:index.php?error=1"); } // je me connect a la base @mysql_connect("localhost","root","") or die("Echec de connexion au serveur."); @mysql_select_db("cours_membres") or die("Echec de sélection de labase."); $requete_todo=" UPDATE t_membres SET membre_pwd='".trim(addslashes($_POST["membre_pwd"]))."', membre_mail='".trim(addslashes($_POST["membre_mail"]))."' WHERE membre_id=".$_POST["membre_id"]; $resultat = mysql_query($requete_todo); $requete_affiche="SELECT * FROM t_membres WHERE membre_pseudo='".$_SESSION["pseudo"]."'"; $resultat = mysql_query($requete_affiche); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans titre</title> <link rel="stylesheet" type="text/css" href="interface.css"> </head> <body> <table width="600" align="center" cellpadding="10" cellspacing="0" id="contenant " border="2"> <tr> <td bgcolor="#D8D8D8"> <h4 align="center"> &nbsp; Confirmation Modification de profil. <hr /></h4> </td> </tr> <tr> <td bgcolor="#E9E9E9"><?php $ligne = mysql_fetch_array($resultat); ?> <h5 align="center"><strong>Votre Modification de profil &agrave; bien &eacute;t&eacute; enregistr&eacute;.</strong></h5> </div> <div align="center">Votre nouveau PassWord et Mail son les suivants :</div><br /> <strong> Pasword : <?php echo $ligne["membre_pwd"]; ?><br /> Mail : <?php echo $ligne["membre_mail"]; ?></strong> <hr / width="50%"> <div align="center"> <a href="index.php">Retour&nbsp;(espace membre)</a></div></td> </tr> <tr> <td bgcolor="#D8D8D8"><h5>&nbsp;&copy;IEPS 2008 <hr /></h5></td> </tr> </table> </body> </html>
Pour le DELETE voir ce post : http://www.phpfrance.com/forums/viewtop ... highlight=

par dunbar » 20 avr. 2008, 16:21

Ou aussi :?:
echo'<pre>';
print_r($requete_todo);
echo'</pre>';

par Ryle » 20 avr. 2008, 15:55

Tu mets à jour ta base de données avec les valeurs $_POST["membre_pwd"] et $_POST["membre_mail"], pourquoi ne pas les utiliser aussi pour les afficher directement ? :)

Bon, bien sur tu peux refaire un SELECT également, mais dans ce cas, faut exécuter la bonne requête ;)
$marequete = "SELECT * FROM t_membres ORDER BY membre_pseudo ASC";
$resultat = mysql_query($requete_todo);
Par ailleurs, préfère les balises "<?php" plutôt que "<?". En effet, selon le serveur ou ton script sera déployé, les "short tags" ne seront pas forcément autorisés :)

Affichage d'un UPDATE avec pages protégées

par ordisoft » 20 avr. 2008, 13:39

Bonjour,

J'ai fait une requête UPDATE en deux pages, dans la première il y-à la SELECT
qui affiche les infos que je veut changer et la deuxième l'UPDATE. (qui fonctionne bien)

J'aimerais que dans la deuxième page je puisse voir
les changement que je vient de faire sans passer par une troisièmmes page,
est-ce possible où je doit recharger la page avec une requête SELECT ?
remarques : pour l'affichage j'ai essayer avec un ,
<? while ($ligne=mysql_fetch_array($resultat)) { ?>


où un ,
<? $ligne = mysql_fetch_array($resultat); ?>
Password :  <? echo $ligne["membre_pwd"]; ?><br />
         Mail :  <? echo $ligne["membre_mail"]; ?>
sans sucées ?

code de deuxième page avec requête UPDATE
<?
session_start();
if (!isset($_SESSION["pseudo"])) {
	header("Location:index.php?error=1");
}


// je me connect a la base
@mysql_connect("localhost","root","") or die("Echec de connexion au serveur.");
@mysql_select_db("cours_membres") or die("Echec de sélection de labase.");


$requete_todo="
		UPDATE t_membres 
		SET 
		membre_pwd='".trim(addslashes($_POST["membre_pwd"]))."',
		membre_mail='".trim(addslashes($_POST["membre_mail"]))."'
		WHERE membre_id=".$_POST["membre_id"];
		
$resultat = mysql_query($requete_todo);

$marequete = "SELECT * FROM t_membres ORDER BY membre_pseudo ASC";
$resultat = mysql_query($requete_todo);
?>
Merci à tous,