Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 4197
God kveld / natt folkens.


Jeg holder på å setter opp en nettside.
Siden er så og si snart ferdig, men jeg holder på å lager et panel i admin der jeg skal opprette "nyheter" eller andre ting.

Har satt opp at jeg skal poste dette på framsiden via databasen, men så har jeg tenkt å ha en knapp der jeg kan trykke rediger, men så er spørsmålet, hvordan gjør jeg det?

I databasen har jeg kun kolonnene: Tittel, Innhold og forfatter.
Her vil jeg at jeg har en knapp som heter endre og får da opp en rute der jeg kan endre teksten som jeg skrev tidligere.

Noen forslag?
m0b
m0b's Avatar
DonorAdministrator
Send inn en update-spørring. Hvis tittelene er unike så kan du jo alltids bruke de, men ville helst ha innført en id pr post som et referansefelt i databasen.
Sist endret av m0b; 6. mars 2016 kl. 03:57.
Hei folkens.

Gidder ikke lage en ny tråd for et lite spørsmål.
Jeg prøver å få til sånn at 1 meny skal vises for besøkende og 1 meny skal vises for administrator som er pålogget.
Det finnes bare 1 bruker og login scriptet er på sessions.

Hvordan løser jeg dette?

Kode

if($_SESSION['login_user'] == "$username" ) {
			?>

---meny---

<?php } else { ?>

---meny---


<?php
	}
?>
Tenkte kanskje det gikk å gjøre det sånn her, men da vises menyen for alle sammen.
Sikkerhetsklarert
Det ser riktig ut.

Det som utføres mellom { og } i en if() kjøres bare dersom if er true.
Så om du ser denne menyen selv om du er logget ut, så er det kanskje utloggingen din som ikke virker? Sletter du session?

Prøv i en incignito fane i nettleseren din.

Kode

<?php
//Starter tilkobling til server

$connection = mysql_connect("*", "*", "*", "*");
//velger database
$db = mysql_select_db("*", $connection);
session_start();
//lagrer sessionen
$user_check=$_SESSION['login_user'];
//SQL query for å hente informasjon om bruker
$ses_sql=mysql_query("select username from login where username='$user_check'", $connection);
$row = mysql_fetch_assoc($ses_sql);
$login_session =$row['username'];
if(!isset($login_session)){
	mysql_close($connection); //lukker tilkobling
	header('location: index.php'); //sender deg til framsiden
}
?>
Dette er Session scriptet som da skal opprette, lagre og lukke sessionen.
Tenker kanskje om jeg må ta

Kode

mysql_close($_SESSION);
istedenfor

Kode

mysql_close($connection);
Eller hva?
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av Nikon01 Vis innlegg

Dette er Session scriptet som da skal opprette, lagre og lukke sessionen.
Tenker kanskje om jeg må ta

Kode

mysql_close($_SESSION);
istedenfor

Kode

mysql_close($connection);
Eller hva?
Vis hele sitatet...
Nei. Sessions har _ingenting_ med mysql å gjere. Les deg opp på korleis sessions reint faktisk fungerer, for du gjer det totalt feil, og du har misforstått konseptet.
Overskuddsmateriell
Den funksjonen du bruker for å koble til mysql er også deprecated.

Du bør lære deg til å bruke PDO eller MySQLi så du slipper å skrive om koden din om en stund når funksjonene ikke lengre funker.
Koden din er også sårbar for SQL-Injections (googleit).

Denne sårbarheten vil eliminere seg selv om du leser deg opp på PDO og prepared statements. Vanligvis ville jeg brukt en ORM (readbean, eloquent capsule etc), men ettersom du virker såppass fersk ville jeg prioritert det grunnleggende.

På artikkel-siden din kan du enkelt sjekke om en bruker er logget inn ved å gjøre noe àla:

Kode

<?php
if( isset( $_SESSION['username'] ){
echo '<a href="/edit_article.php?id='. $article_id .'">Endre</a>';
}
?>
Da vil lenken kun være synlig for innloggede brukere.

På edit_article.php siden har du noe àla:

Kode

<?php
session_start();
if(!isset($_SESSION['username'])){
# Redirect tilbake til artikkelen om brukeren ikke er logget inn
header('Location: /article.php?id='. $_GET['id']); 
die();
}
# 
# Brukeren er autentisert, legg til kode for å hente og endre artikkel.
#
?>
Ninjaedit:
Forøvrig, legg til en kolonne i MySQL-tabellen som heter ID, sett den som Primary Key og legg til Auto Increment.

http://php.net/manual/en/pdo.prepare.php
http://www.w3schools.com/sql/sql_autoincrement.asp
Sist endret av lsrr; 9. mars 2016 kl. 16:50.
▼ ... noen uker senere ... ▼
Sitat av Bullhill Vis innlegg
Den funksjonen du bruker for å koble til mysql er også deprecated.

Du bør lære deg til å bruke PDO eller MySQLi så du slipper å skrive om koden din om en stund når funksjonene ikke lengre funker.
Vis hele sitatet...
Anbefaler PDO da PDO kan kjøre på flere varianter av SQL servere enn MySQLi