Gå til innhold

Session brukersystem, feil i adding av bruker.


Anbefalte innlegg

Når brukerne skal redigere sin profil i brukersystemet jeg har fått mekka sammen, blir flatfila users.txt helt ødelagt...

 

Dette ligger i index.php

<?php
// Denne oppretter en session, kalt 'user'.
session_start();  //denne er nødvendig for å bruke sessions og skal komme først i fila.
if(empty($_SESSION['user']))  //dersom $SESSION['user'] er tom er ingen innlogget
{
  //brukerverifisering
  if(!empty($_POST['username']) && !empty($_POST['password']))
  {  //dersom username og password har blitt postet, prøv innlogging
      $users = file('users.txt');  //les alle brukere fra fila users.txt
      foreach($users as $temp)  //loop igjennom filens innhold
      {
          $b = explode('|', $temp);
          if($b[0] == $_POST['username'] && $b[1] == md5($_POST['password']))
          {  //hvis brukernavn og passord er rett...
              $psord = md5($_POST['password']);
              $_SESSION['user'] = $b[0];  //...sett $_SESSION['user'] til brukernavnet
              $_SESSION['po4234'] = $psord; 
              $_SESSION['brukerstatus'] = $b[2];
              $_SESSION['epost'] = $b[3];
              $_SESSION['alder'] = $b[4];
              $_SESSION['bosted'] = $b[5];
              $_SESSION['fornavn'] = $b[6];
              $_SESSION['etternavn'] = $b[7];
              Header("Location: index.php");  //hopp til login.php
          }
      }
  }
} 
else {  }
?>
<?php include "endrebruker.php" ?>

 

Dette ligger i endrebruker.php (Inkludert i index.php)

<font size="4">Endre profil</font><br><br>
<?php
function endrebruker() {
if($_SESSION["user"]) {

//Endre epost, navn osv...
if($_POST["endre"]) {
$fil = "users.txt";
$file = file($fil); 
$open = fopen($fil,w);

foreach($file as $Key => $Val)
{
$data[$Key] = explode("|", $Val);
}
$tell = $_SESSION["id"];
for($i=1; $i<$tell; $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
if($_POST["passord"] && $_POST["passord"] == $_POST["passord2"]) {
$passord = crypt($_POST["passord"]);
}
else {
$passord = $data[$_SESSION["id"]][1];
}
$epost = $_POST["epost"];
$fornavn = $_POST["fornavn"];
$etternavn = $_POST["etternavn"];
$bosted = $_POST["bosted"];
$alder = $_POST["dag"].".".$_POST["maned"].".".$_POST["ar"];
$tekst .= $_SESSION["user"]."|". $_SESSION['po4234'] ."|" . $_SESSION['brukerstatus'] . "|$epost|" . $_SESSION['alder'] . "|$bosted|$fornavn|$etternavn|";
$tell = $_SESSION["id"]+1;
for($i=$tell; $i<count($file); $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
fwrite($open, "$tekst"); 
echo "Brukerprofil oppdatert!<br><br> <a href=\"?\">Tilbake til forsiden</a>";
}

//Endre passord
elseif($_POST["endrepassord"]) {
$fil = "users.txt";
$file = file($fil); 
$open = fopen($fil,w);

foreach($file as $Key => $Val)
{
$data[$Key] = explode("|", $Val);
}
$tell = $_SESSION["id"];
for($i=1; $i<$tell; $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
if($_POST["passord"] && $_POST["passord"] == $_POST["passord2"]) {
$passord = md5($_POST["passord"]);
}
else {
$passord = $data[$_SESSION["id"]][1];
}
$epost = $_POST["epost"];
$fornavn = $_POST["fornavn"];
$bosted = $_POST["bosted"];
$alder = $_POST["dag"].".".$_POST["maned"].".".$_POST["ar"];
$tekst .= $_SESSION["user"]."|". $passord ."|" . $_SESSION['brukerstatus'] . "|" . $_SESSION['epost'] . "|" . $_SESSION['alder'] . "|" . $_SESSION['bosted'] . "|" . $_SESSION['fornavn'] . "|" . $_SESSION['etternavn'] . "|";
$tell = $_SESSION["id"]+1;
for($i=$tell; $i<count($file); $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
fwrite($open, "$tekst"); 
echo "Brukerprofil oppdatert!<br><br> <a href=\"?\">Tilbake til forsiden</a>";
}

//Endre alder
elseif($_POST["endrealder"]) {
$fil = "users.txt";
$file = file($fil); 
$open = fopen($fil,w);

foreach($file as $Key => $Val)
{
$data[$Key] = explode("|", $Val);
}
$tell = $_SESSION["id"];
for($i=1; $i<$tell; $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
if($_POST["passord"] && $_POST["passord"] == $_POST["passord2"]) {
$passord = md5($_POST["passord"]);
}
else {
$passord = $data[$_SESSION["id"]][1];
}
$epost = $_POST["epost"];
$fornavn = $_POST["fornavn"];
$bosted = $_POST["bosted"];
$alder = $_POST["dag"].".".$_POST["maned"].".".$_POST["ar"];
$tekst .= $_SESSION["user"]."|". $_SESSION['po4234'] ."|" . $_SESSION['brukerstatus'] . "|" . $_SESSION['epost'] . "|$alder|" . $_SESSION['bosted'] . "|" . $_SESSION['fornavn'] . "|" . $_SESSION['etternavn'] . "|";
$tell = $_SESSION["id"]+1;
for($i=$tell; $i<count($file); $i++) {
$tekst .= $data[$i][0]."|".$data[$i][1]."|".$data[$i][2]."|".$data[$i][3]."|".$data[$i][4]."|".$data[$i][5]."|".$data[$i][6]."|".$data[$i][7];
}
fwrite($open, "$tekst"); 
echo "Brukerprofil oppdatert!<br><br> <a href=\"?\">Tilbake til forsiden</a>";
}


//Else
else {
$file = file("users.txt");
$count = count($file);
foreach($file as $Key => $Val) 
{ 
$data[$Key] = explode("|", $Val);
}
for($K = 0; $K < $count; $K++) 
{
if($data[$K][0] == $_SESSION["user"]) {
echo "<form action='' method='post'>
Epost: <input type='text' name='epost' value='".$data[$K][3]."'><br>
Fornavn: <input type='text' name='fornavn' value='".$data[$K][6]."'><br>
Etternavn: <input type='text' name='etternavn' value='".$data[$K][7]."'><br>
Bosted: <input type='text' name='bosted' value='".$data[$K][5]."'><br>
";
echo"
<input type='submit' name='endre' value='Endre profil'></form>
<br><br>
<form action='' method='post'>
Passord: <input type='password' name='passord'><br>
Passord igjen: <input type='password' name='passord2'><br>
<input type='submit' name='endrepassord' value='Endre passord'></form>
<br><br>";

echo "<form action='' method='post'>";

echo "Alder: <select name='dag'>";
for($i=1; $i<32; $i++) {
echo "<option value='$i'>$i</option>";
}
echo"</select><select name='maned'>";
for($i=1; $i<13; $i++) {
echo "<option value='$i'>$i</option>";
}
//The_Legend sitt script
$tilbake = 100; // Anntall år tilbake.
$tall = date("Y")-5; // Finner ut hvilket år det er i år
$aar = $tall-$tilbake; // Trekker fra
echo"</select><select name='ar'>";
while($tall >= $aar) { // Ser om tallet er større enn $aar
echo"<option value=\"$tall\">$tall</option>"; // Skriver ut tallene
$tall--; // Trekker fra årstallet med 1
}
echo"</select><br>";

echo "<input type='submit' name='endrealder' value='Endre alder'></form>";

}
}
}
}
else {
echo "Du er ikke logget inn!";
}
}


?>

<?php endrebruker(); ?>

 

Dette ligger i users.txt

brukernavn|56f491c56340a6fa5c158863c6bfb39f|brukerstatus|[email protected]|1.1.2000|Bosted|Fornavn|Etternavn|
brukernavn2|56f491c56340a6fa5c158863c6bfb39f|brukerstatus|[email protected]|1.1.2000|Bosted|Fornavn|Etternavn|
brukernavn3|56f491c56340a6fa5c158863c6bfb39f|brukerstatus|[email protected]|1.1.2000|Bosted|Fornavn|Etternavn|

 

Hvis jeg skal endre brukernavn2 med funksjonen endrebruker(), blir som sagt users.txt-fila snudd på hodet.

Kan noen av dere som kan mye om PHP se hva som er feil?

Endret av ntec
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...