Gå til innhold

Session brukersystem, feil i adding av bruker.


Anbefalte innlegg

Skrevet (endret)

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

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...