Gå til innhold

[Løst]Endre detaljer feiler


Anbefalte innlegg

Hei, leker meg litt fram og tilbake med koden min, laget nettopp en funkskjon som gjør at man kan endre på kontodetaljene på brukere som er registrert i databasen. Man kommer til denne siden via en link fra en annen side. Men jeg får bare feilmeldingen access denied (en feilmelding jeg har implementer selv for å se hvor det feiler). Men skjønner ikke helt hvorfor det feiler, jeg syns ikke det har noen grunn til (men jeg har jo helt klart feil siden jeg får en feilmelding) ;)

 

her er koden:

 

<?php

$page_title = 'Edit user';

echo '<h1>Endre kontodetaljer</h1>';

if((isset($_GET['id'])) && (is_numeric($_GET['id']))){

$id = $_GET['id'];
}
elseif((isset($_POST['id'])) && (is_numeric($_POST['id']))){
	$id = $_POST['id'];
}else{
echo '<p class = "error">Access denied!</p>';

exit();
}

require_once('Connecter.php');

if(isset($_POST['submitted'])){

$errors = array();

if(empty($_POST['first_name'])){
$errors[] = 'Du skrev ikke inn noe fornavn.';
}else {

$fn = mysqli_real_escape_string($dbc, trim($_POST['first_name']));
}

if(empty($_POST['last_name'])){
$errors[] = 'Du skrev ikke noe etternavn.';
}else{

$ln = mysqli_real_escape_string($dbc, trim($_POST['last_name']));
}

if(empty($_POST['email'])){
$errors[] = 'Du skrev ikke inn noen email-addresse';	
}else{

$e = mysqli_real_escape_string($dbc, trim($_POST['email']));
}

if(empty($errors)){

$q = "SELECT user_id FROM users WHERE email = '$e' AND user_id != $id";

$r = @mysqli_query($dbc, $q);

if(mysqli_num_rows($r)== 0){

	$q = "UPDATE users SET first_name = '$fn', last_name = '$ln', email = '$e'
	WHERE user_id = $id LIMIT 1";

	$r = @mysqli_query($dbc, $q);

	if(mysqli_affected_rows($dbc) == 1){
	echo '<p>Profilen ble oppdatert</p>';
	}else{
	echo '<p>FEIL</p>';
	echo '<p class = "error">Det oppsto en feil, vi beklager det inntruffene!</p>';
echo '<p>' . mysqli_error($dbc) . '<br/>Query: ' . $q . '</p>';

}
}else{
echo '<p class = "error">Emailen-addressen eksisterer fra før!</p>';
}
}else{
echo '<p class = "error">Følgende feil oppsto:<br/>';

foreach($errors as $msg){

echo " -$msg<br/>\n";
}

echo '</p><p>Vennligst prøv igjen</p>';

}

}

$q = "SELECT first_name, last_name, email FROM users WHERE user_id = $id";

$r = @mysqli_query($dbc, $q);

if(mysqli_num_rows($r) == 1){

$row = mysqli_fetch_array($r, MYSQLI_NUM);

echo '<form action = "edit_user.php" method = "post">

<p>Fornavn: <input type = "text" name = "first_name" size = "15" maxlength = "15" value = "' . $row[0] . '"/></p>

<p>Etternavn: <input type = "text" name = "last_name" size = "15" maxlength = "30" value = "' . $row[1] . '"/></p>

<p>Fornavn: <input type = "text" name = "email" size = "20" maxlength = "40" value = "' . $row[2] . '"/></p>

<p><input type = "submit" name = "submit" value = "Submit"/></p>

<input type = "hidden" name = "submitted" value = "TRUE"/>

<input type = "hidden" name = "id" value "'. $id . '" />

</form>';

}else {

echo '<p class = "error">Du har ingen adgang til denne siden.</p>';
}

mysqli_close($dbc);
?>

 

Takk for all hjelp :)

Lenke til kommentar
Videoannonse
Annonse

Takk skal du ha :D

 

Edit: Hehe, vel, lærte en annen måte å skrive det på ivertfall, men får samme feilmeldingen :blink:

 

med var_dump($_GET); poster den en id, la oss si brukeren har id 22, da poster den 22 når man kommer inn på siden der man kan endre på ting, når man klikker submit kommer siden opp igjen med id: NULL :ermm:

 

Noen som ser hvor det kan være at den mister verdien?

 

EDIT-LØSTl:

 

Okey, fant feilen, veldig irriterende med tanke på at den ligger helt på slutten av koden.

 

Klikker man på submit blir man sendt til: edit_user.php dette blir helt feil siden id da vil bli satt til NULL siden den ikke har noen id å gå utifra, slutten må derfor se slik ut:

 

echo '<form action = "edit_user.php?id='. $id .'" method = "post">

 

Setter nå altså id'n til brukeren som har blitt satt når brukeren klikker på endre kontodetaljer i URL.

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

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