ntec Skrevet 21. november 2005 Del Skrevet 21. november 2005 (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 22. november 2005 av ntec Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå