Ajouter lien supprimer et effacement enregistrement dans la BDD

Ajouter lien supprimer et effacement enregistrement dans la BDD - PHP - Programmation

Marsh Posté le 31-07-2013 à 16:29:22    

Bonjour,
Je souhaiterais sur cette page, ou j'ai mis le lien supprimer : http://217.16.12.195/live3/hotlaps [...] oad+Course
 
Que ça efface depuis la base de donnée. j'ai essayé pas mal de truc mais rien de convaincant.
 
 

Code :
  1. <?php
  2.    $pageName = "hotlaps.php";
  3.    include "inc.config.php";
  4.    error_reporting($reportLevel);
  5.    include "inc.common.php";
  6.    include "inc.mysqli.conn.php";
  7.    include "inc.requests.php";
  8.    $TrackName = "";
  9.    $prevTrackNameSelected = "";
  10.    if(isset($_GET["TrackName"])){
  11.           $TrackName = urldecode($_GET["TrackName"]);
  12.           if(validateNameVars($TrackName) === true){
  13.                  $prevTrackNameSelected = urldecode($_GET["TrackName"]);
  14.           }else{
  15.                  $TrackName = "";
  16.                  writeErrorLog($pageName, "urlGetTrackName", "The value of URL GET parameter [TrackName] did not pass validation. Value: (" . $_GET["TrackName"] . " )" );
  17.           }
  18.    }
  19.    if(isset($_POST["TrackName"])){
  20.           $TrackName = $_POST["TrackName"];
  21.           if(validateNameVars($TrackName) === true){
  22.           }else{
  23.                  $TrackName = "";
  24.                  writeErrorLog($pageName, "postTrackName", "The value of POST parameter [TrackName] did not pass validation. Value: (" . $_POST["TrackName"] . " )" );
  25.           }
  26.    }
  27.    $VehicleClass = "ALL";
  28.    if(isset($_POST["VehicleClass"])){
  29.           $VehicleClass = $_POST["VehicleClass"];
  30.           if(validateNameVars($VehicleClass) === true){
  31.           }else{
  32.                  $VehicleClass = "";
  33.                  writeErrorLog($pageName, "postVehicleClass", "The value of POST parameter [VehicleClass] did not pass validation. Value: (" . $_POST["VehicleClass"] . " )" );
  34.           }
  35.    }
  36.    if($TrackName != $prevTrackNameSelected){
  37.           $VehicleClass = "ALL";
  38.    }
  39. ?>
  40. <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN' 'http://www.w3.org/TR/html4/loose.dtd'>
  41. <html>
  42. <head>
  43. <meta http-equiv='pragma' content='no-cache'>
  44. <meta http-equiv='cache-control' content='no-cache'>
  45. <meta http-equiv='expires' content='0'>
  46. <meta http-equiv='content-type' content='text/html; charset=<?php echo $siteCharSet; ?>'>
  47. <title>VM LiveView Lite (Hotlaps)</title>
  48. <link rel='stylesheet' type='text/css' href='<?php echo $siteURL; ?>/styles.css'>
  49. </head>
  50. <body>
  51. <div class='center'>
  52. <div class='break4'></div>
  53. <?php
  54.    echo "<div class='sitename'>" . $siteName . "</div>\n";
  55.    try{
  56.           $gameID = 0;
  57.           if(!$mySQLiConn->connect_error){
  58.                  $selectGameID = "SELECT SQL_CACHE `GameID` FROM `sessioninfos` WHERE `ID` = '1' LIMIT 1";
  59.                  if($resultGameID = $mySQLiConn->query($selectGameID)){
  60.                         if($resultGameID->num_rows == 1){
  61.                            while($rowGameID = $resultGameID->fetch_assoc()){
  62.                                   $gameID = $rowGameID["GameID"];
  63.                            }
  64.                         }
  65.                         $resultGameID->free();
  66.                  }
  67.                  $arrayTrackNames = array();
  68.                  $selectTrackNames = "SELECT DISTINCT SQL_CACHE `TrackName` FROM `hotlaps`";
  69.                  if($resultTrackNames = $mySQLiConn->query($selectTrackNames)){
  70.                         if($resultTrackNames->num_rows > 0){
  71.                            while($rowTrackNames = $resultTrackNames->fetch_assoc()){
  72.                                   $arrayTrackNames[] = $rowTrackNames["TrackName"];
  73.                            }
  74.                         }
  75.                         $resultTrackNames->free();
  76.                  }
  77.                  $arrayClasses = array();
  78.                  $selectClasses = "SELECT DISTINCT SQL_CACHE `VehicleClass` FROM `hotlaps` WHERE `TrackName` = '" . $mySQLiConn->real_escape_string($TrackName) . "' ORDER BY `VehicleClass`";
  79.                  if($resultClasses = $mySQLiConn->query($selectClasses)){
  80.                         if($resultClasses->num_rows > 0){
  81.                            while($rowClasses = $resultClasses->fetch_assoc()){
  82.                                   $arrayClasses[] = $rowClasses["VehicleClass"];
  83.                            }
  84.                         }
  85.                         $resultClasses->free();
  86.                  }
  87.                  if($VehicleClass == "ALL" ){
  88.                         $VehicleClass = "%";
  89.                  }
  90.                  $selectHotlaps = "SELECT SQL_CACHE * FROM `hotlaps` WHERE `TrackName` = '" . $mySQLiConn->real_escape_string($TrackName) . "' AND `VehicleClass` LIKE '" . $mySQLiConn->real_escape_string($VehicleClass) . "' ORDER BY `TrackName` ASC, `LapTime`, `LastUpdate`";
  91.                  if($TrackName == "ALL" ){
  92.                         $selectHotlaps = "SELECT SQL_CACHE * FROM `hotlaps` ORDER BY `TrackName` ASC, `LapTime`, `LastUpdate`";
  93.                  }
  94.                  if($resultHotlaps = $mySQLiConn->query($selectHotlaps)){
  95.                         if($resultHotlaps->num_rows > 0){
  96.                            $hotlapRank = 1;
  97.                            $prevTrackName = "";
  98.                            $prevLapTime = 0;
  99.                            $thTrackName = "";
  100.                            if($TrackName == "ALL" ){
  101.                                   $thTrackName = "<th class='hotlaps' title='Track'>Track</th>";
  102.                            }
  103.                            echo "<div class='break4'></div>\n";
  104.                            echo "<form name='Hotlaps' action='" . $siteURL . "/hotlaps.php?TrackName=" . urlencode($TrackName) . "' method='POST'>\n";
  105.                            echo "<fieldset>\n";
  106.                            echo "<legend>\n";
  107.                            echo "Hotlaps <select name='TrackName' onchange='document.Hotlaps.submit()'>\n";
  108.                            $selectedTrackName = "";
  109.                            if($TrackName == "ALL" ){
  110.                                   $selectedTrackName = " selected='selected'";
  111.                            }
  112.                            echo "<option value='ALL'" . $selectedTrackName . ">ALL</option>\n";
  113.                            foreach($arrayTrackNames as $valueTrackName){
  114.                                   if($valueTrackName == $TrackName){
  115.                                          $selectedTrackName = " selected='selected'";
  116.                                   }else{
  117.                                          $selectedTrackName = "";
  118.                                   }
  119.                                   echo "<option value='" . $valueTrackName . "'" . $selectedTrackName . ">" . $valueTrackName . "</option>\n";
  120.                            }
  121.                            echo "</select>\n";
  122.                            echo "Class <select name='VehicleClass' onchange='document.Hotlaps.submit()'>\n";
  123.                            $selectedClass = "";
  124.                            if($VehicleClass == "ALL" ){
  125.                                   $selectedClass = " selected='selected'";
  126.                            }
  127.                            echo "<option value='ALL'" . $selectedClass . ">ALL</option>\n";
  128.                            foreach($arrayClasses as $valueClass){
  129.                                   if($valueClass == $VehicleClass){
  130.                                          $selectedClass = " selected='selected'";
  131.                                   }else{
  132.                                          $selectedClass = "";
  133.                                   }
  134.                                   $displayClass = $valueClass;
  135.                                   switch($valueClass){
  136.                                          case $class1RealName:
  137.                                                 $displayClass = $class1DisplayName;
  138.                                                 break;
  139.                                          case $class2RealName:
  140.                                                 $displayClass = $class2DisplayName;
  141.                                                 break;
  142.                                          case $class3RealName:
  143.                                                 $displayClass = $class3DisplayName;
  144.                                                 break;
  145.                                          case $class4RealName:
  146.                                                 $displayClass = $class4DisplayName;
  147.                                                 break;
  148.                                   }
  149.                                   echo "<option value='" . $valueClass . "'" . $selectedClass . ">" . $displayClass . "</option>\n";
  150.                            }
  151.                            echo "</select>\n";
  152.                            echo "</legend>\n";
  153.                            echo "<table>\n";
  154.                            echo "<tr>" . $thTrackName .
  155.                                                  "<th class='hotlaps' title='Rank'>Rank</th>" .
  156.                                                  "<th class='hotlaps' title='Driver Name'>Driver</th>" .
  157.                                                  "<th class='hotlaps' title='Vehicle Class'>Class</th>" .
  158.                                                  "<th class='hotlaps' title='Vehicle'>Vehicle</th>" .
  159.                                                  "<th class='hotlaps' title='Timed Laps'>Laps</th>" .
  160.                                                  "<th class='hotlaps' title='Sector Time 1'>Sector1</th>" .
  161.                                                  "<th class='hotlaps' title='Sector Time 2'>Sector2</th>" .
  162.                                                  "<th class='hotlaps' title='Sector Time 3'>Sector3</th>" .
  163.                                                  "<th class='hotlaps' title='Lap Time'>Lap Time</th>" .
  164.                                                  "<th class='hotlaps' title='Gap to Best'>Gap</th>" .
  165.                                                  "<th class='hotlaps' title='Gap to Next'>Interval</th>" .
  166.                                                  "<th class='hotlaps' title='Session'>Session</th>" .
  167.                                                  "<th class='hotlaps' title='Last Update'>Last Update</th>" .
  168.                                         "</tr>\n";
  169.                                   while($row = $resultHotlaps->fetch_assoc()){
  170.                                          $tdTrackName = "";
  171.                                          if($TrackName == "ALL" ){
  172.                                                 $tdTrackName = "<td class='center'>" . $row["TrackName"] . "</td>";
  173.                                                 if($prevTrackName != $row["TrackName"]){
  174.                                                    $hotlapRank = 1;
  175.                                                 }
  176.                                          }
  177.                                          $sessionName = setSessionName($row["Session"], $gameID);
  178.                                          $gapToBestLap = 0;
  179.                                          if($hotlapRank == 1){
  180.                                                 $absBestLap = $row["LapTime"];
  181.                                                 $prevLapTime = $row["LapTime"];
  182.                                          }
  183.                                          $gapToBestLap = $gapToBestLap = number_format($row["LapTime"] - $absBestLap, 3);
  184.                                          if($gapToBestLap <= 0){
  185.                                                 $gapToBestLap = "-";
  186.                                          }else{
  187.                                                 $gapToBestLap = "+" . $gapToBestLap;
  188.                                          }
  189.                                          $gapToNextLap = number_format($row["LapTime"] - $prevLapTime, 3);
  190.                                          if($gapToNextLap <= 0){
  191.                                          $gapToNextLap = "-";
  192.                                          }else{
  193.                                                 $gapToNextLap = "+" . $gapToNextLap;
  194.                                          }
  195.                                          $vehicleClass = $row["VehicleClass"];
  196.                                          switch($vehicleClass){
  197.                                                 case $class1RealName:
  198.                                                    $vehicleClass = "<span style='color:" . $class1Color . ";'>" . $class1DisplayName . "</span>";
  199.                                                    $lapTime = "<span style='color:" . $class1Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
  200.                                                    $gapToNextLap = "<span style='color:" . $class1Color . ";'>" . $gapToNextLap . "</span>";
  201.                                                    break;
  202.                                                 case $class2RealName:
  203.                                                    $vehicleClass = "<span style='color:" . $class2Color . ";'>" . $class2DisplayName . "</span>";
  204.                                                    $lapTime = "<span style='color:" . $class2Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
  205.                                                    $gapToNextLap = "<span style='color:" . $class2Color . ";'>" . $gapToNextLap . "</span>";
  206.                                                    break;
  207.                                                 case $class3RealName:
  208.                                                    $vehicleClass = "<span style='color:" . $class3Color . ";'>" . $class3DisplayName . "</span>";
  209.                                                    $lapTime = "<span style='color:" . $class3Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
  210.                                                    $gapToNextLap = "<span style='color:" . $class3Color . ";'>" . $gapToNextLap . "</span>";
  211.                                                    break;
  212.                                                 case $class4RealName:
  213.                                                    $vehicleClass = "<span style='color:" . $class4Color . ";'>" . $class4DisplayName . "</span>";
  214.                                                    $lapTime = "<span style='color:" . $class4Color . ";'>" . formatLapTime($row["LapTime"]) . "</span>";
  215.                                                    $gapToNextLap = "<span style='color:" . $class4Color . ";'>" . $gapToNextLap . "</span>";
  216.                                                    break;
  217.                                                 default:
  218.                                                    $vehicleClass = "<span class='classUC'>" . $row["VehicleClass"] . "</span>";
  219.                                                    $lapTime = "<span class='classUC'>" . formatLapTime($row["LapTime"]) . "</span>";
  220.                                                    $gapToNextLap = "<span class='classUC'>" . $gapToNextLap . "</span>";
  221.                                                    break;
  222.                                          }
  223.                                          $trClass = "'bg0'";
  224.                                          if(($hotlapRank % 2) == 0){$trClass = "'bg1'";}
  225.                                          echo "<tr class=".$trClass.">" . $tdTrackName .
  226.                                                                                                   "<td class='center'>" . $hotlapRank . "</td>" .
  227.                                                                                                   "<td>" . $row["DriverName"] . "</td>" .
  228.                                                                                                   "<td class='center'>" . $vehicleClass . "</td>" .
  229.                                                                                                   "<td>" . $row["Vehicle"] . "</td>" .
  230.                                                                                                   "<td class='center'>" . $row["TimedLaps"] . "</td>" .
  231.                                                                                                   "<td class='righttime'>" . formatLapTime($row["Sec1"]) . "</td>" .
  232.                                                                                                   "<td class='righttime'>" . formatLapTime($row["Sec2"]) . "</td>" .
  233.                                                                                                   "<td class='righttime'>" . formatLapTime($row["Sec3"]) . "</td>" .
  234.                                                                                                   "<td class='righttime'>" . $lapTime . "</td>" .
  235.                                                                                                   "<td class='right'>" . $gapToBestLap . "</td>" .
  236.                                                                                                   "<td class='right'>" . $gapToNextLap . "</td>" .
  237.                                                                                                   "<td class='center'>" . $sessionName . "</td>" .
  238.                                                                                                   "<td>" . $row["LastUpdate"] . "</td>" .
  239.                                                   "</tr>\n";
  240.                                          $hotlapRank ++;
  241.                                          $prevTrackName = $row["TrackName"];
  242.                                          $prevLapTime = $row["LapTime"];
  243.                                   }
  244.                            echo "</table>\n";
  245.                            echo "</fieldset>\n";
  246.                            echo "<input type='hidden' name='PreviousTrackName' value='" . $prevTrackNameSelected . "' >\n";
  247.                            echo "</form>\n";
  248.                         }else{
  249.                            echo "<div class='break12'></div>\n";
  250.                            echo "<div class='red'>No records found.</div>\n";
  251.                         }
  252.                         $resultHotlaps->free();
  253.                  }
  254.                  $mySQLiConn->close();
  255.           }else{
  256.                  echo $mySQLiConnError;
  257.           }
  258.           include "inc.copyright.php";
  259.    }catch(Exception $ex){
  260.           writeErrorLog($pageName, "General Exception", "Exception Msg: (" . $ex->getMessage() . " )" );
  261.    }
  262. ?>
  263. </div>
  264. </body>
  265. </html>

Reply

Marsh Posté le 31-07-2013 à 16:29:22   

Reply

Marsh Posté le 01-08-2013 à 09:30:17    

Êtes vous sûr que ce soit le bon code?
 
Il manque la colonne "Supprimer" dans votre code

Code :
  1. echo "<tr>" . $thTrackName .
  2.                                                  "<th class='hotlaps' title='Rank'>Rank</th>" .
  3.                                                  "<th class='hotlaps' title='Driver Name'>Driver</th>" .
  4.                                                  "<th class='hotlaps' title='Vehicle Class'>Class</th>" .
  5.                                                  "<th class='hotlaps' title='Vehicle'>Vehicle</th>" .
  6.                                                  "<th class='hotlaps' title='Timed Laps'>Laps</th>" .
  7.                                                  "<th class='hotlaps' title='Sector Time 1'>Sector1</th>" .
  8.                                                  "<th class='hotlaps' title='Sector Time 2'>Sector2</th>" .
  9.                                                  "<th class='hotlaps' title='Sector Time 3'>Sector3</th>" .
  10.                                                  "<th class='hotlaps' title='Lap Time'>Lap Time</th>" .
  11.                                                  "<th class='hotlaps' title='Gap to Best'>Gap</th>" .
  12.                                                  "<th class='hotlaps' title='Gap to Next'>Interval</th>" .
  13.                                                  "<th class='hotlaps' title='Session'>Session</th>" .
  14.                                                  "<th class='hotlaps' title='Last Update'>Last Update</th>" .
  15.                                         "</tr>\n";


 

Reply

Marsh Posté le 01-08-2013 à 09:47:09    

Code :
  1. echo "<tr>" . $thTrackName .
  2.                                                  "<th class='hotlaps' title='Rank'>Rank</th>" .
  3.                                                  "<th class='hotlaps' title='Driver Name'>Driver</th>" .
  4.                                                  "<th class='hotlaps' title='Vehicle Class'>Class</th>" .
  5.                                                  "<th class='hotlaps' title='Vehicle'>Vehicle</th>" .
  6.                                                  "<th class='hotlaps' title='Timed Laps'>Laps</th>" .
  7.                                                  "<th class='hotlaps' title='Sector Time 1'>Sector1</th>" .
  8.                                                  "<th class='hotlaps' title='Sector Time 2'>Sector2</th>" .
  9.                                                  "<th class='hotlaps' title='Sector Time 3'>Sector3</th>" .
  10.                                                  "<th class='hotlaps' title='Lap Time'>Lap Time</th>" .
  11.                                                  "<th class='hotlaps' title='Gap to Best'>Gap</th>" .
  12.                                                  "<th class='hotlaps' title='Gap to Next'>Interval</th>" .
  13.                                                  "<th class='hotlaps' title='Session'>Session</th>" .
  14.                                                  "<th class='hotlaps' title='Last Update'>Last Update</th>" .
  15.       "<th class='hotlaps' title='Delete'>Delete</th>" .
  16.                                         "</tr>\n";


 
Mon lien c'était pour l'exemple  :hello:

Reply

Marsh Posté le 01-08-2013 à 10:11:33    

Si tu utilises jQuery voilà ce que je te conseille :
 
Lors de la création de ton bouton/lien supprimer, ajoute un paramètre (exemple :  

Code :
  1. "<th class='hotlaps td_delete' title='Delete' id_param='".$id."'>Delete</th>" .


)
 
ensuite tu crées un event click (si tu appelles ton javascript avant la création du tableau, oublie pas de créer un event .on/.off )
en faisant une écoute sur ta class td_delete
 

Code :
  1. jQuery(".td_delete" ).die/off('click').on/live('click',function(){
  2. });


 
Ensuite tu fais ton appel ajax qui va récupérer ton id de la ligne a delete dans ta base de données
 

Code :
  1. jQuery(".td_delete" ).die/off('click').on/live('click',function(){
  2. var idDelete = jQuery(this).attr("id_param" );
  3. });


 
Ensuite tu fais ton ajax vers ton fichier php
 
 

Code :
  1. jQuery(".td_delete" ).die/off('click').on/live('click',function(){
  2. var idDelete = jQuery(this).attr("id_param" );
  3. jQuery.ajax({
  4.         type: "POST",
  5.         url: "lien_vers_ta_page.php",
  6.         data: ({
  7.             method: "delete_line",
  8.             idDelete  : idDelete
  9.         }),
  10.         beforeSend: function() {
  11.         },
  12.         success: function(data) {
  13. if(data.success)
  14.               jQuery(this).parent('tr').hide(); //Si tu as supprimé dans ta BDD tu caches la ligne du tableau
  15. else
  16. //truc a faire si ça fonctionne pas
  17.         },
  18.         error: function() {
  19.         }
  20.     });
  21. });


 
ensuite ta page php (lien_vers_ta_page.php)
 

Code :
  1. function delete_line($id){
  2. //script d'exécution de ta requete
  3. if(requete_réussit)
  4. return json_encode(array("success" => true, 'param' => $info));// tu peux ajouter autant de paramètre de retour que tu veux pour les utiliser dans ton ajax
  5. else
  6. return json_encode(array("success" => false, 'param' => $info));
  7. }
  8. if(isset(@$_POST) and is_array(@$_POST)){
  9. if (@$_POST['method'] == 'delete_line') {
  10.             header('Cache-Control: no-cache, must-revalidate');
  11.             header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  12.             header('Content-type: application/json; charset=utf-8');
  13.             echo delete_line(@$_POST['idDelete']);
  14.         }
  15. }


 
J'espere avoir pu t'aider
 
Cordialement,

Reply

Marsh Posté le 01-08-2013 à 11:13:44    

Oula, merci beaucoup mais JQuery je connais quelques truc mais là c'est compliqué. Je sais même pas ce qui est une écoute...  
Il y pas une facon de faire simple en php ?
Genre :

Code :
  1. "<td class='center'><a href='suppr.php?ID=.$id.'>Supprimer</a></td>" .


 
le fichier suppr :  

Code :
  1. <?
  2. if(isset($_GET['id']))
  3. {
  4. $con = mysql_connect("localhost","xxx","xxxx" );
  5. if (!$con)
  6.   {
  7.   die('Could not connect: ' . mysql_error());
  8.   }
  9. mysql_select_db("xxxx", $con);
  10. $id = $_GET['id'];
  11. mysql_query("delete FROM hotlaps where ID=$id" );
  12. echo $mysql_query;
  13. }
  14. ?>


Message édité par Valbuena72 le 01-08-2013 à 11:14:03
Reply

Marsh Posté le 01-08-2013 à 11:45:13    

Si mais la le problème c'est que tu changes de page en faisans ça, et niveau sécurité, c'est vraiment bof car n'importe qui peut supprimer une ligne en écrivant le liens dans sa barre de tache.
 
Tu peux utiliser les variables de sessions pour un peu plus de sécu en faisant un truc du genre :
 
lors de l'identification (si il y a identification) => tu crées la session de l'utilisateur :sessions_start(); ensuite tu affecte une variable pour dire que c'est un utilisateur : $_SESSION['logged'] ='yes';
 
Sur toutes tes pages avant d'écrire quoi que ce soit tu fais un session_start()
 
ensuite pour ta page suppr.php tu fais  

Code :
  1. <?
  2. session_start();
  3. if($_SESSION['logged'] == 'yes'){
  4.     if(isset($_GET['id']))
  5.     {
  6.     $con = mysql_connect("localhost","xxx","xxxx" );
  7.     if (!$con)
  8.       {
  9.       die('Could not connect: ' . mysql_error());
  10.       }
  11.     mysql_select_db("xxxx", $con);
  12.     $id = $_GET['id'];
  13.     $result =  mysql_query("delete FROM hotlaps where ID=$id" );
  14.     if(!$result){
  15. echo "Un problème est survenu, contacter l'admin</br>Vous allez être redirigé dans 5 secondes";
  16. echo '<META HTTP-EQUIV="Refresh" CONTENT="5; URL=page_precedente.php"> ';
  17. }else{
  18. echo "Suppression réussite</br>Vous allez être redirigé dans 5 secondes";
  19. echo '<META HTTP-EQUIV="Refresh" CONTENT="5; URL=page_precedente.php"> ';
  20. }
  21.     }
  22. }
  23.     ?>

Reply

Marsh Posté le 01-08-2013 à 13:49:57    

Merci mais c'est surtout le code php qui ne fonctionne pas :
$id = $_GET['id'];
mysql_query("delete FROM hotlaps where ID=$id" );

Reply

Marsh Posté le 01-08-2013 à 14:18:53    

qu'est-ce que tu obtiens en faisans $id = $_GET['ID'];
puis echo 'id : '.$id;

Reply

Marsh Posté le 03-08-2013 à 09:01:12    

J'ai réussi a récuperer l'id ici : http://217.16.12.195/live2/hotlaps [...] %20Layout)  (sur les liens supprimer  ) mais ça supprimer ça ne marche pas.
J'ai fais un echo de $id et page blanche

Reply

Marsh Posté le 03-08-2013 à 10:03:40    

ça affiche quoi? ...

Reply

Marsh Posté le 03-08-2013 à 10:03:40   

Reply

Marsh Posté le 03-08-2013 à 10:34:21    

Mon lien ressemble à ça :  

Code :
  1. "<td>" . '<a href="suppr.php?id='.$row['ID'].'">Delete</a>' . "</td>";


Code :
  1. <?php
  2. session_start();
  3. if($_SESSION['logged'] == 'yes'){
  4.     if(isset($_GET['ID']))
  5.     {
  6.     $con = mysql_connect("localhost","xxxxxx","xxxxxxx" );
  7.     if (!$con)
  8.       {
  9.       die('Could not connect: ' . mysql_error());
  10.       }
  11.     mysql_select_db("xxxxxxxxx", $con);
  12.     $id = $_GET['ID'];
  13.     $result =  mysql_query("delete FROM hotlaps where ID=$id" );
  14.     if(!$result){
  15. echo "Un problème est survenu, contacter l'admin ";
  16. echo 'id : '.$id;
  17. }else{
  18. echo "Suppression réussite";
  19. echo 'id : '.$id;
  20. }
  21.     }
  22. }
  23.     ?>


 
J'obtiens ça :
http://217.16.12.195/live2/suppr.php
 
Que j'active les notice ou pas. Aucune erreur  :fou:
 
Bizarre en affichant le code source, je vois le code php  :fou:
 
 
Edit ; trouvé ma balise n'était pas bonne <?  
Il faut faire : <?php
 
voici le message d'erreur :

Code :
  1. Notice: Undefined index: ID


Message édité par Valbuena72 le 03-08-2013 à 10:56:43
Reply

Marsh Posté le 03-08-2013 à 10:58:34    

ça marcheeeeeeeee  
 
Voici les codes  

Reply

Marsh Posté le 03-08-2013 à 11:19:00    

normal... je t'ai dit d'essayer avec $id = $_GET['id'];
en minuscule

Reply

Marsh Posté le 03-08-2013 à 11:20:24    

et tu devrais te renseigner sur les variables de sessions

Reply

Marsh Posté le 03-08-2013 à 11:54:58    

sltpaulo a écrit :

normal... je t'ai dit d'essayer avec $id = $_GET['id'];
en minuscule


Oui c'était ça l'erreur Merci
Justement, je regarde pour les sessions.
Je voudrais que si on est connecte au forum en tant qu'admin.
On peux supprimer si non on ne supprime pas !  :D  
Le soucis : Le forum et les pages ne sont pas sur le meme serveur  :sweat:

Reply

Marsh Posté le 03-08-2013 à 12:07:55    

Tu peux toujours envoyer des infos en get, mais attention à la sécurité

Reply

Marsh Posté le 03-08-2013 à 13:23:51    

Yop, de retour,
En attendant de faire par session de phpbb3.
J'ai fais ça donc si non connecté : vous n'avez pas le droit et donc ça ne s'efface pas.
, vous êtes connecter :  effacement de la ligne
 

Code :
  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3. // Destruction de la session ?
  4. if ((isset($_GET['action'])) && ($_GET['action'] == 'logout'))
  5. {
  6.  $_SESSION = array();
  7.  session_destroy();
  8.  session_start();
  9. }
  10.  
  11. $_SESSION['login'] = '';
  12. $_SESSION['password'] = '';
  13. if (isset($_POST['submit']))
  14. {
  15.  $login = (isset($_POST['login'])) ? $_POST['login'] : '';
  16.  $pass =  (isset($_POST['pass']))  ? $_POST['pass']  : '';
  17.  if (($login == "Valbuena72" ) && ($pass == "xxxx" )) // Mode connecter
  18.  {
  19.   if(isset($_GET['id']))
  20.     {
  21.     $con = mysql_connect("localhost","xxxxx","xxxx" );
  22.     if (!$con)
  23.       {
  24.       die('Could not connect: ' . mysql_error());
  25.       }
  26.     mysql_select_db("vmliveview02", $con);
  27.     $id = $_GET['id'];
  28.     $result =  mysql_query("delete FROM hotlaps where id=$id" );
  29.   $_SESSION['login'] = "Valbuena72";
  30.   $_SESSION['password'] = "xxxx";
  31.   echo '<p style="color:#FF0000; font-weight:bold;">Supprimer avec sucès</p>';
  32. }}
  33.  else // Mode non admin
  34.  {
  35.   echo '<p style="color:#FF0000; font-weight:bold;">Vous pouvez pas supprimer</p>';
  36.  }
  37. }
  38. if (!isset($_POST['submit']))
  39. {
  40.  echo '
  41.  <form id="conn" method="post" action="">
  42.   <p><label for="login">Login :</label><input type="text" id="login" name="login" /></p>
  43.   <p><label for="pass">Mot de Passe :</label><input type="password" id="pass" name="pass" /></p>
  44.   <p><input type="submit" id="submit" name="submit" value="Connexion" /></p>
  45.  </form>';
  46. }; // fin if (!isset($_POST['submit'])))
  47. ?>


Merci de ton aide super !


Message édité par Valbuena72 le 03-08-2013 à 13:24:09
Reply

Marsh Posté le 03-08-2013 à 14:58:11    

De rien

Reply

Marsh Posté le 05-08-2013 à 07:39:47    

Bonjour,
Je reviens vers toi. Car j'aimerais mettre un lien pour supprimer tout les chronos mais que sur la page que on est :
Circuit d'avignon : lien effacer = efface tout le tableau !  
 
J'ai fais ça, aucune erreur mais ça n'efface rien :

Code :
  1. if(isset($_GET['track_id']))
  2.     {
  3.     $con = mysql_connect("localhost","xxxx","xxxx );
  4.     if (!$con)
  5.       {
  6.       die('Could not connect: ' . mysql_error());
  7.       }
  8.     mysql_select_db("xxxx", $con);
  9.   $track_id = $_GET['track_id'];
  10.     // suppression du circuit
  11.     $sql = "DELETE FROM hotlaps WHERE TrackName = $track_id";


 

Code :
  1. $track_id = $row['TrackName'];
  2.   echo "<a href='suppr2.php?track_id=$track_id'>Tout Supprimer</a>";


 
Faudrait demande à Mysql : Tu peux m'effacer tout ce qui comporte le nom du circuit  :hello:
 
quand je fais ça :
   

Code :
  1. echo 'id : '.$track_id.'';


J'obtient bien le nom du circuit qui est dans l'url moi je pense que c'est ma requête qui n'est pas bonne


Message édité par Valbuena72 le 05-08-2013 à 07:52:19
Reply

Marsh Posté le 05-08-2013 à 08:34:21    

Il est où ton mysql_query ?
Si t'en fais pas, ça risque pas que tu supprimes quoi que ce soit  :whistle:  
 
Et fais un transtypage de ton numérique ou vérifie que s'en est bien un avant de le passer dans ta requête.

Reply

Marsh Posté le 05-08-2013 à 09:30:57    

Code :
  1. $track_id = $_GET['track_id'];
  2.     $result =  mysql_query("delete FROM hotlaps where track_id=$track_id" );
  3.   echo '<p style="color:#FF0000; font-weight:bold;"> '.$result.' à été Supprimer avec sucès <br/><a href="javascript:history.back()">page précédente</a></p>';
  4. }}
  5.  else // Mode non admin
  6.  {
  7.   echo '<p style="color:#FF0000; font-weight:bold;">Erreur d\'identification. Recommence, jusqu\'a trouver la bonne formule.<br/>
  8.   Rappel : Réserver aux administrateurs</p>';
  9.  }
  10. }
  11. if (!isset($_POST['submit']))
  12. {
  13.  echo '
  14.  <form id="conn" method="post" action="">
  15.   <p><label for="login">Login :</label><input type="text" id="login" name="login" /></p>
  16.   <p><label for="pass">Mot de Passe :</label><input type="password" id="pass" name="pass" /></p>
  17.   <p><input type="submit" id="submit" name="submit" value="Connexion" /></p>
  18.  </form></br><a href="javascript:history.back()">page précédente</a>';
  19. }; // fin if (!isset($_POST['submit'])))
  20. ?></div> </div>


Fonctionne toujours pas, et $track_id n'est pas un numérique


Message édité par Valbuena72 le 05-08-2013 à 09:43:39
Reply

Marsh Posté le 05-08-2013 à 09:46:10    

Si ton champ est un VARCHAR tu dois écrire ta requête comme cela :

Code :
  1. $sql = "DELETE FROM hotlaps WHERE TrackName = '$track_id'";


 
N'oublies pas les '

Reply

Marsh Posté le 05-08-2013 à 09:50:48    

Evidemment, quel boulet !!!
Merci à toi ça fonctionne !

Reply

Marsh Posté le 05-08-2013 à 09:54:53    

Pas de soucis bonne continuation

Reply

Marsh Posté le 05-08-2013 à 14:33:53    

sltpaulo a écrit :

Si tu utilises jQuery voilà ce que je te conseille :

 

Lors de la création de ton bouton/lien supprimer, ajoute un paramètre :

Code :
  1. "<th class='hotlaps td_delete' title='Delete' id_param='".$id."'>Delete</th>" .
 


Code :
  1. jQuery(".td_delete" ).die/off('click').on/live('click',function(){
  2. var idDelete = jQuery(this).attr("id_param" );
  3. });




Et data, c'est pour les chiens ? :o
http://api.jquery.com/data/


Message édité par tomsoft le 05-08-2013 à 14:34:17
Reply

Marsh Posté le 05-08-2013 à 14:37:02    

Tomsoft, le but est de faire passer une variable php vers javascript, je ne vois pas en quoi la méthode .data() peut-être utile dans ce cas de figure

Reply

Marsh Posté le 05-08-2013 à 14:58:01    

Code :
  1. <th class='hotlaps td_delete' title='Delete' data-id='".$id."'>Delete</th>


 

Code :
  1. $(".td_delete" ).on('click', function(){
  2.    var idDelete = $(this).data("id" );
  3. });

Reply

Marsh Posté le 05-08-2013 à 15:02:10    

Quelle est la différence avec mon code?
 
Question de benchmark? si oui, j'aimerai les détails, ça m'interesse

Reply

Marsh Posté le 05-08-2013 à 15:07:49    

Pas forcement une question de perf, mais data est fait pour stocker des infos, pas attr.
 
attr te permet de recupere des elements comme title, alt, checked, ...
data-xxx de stocker des infos.
 
utiliser "attr", ca marche (et encore que, pas dit qu'un jour cette "liberté" soit corrigée), mais c'est pas bien.
 

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed