modifier / supprimer des champs

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 : modifier / supprimer des champs

par Invité » 07 janv. 2007, 18:48

Fait nous un résumé de ce que tu as et ce que tu voudrais.
(avec du code)
voila le resum de tout:

Une page pour voir tous les champs en input et textarea, je modifie les champs pour les envouyer, quand je modifie les champs et je click sur le lien modifier, il passe les champs que j ai modifie en VIDE, ils ne sont pas rempli, je teste avec echo var_dump($variable); il donne string 0.
<?php
include ('config.php');
$titre   = (isset($_POST['titre']))   ? $_POST['titre']   : ''; 
$message = (isset($_POST['message'])) ? $_POST['message'] : ''; 
$url     = (isset($_POST['url']))     ? $_POST['url']     : ''; 
$date    = (isset($_POST['date']))    ? $_POST['date']    : ''; 
$act     = (isset($_GET["act"]) )     ? $_GET["act"]      : Null; 
$id      = (isset($_GET['id']))       ? $_GET['id']       : ''; 

$date = date("d/m/Y");


$connection = mysql_connect($dbhost, $dblogin, $dbpassword) or die ($ErrorConnection);
$db = mysql_select_db($dbname, $connection) or die ($ErrorDBase);
$select = "SELECT * FROM $scroll_table";
$result = mysql_query($select,$connection) or die ($ErrorSelect);
$Total = mysql_num_rows($result);

if($Total=='0') 
{
echo $ErrorScroll1;
}
else
{
?>
<form method="POST" action="index.php?rub=Scroll_Action">

<div align="center" dir="rtl">
<table width="100%">
<tr><td colspan="4">المجموع:&nbsp;&nbsp; <? echo $Total; ?></td>
<tr>
<td>Titre</td>
<td>Message</td>
<td>URL</td>
<td>Action</td></tr>
<?
//////////////////// multipages partie 1 debut //////////////////////
//donner une valeur au nombre de message par page
$NombreDeMessagesParPage = '4'; // Essayez de changer ce nombre pour voir :o)
//calculer le nombre de page avec arrondissement sup ceil()
$NombreDePages  = ceil($Total / $NombreDeMessagesParPage); // Total = 10 => 10/4=2.5 => ceil=3 pages

//on met page comme variable
if (isset($_GET['page']))
{
//    $page = $_GET['page']; // On rꤵp鳥 le num곯 de la page indiqu顤ans l'adresse (admin.php?page=4)
    $page = intval($_GET['page']);
}
else // La variable n'existe pas, c'est la premi鳥 fois qu'on charge la page
{
    $page = 1; // On se met sur la page 1 (par dꧡut)
}

// On calcule le num곯 du premier message qu'on prend pour le LIMIT de MySQL
$PremierMessageAafficher = ($page - 1) * $NombreDeMessagesParPage;
$select1 = 'SELECT * FROM '.$scroll_table.' ORDER BY id DESC LIMIT '. $PremierMessageAafficher . ', '. $NombreDeMessagesParPage;
$result1 = mysql_query($select1,$connection) or die ($ErrorSelect);
////////////////// multipages partie 1 fin //////////////////////

    // on va scanner tous les tuples un par un 
    while ($data = mysql_fetch_array($result1)) {
        // on affiches les r괵ltats dans la <table>

$titre = $data['titre'];
$message = $data['message'];
$url = $data['url'];
$id = $data['id'];
?>

<tr><td>
<input type="text" name="titre" size="20" maxlength="50" value="<? echo $titre; ?>" class="input01">
</td>
<td>
<textarea  name="message" cols="45" rows="8" class="textarea01"><? echo $message; ?></textarea>
</td>
<td>
<input type="text" name="url" size="20" maxlength="50" value="<? echo $url; ?>" class="input01">
</td>
<td>
<?
echo '<a href="'.$url_admin.'/index.php?rub=Scroll_Action&act=update&id='.$id.'"><img src="'.$url_du_site.'/Images/update.gif" alt="modi" class="imglink"></a>';
echo '&nbsp;&nbsp';
echo '<a href="'.$url_admin.'/index.php?rub=Scroll_Action&act=del&id='.$id.'"><img src="'.$url_du_site.'/Images/delete.gif" alt="supp" class="imglink"></a>';
?>
</td></tr>
</div>
<?php
    } // fermeture de while
?>	
<td>
<form name="formpages" method="GET">
<SELECT name="ListeUrl" size=1 ONCHANGE="location = this.options[this.selectedIndex].value;" class="select01">
<option selected>aller</option>
<?
for ($i = 1 ; $i <= $NombreDePages ; $i++)
{
    echo '<center><option value="'.$url_admin.'/index.php?rub=Scroll_View&page=' . $i . '"><a href="'.$url_admin.'/index.php?rub=Scroll_View&pagepage=' . $i . '">' . $i . '</a></option></center>';
}
?>
</select>
</form>
</td></tr>
<tr><td>total:&nbsp;&nbsp; <? echo $NombreDePages; ?></td></tr>
<tr><td>nta f sef7a:&nbsp;&nbsp; <? echo $page; ?></td></tr>

<?

mysql_close (); 
    } // fermeture de else {}
?>
</table>
</form>
une 2eme page ou l action passe:
<?php  
include ('config.php');
$titre   = (isset($_POST['titre']))   ? $_POST['titre']   : ''; 
$message = (isset($_POST['message'])) ? $_POST['message'] : ''; 
$url     = (isset($_POST['url']))     ? $_POST['url']     : ''; 
$date    = (isset($_POST['date']))    ? $_POST['date']    : ''; 
$act     = (isset($_GET["act"]) )     ? $_GET["act"]      : Null; 
$id      = (isset($_GET['id']))       ? $_GET['id']       : ''; 

$date = date("d/m/Y"); 


$connection = mysql_connect($dbhost, $dblogin, $dbpassword) or die ($ErrorConnection); 
$db = mysql_select_db($dbname, $connection) or die ($ErrorDBase); 
$select = 'SELECT * FROM '.$scroll_table; 
$result = mysql_query($select,$connection) or die ($ErrorSelect); 
$Total = mysql_num_rows($result);  

if(!empty($id) && isset($act)) 
{ 
    if($act == "del") 
    { 
        $QueryDelete = "DELETE FROM ". $scroll_table ." ". 
                       "WHERE id=". $id; // Si on récupère $_GET['id'] dans une variable, on utilisera cette variable 
        $QueryDeleteResult = mysql_query ($QueryDelete) or die($ErrorDelete); 
        $Total1 = mysql_affected_rows($QueryDeleteResult); 
        if ($Total1 == '1') 
        { 
            echo "deleted"; 
            echo $titre; 
            echo $ErrorDeleteQuery1; 
            echo $Refresh1; 
	        } 
        else 
        { 
            echo "item not deleted"; 
        } 
    } 
    elseif($act=="update") 
    { 
        $sql2 = "Update ". $scroll_table ." ". 
                "SET titre   = '". $titre ."' ,  
                     url     = '". $url ."' ,  
                     message = '". $message ."' ". 
                "WHERE id=".$id;  
        $result2 = mysql_query($sql2,$connection) or die ($ErrorUpdate); 
        $Total2 = mysql_affected_rows($result2); 
		echo $sql2.'<br>';
	    if ($Total2 == '1') 
        { 
            echo "item updated"; 
			 echo var_dump($titre); 
        } 
        else 
        { 
            echo "item not updated<br>"; 
	
      //  echo '<pre>', print_r($_GET) ,'</pre>'; 

            echo var_dump($titre); 
        } 
        mysql_close(); 
    } 
    else 
    { 
    		echo "heho";
    } 
} 
?> 

par Truc » 05 janv. 2007, 20:30

Fait nous un résumé de ce que tu as et ce que tu voudrais.
(avec du code)

par Invité » 05 janv. 2007, 20:00

Si au lieu de faire de "UP" déguisés tu nous mettais les extraits pertinents de code, on pourrait peut-être t'aiguiller vers une solution. On ne fait plus usage de boules de cristal depuis pas mal de temps ici :-k
j ai suivi les instruction pour corriger mes fautes mais ca marchent toujurs pas, je voudrais savoir si ya une bonne methode pour se baser a transmettres des variables de page a d autres, merci

par Cyrano » 05 janv. 2007, 19:53

Si au lieu de faire de "UP" déguisés tu nous mettais les extraits pertinents de code, on pourrait peut-être t'aiguiller vers une solution. On ne fait plus usage de boules de cristal depuis pas mal de temps ici :-k

par Invité » 05 janv. 2007, 19:52

est ce qu il y a quelqun qui connait l erreur peut me donner un coup de main

par Invité » 05 janv. 2007, 18:58

j ai teste POST et SESSION mais les var sont irrecuperable, je suis heberge sous free, je pense pas qu ils ont un probleme

par Invité » 03 janv. 2007, 18:54

dans la page ou je recupere toutes les variables elle sont recuperees, je pense qu il ya pas une coordination entre la 1ere page et la 2eme quand je veux executer l action de modification

par Cyrano » 02 janv. 2007, 23:56

VOilà, le valeurs sont vide, donc les variables ne sont pas initialisées ou n'ont pas été récupérées : le problème est donc en amont.

par Invité » 02 janv. 2007, 22:31

Alors fais afficher ta requête, il y a fort à parier que ta requête envoie des variables vides en guise de valeurs : alors logiquement, tes champs se vident dans la table.
ca donne:
Update scroll_table SET titre = '' , url = '' , message = '' WHERE id=14
1
item not updated
string(0) ""

par Cyrano » 02 janv. 2007, 22:16

Alors fais afficher ta requête, il y a fort à parier que ta requête envoie des variables vides en guise de valeurs : alors logiquement, tes champs se vident dans la table.

par Invité » 02 janv. 2007, 22:15

utiliser les sessions est ce bon a recommander:
<?php
$_SESSION['titre'] = $titre;
?>

par Invité » 02 janv. 2007, 20:27

j ai fait les modifications necessaires mais les champs deviennent vides

par Cyrano » 01 janv. 2007, 14:24

Je n'ai pas tout corrigé dans ton code : mais il y a une fonction qui n'a rien à faire là : mysql_num_rows() : on utilise cette fonction à la suite d'une requête SQL SELECT : or là, tu fais une requête UPDATE. Donc la fonction appropriée serait plutôt mysql_affected_rows()

Et pour que ça aie une chance de marcher, il faudrait exécuter la bonne requête :

Là, tu fais :
//...
        $sql2 = "Update ". $scroll_table ." ".
                "SET titre   = '". $titre ."' , 
                     url     = '". $url ."' , 
                     message = '". $message ."' ".
                "WHERE id=".$id; 
        $result2 = mysql_query($select,$connection) or die ($ErrorUpdate);
        $Total2 = mysql_num_rows($result2); 
//...
Alors que ce devrait être :
//...
        $sql2 = "Update ". $scroll_table ." ".
                "SET titre   = '". $titre ."' , 
                     url     = '". $url ."' , 
                     message = '". $message ."' ".
                "WHERE id=".$id; 
        $result2 = mysql_query($sql2,$connection) or die ($ErrorUpdate);
        $Total2 = mysql_affected_rows($result2); 
//...
Que t'en semble ?? La programmation, c'est pas juste copier/coller du code, c'est aussi lire ce qu'on écrit ou colle et ça demande un petit minimum d'attention ;)

par Invité » 01 janv. 2007, 14:06

c etait une petite faute de frappe, et quand je modifie ca donne:

Code : Tout sélectionner

 item not updated string(0) ""

par Invité » 01 janv. 2007, 14:02

Code : Tout sélectionner

 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /mnt/122/sdb/f/b/............/Scroll/scroll_action.php on line 40
voila la ligne 40:
        $result2 = mysql_query($select,$connection) or die ($ErrorUpdate);