mit php erstellte tabelleneinträge füllen, aber nicht löschen oder überschreiben

Mojo58

Grünschnabel
hallo,

ich habe hier ein script mit einer tabelle. in diese tabelle kann sich jeder, nachdem er sich eingeloggt hat, mit seinem namen eintragen. allerdings ist es auch möglich die tabelle zu manipulieren, indem man seinen oder andere namen einfach rauslöscht oder verändert. das darf nicht möglich sein. frage: wie kann ich gewährleisten, dass nur neue einträge gespeichert und veränderte abgewiesen werden? und das ganze möglichst simpel und sinnvoll. ich brauche ne schnelle lösung, auch wenn sie nicht perfekt sein sollte. ;)


hier das script:
PHP:
<?
session_start();
include ('db.php');
include ('monat.php');
if($_SESSION['xyz'] == "")
 {
  header('location:xyz_login.php');
  die;
 }

$neu_tid = $_GET['tid'];

  
  if ($_POST[submit]){
  $id = mysql_real_escape_string($_POST['id']);  
  $tour1f = mysql_real_escape_string($_POST['tour1f']);
  $tour1b = mysql_real_escape_string($_POST['tour1b']);  
  $tour2f = mysql_real_escape_string($_POST['tour2f']);  
  $tour2b = mysql_real_escape_string($_POST['tour2b']);  
  $rewef = mysql_real_escape_string($_POST['rewef']);  
  $reweb1 = mysql_real_escape_string($_POST['reweb1']);
  $reweb2 = mysql_real_escape_string($_POST['reweb2']);  
   $sql = "UPDATE xyz_fahr SET  tour1f='$tour1f', tour1b='$tour1b', tour2f='$tour2f', tour2b='$tour2b', rewef='$rewef', reweb1='$reweb1', reweb2='$reweb2' WHERE id = '$id'";
   $result = mysql_query($sql,$dz);
    echo 'Daten eingetragen<br><br>';
    echo '<a href="'."$PHP_SELF?tid=$neu_tid".'">zurück</a> zur Eingabe<br><br>';
    die;
    }
 echo '<a href="xyz_dienste.php">zurück</a> zur Auswahl<br>';
 echo '<a href="xyz_fahr_druck.php?tid='.$neu_tid.'">Drucken</a><br>';
 echo '<h1>Fahrdienst Monat:  '.$monat.'</h1>';
 echo "<table width=\"99%\">";
 echo "<tr bgcolor=\"#c4c4c4\">";
 echo '<td>Tag</td>';
 echo '<td>Datum</td>';
 echo '<td>Fahrer Tour1</td>';
 echo '<td>Beifahrer Tour1</td>';
 echo '<td>Fahrer Tour2</td>';
 echo '<td>Beifahrer Tour2</td>';
 echo '<td>Fahrer B&auml;cker/Rewe</td>';
 echo '<td>Beifahrer B&auml;cker/Rewe</td>';
 echo '<td>Beifahrer B&auml;cker/Rewe</td>';
 echo '<td>eintrag</td>';
 echo '</tr>';
 $color = 0 ;
 $query = mysql_query('SELECT * FROM xyz_fahr where monat='.$_GET["tid"].' ORDER BY datum');
 while ($data = mysql_fetch_object($query))
 {
  if ($color == 1) $color = 0; else $color = 1;
  $tag = $data -> tag;
  $id  =  $data -> id;
  $tour1f = $data -> tour1f;
  $tour1b = $data -> tour1b;
  $tour2f = $data -> tour2f;
  $tour2b = $data -> tour2b;
  $rewef = $data -> rewef;
  $reweb1 = $data -> reweb1;
  $reweb2 = $data -> reweb2;
  $datum = $data -> datum;
  $datum = date("d.m.Y",$datum);
  if ($color == 1) echo"<tr bgcolor=\"#DBE3F0\">"; else echo"<tr>";
  
  ?><form method="post" action="<? echo "$PHP_SELF?tid=$neu_tid" ?>"
  <input type="hidden" name="id" value="<?=$id?>" /><?
  echo '<td>',$tag,'</td>';
  echo '<td>',$datum,'</td>';
  echo '<td><input name="tour1f" type="text" size="15" maxlength="30" value="'.$tour1f.'"></td>';
  echo '<td><input name="tour1b" type="text" size="15" maxlength="30" value="'.$tour1b.'"></td>';
  echo '<td><input name="tour2f" type="text" size="15" maxlength="30" value="'.$tour2f.'"></td>';
  echo '<td><input name="tour2b" type="text" size="15" maxlength="30" value="'.$tour2b.'"></td>';
  echo '<td><input name="rewef" type="text" size="15" maxlength="30" value="'.$rewef.'"></td>';
  echo '<td><input name="reweb1" type="text" size="15" maxlength="30" value="'.$reweb1.'"></td>';
  echo '<td><input name="reweb2" type="text" size="15" maxlength="30" value="'.$reweb2.'"></td>';
  ?>
  <td>
   
  <input type="submit" name="submit" value="Eintragen" class="button">
  <input type="hidden" name="id" value="<?=$id?>" />
  </td>
  </form>
  <?
  echo '</tr>';
  }
  echo "</table>";
  die;
 
  
  
?>


und bitte seid nicht zu streng :p das script stammt nicht von mir!
 
Dann würd ich das Namen-Feld direkt aus der Session befüllen und auf disabled stellen, somit wird sein Name gleich eingetragen nachdem er sich eingeloggt hat.
 
danke, hat geklappt. allerdings sollte man statt disabled lieber readonly nehmen. andernfalls können die daten beim abschicken nicht gelesen werden und man erhält nur leere strings.
 
Zurück