admin nieuwssysteem

Status
Niet open voor verdere reacties.

compudoc

Terugkerende gebruiker
Lid geworden
7 jul 2006
Berichten
1.018
Ik wil gebruik gaan maken van een nieuwssysteem met een admin maar in de admin zit nog een *** fout. Het gaat om session_start(); in elk bestand staat hij 1 keer maar dan negeert ie hem en als je er 1 verwijderd dan werkt er iets niet meer (alleen in login.php kan je hem verwijderen) verder word alles vanuit index.php geladen

login.php:
PHP:
<?PHP
session_start();
// sessie starten voor de admin

include("../includes/config.inc.php");
// het configuratie bestand includen
// hier kan het script enkele gegevens uit ophalen
// in dit script de username + password van de admin

ERROR_REPORTING(E_ALL);
// error reporting op E_ALL zetten
// voor gebruik kun je het het beste op E_NONE zetten
// voorkomt dat je layout raar gaat doen bij errors
if(IsSet($_SESSION['username']))
{
?>
	<Meta HTTP-Equiv=\"refresh\" Content=\"0;Url=index.php\">
<?PHP
} else
{
	if(!IsSet($_POST['submit']))
	{
?>
<Form Method='POST' Action='<?PHP echo $_SERVER['PHP_SELF']; ?>'>
	<Tr Width='500'>
		<Td Width='150'>
			Username: 
		</Td>
		<Td Width='400'>
			<Input Type='TEXT' Name='username' style='width: 350px; margin-left: 25px;margin-right: 25px;'>
		</Td>
	</Tr>

	<Tr Width='500'>
		<Td Width='150'>
			Password: 
		</Td>
		<Td Width='400'>
			<Input Type='PASSWORD' Name='password' style='width: 350px; margin-left: 25px;margin-right: 25px;'>
		</Td>
	</Tr>

	<Tr Width='500'>
		<Td ColSpan='2'>
			<Center>
			<Input Type='SUBMIT' Name='submit' Value='Login!' style='width: 100px; margin-left: 	25px;margin-right: 25px;'>
			</Center>
		</Td>
	</Tr>
<?PHP
	} else
	{
?>
	<Tr Width='500'>
		<Td Width='500'>
<?PHP
		if(!IsSet($_POST['username']) || empty($_POST['password']))
		{
?>
			Error!- Geen username!
			<BR>
			<A HREF='javascript:history.go(-1);'>Keer terug!</A>
<?PHP
		} else if(!IsSet($_POST['password']) || empty($_POST['password']))
		{
?>
			Error!- Geen username!
			<BR>
			<A HREF='javascript:history.go(-1);'>Keer terug!</A>
<?PHP
		} else if($_POST['username'] == $admin['username'] && $_POST['password'] == $admin['password'])
		{
			$_SESSION['login'] = TRUE;
			$_SESSION['username'] = $_POST['username'];
			$_SESSION['ipad'] = $_SERVER['REMOTE_ADDR'];
?>
			Je bent succesvol ingelogd!
			<Meta HTTP-Equiv=\"refresh\" Content=\"3;Url=index.php\">
<?PHP
		} else
		{
?>
			Error!- Kan niet inloggen!
			<BR>
			Verkeerde username + wachtwoord combinatie!
<?PHP
		}
?>
		</Td>
	</Tr>
<?PHP
	}
}
?>

form.php:
PHP:
<?PHP
session_start();
// sessie starten voor de admin

ERROR_REPORTING(E_ALL);
// error reporting op E_ALL zetten
// voor gebruik kun je het het beste op E_NONE zetten
// voorkomt dat je layout raar gaat doen bij errors

include("../includes/config.inc.php");
// het configuratie bestand includen
?>
<!--
de functie maken voor het klikbaar maken van smilies + ubb knoppen
-->
<script language="JavaScript">
	function smile (code){
		document.form.bericht.value = document.form.bericht.value + code;
		document.form.bericht.focus();
	}
</script>
<?PHP
// checken of gebruiker is ingelogd en/of admin is

// niet ingelogd, echo een error
if(!IsSet($_SESSION['login']) || $_SESSION['login'] != TRUE)
{
?>
	Error!- Je hebt niet de juiste rechten!
	<BR>
	<Meta HTTP-Equiv="refresh" Content="3;url=index.php">
<?PHP
} else
{
	// wel ingelogd
	// checken of er al gesubmit is
	// als er nog niet op de knop is geklikt, een formulier laten zien
	if(!IsSet($_POST['submit']))
	{
?>
	<Form Method='POST' Action='form.php' name='form'>
	<Tr Width='550'>
		<Td Width='150'>
			Door:
		</Td>
		<Td Width='450'>
			<Input Type='TEXT' Name='door' style='width: 350px; margin-left: 25px; margin-right: 25px;'>
		</Td>
	</Tr>

	<Tr Width='550'>
		<Td Width='150'>
			Titel: 
		</Td>
		<Td Width='450'>
			<Input Type='TEXT' Name='titel' style='width: 350px; margin-left: 25px;margin-right: 25px;'>
		</Td>
	</Tr>

	<Tr Width='550'>
		<Td ColSpan='2'>
			<Center>
			<Input Type='BUTTON' Name='[b][/b]' Value='[b][/b]' style='width: 99px;' onClick='javascript: smile("[b][/b]");'>
			<Input Type='BUTTON' Name='[u][/u]' Value='[u][/u]' style='width: 99px;' onClick='javascript: smile("[u][/u]");'>
			<Input Type='BUTTON' Name='[i][/i]' Value='[i][/i]' style='width: 99px;' onClick='javascript: smile("[i][/i]");'>
			<Input Type='BUTTON' Name='[email][/email]' Value='[email][/email]' style='width: 99px;' onClick='javascript: smile("[email][/email]");'>
			<Input Type='BUTTON' Name='[url][/url]' Value='[url][/url]' style='width: 99px;' onClick='javascript: smile("[url][/url]");'>
			</Center>
		</Td>
	</Tr>

	<Tr Width='550'>
		<Td ColSpan='2'>
			<Center>
			<IMG Src='../smiles/icon_arrow.gif' onClick='javascript: smile(":arrow:")'>
			<IMG Src='../smiles/icon_biggrin.gif' onClick='javascript: smile(":D");'>
			<IMG Src='../smiles/icon_confused.gif' onClick='javascript: smile(":S");'>
			<IMG Src='../smiles/icon_cool.gif' onClick='javascript: smile("8)");'>
			<IMG Src='../smiles/icon_cry.gif' onClick='javascript: smile(":*(");'>

			<IMG Src='../smiles/icon_eek.gif' onClick='javascript: smile(":shock:");'>
			<IMG Src='../smiles/icon_evil.gif' onClick='javascript: smile(":evil:");'>
			<IMG Src='../smiles/icon_exclaim.gif' onClick='javascript: smile(":!:");'>
			<IMG Src='../smiles/icon_frown.gif' onClick='javascript: smile("^:(");'>
			<IMG Src='../smiles/icon_idea.gif' onClick='javascript: smile(":idea:");'>

			<IMG Src='../smiles/icon_lol.gif' onClick='javascript: smile(":lol:");'>
			<IMG Src='../smiles/icon_mad.gif' onClick='javascript: smile(":x");'>
			<IMG Src='../smiles/icon_mrgreen.gif' onClick='javascript: smile(":mrgreen:");'>
			<IMG Src='../smiles/icon_neutral.gif' onClick='javascript: smile(":|");'>
			<IMG Src='../smiles/icon_question.gif' onClick='javascript: smile(":?:");'>

			<IMG Src='../smiles/icon_razz.gif' onClick='javascript: smile(":P");'>
			<IMG Src='../smiles/icon_redface.gif' onClick='javascript: smile(":oops:");'>
			<IMG Src='../smiles/icon_rolleyes.gif' onClick='javascript: smile(":roll:");'>
			<IMG Src='../smiles/icon_sad.gif'  onClick='javascript: smile(":(");'>
			<IMG Src='../smiles/icon_smile.gif' onClick='javascript: smile(":)");'>

			<IMG Src='../smiles/icon_surprised.gif' onClick='javascript: smile(":o");'>
			<IMG Src='../smiles/icon_twisted.gif' onClick='javascript: smile(":twisted:");'>
			<IMG Src='../smiles/icon_wink.gif' onClick='javascript: smile(":wink:");'>
			</Center>
		</Td>
	</Tr>

	<Tr Width='550'>
		<Td Width='150'>
			Bericht: 
		</Td>
		<Td Width='450'>
			<Textarea Name='bericht' style='width: 350px; height: 150px; margin-left: 25px;margin-right: 25px;'>
			</Textarea>
		</Td>
	</Tr>

	<Tr Width='550'>
		<Td ColSpan='2'>
			<Input Type='SUBMIT' Name='submit' Value='POSTEN!' style='width: 100px; margin-left: 	25px;margin-right: 25px;'>
		</Td>
	</Tr>
<?PHP
	} else
	{
		// als er wel gesubmit is alles ophalen + checken
?>
	<Tr Width='550'>
		<Td ColSpan='2'>
<?PHP
		if(!IsSet($_POST['door']) || empty($_POST['door']))
		{
			// als het veld 'door' niet geset is, of leeg is
?>
			Error!- Geen naam ingevuld!
			<BR>
			<A HREF='javascript:history.go(-1);'>Keer terug!</A>
<?PHP
		} else if(!IsSet($_POST['titel']) || empty($_POST['titel']))
		{
			// als het veld 'titel' niet geset is, of leeg is
?>
			Error!- Geen titel ingevuld!
			<BR>
			<A HREF='javascript:history.go(-1);'>Keer terug!</A>
<?PHP
		} else if(!IsSet($_POST['bericht']) || empty($_POST['bericht']))
		{
			// als het veld 'bericht' niet geset is, of leeg is
?>
			Error!- Geen bericht ingevuld!
			<BR>
			<A HREF='javascript:history.go(-1);'>Keer terug!</A>
<?PHP
		} else
		{
			// als alles goed ingevuld is de SQL Query maken
			$sQuery = "INSERT INTO nieuws (id, titel, door, text, datum, tijd) VALUES ('', '".addslashes($_POST['titel'])."', '".addslashes($_POST['door'])."', '".addslashes($_POST['bericht'])."', '".date("d-m-Y")."', '".date("H:i")."')";
			$sResult = MySQL_Query($sQuery) or report_mysql("Nieuws invoegen", __FILE__, __LINE__, $sQuery);
			// SQL Query uitvoeren, of als hij niet uitgevoerd kan worden een error
			// op het scherm zetten
?>
			Het nieuwsbericht is succesvol toegevoegd.
			<BR>
			Klik <A HREF='index.php'>hier</A> om terug te keren naar de beginpagina.
			<BR>
			Klik <A HREF='logout.php'>hier</A> om uit te loggen.
<?PHP
		}
	}
}
?>

index.php:
PHP:
<?PHP
session_start();
// sessie starten voor de admin

ERROR_REPORTING(E_ALL);
// error reporting op E_ALL zetten
// voor gebruik kun je het het beste op E_NONE zetten
// voorkomt dat je layout raar gaat doen bij errors

include("../classes/ip.php");
$ip = new ip;
$ipadres = $ip->GetIP();
// class includen voor het achterhalen van IP adres
?>
<Center>
<Table Border='1' BorderColor='#000000' CellPadding='2' CellSpacing='2' Width='500'>
<?PHP
if(!IsSet($_SESSION['username']))
{
	// als de username nog niet geset is in de sessie
	// het inlog formulier includen
	include("login.php");
} else if(IsSet($_SESSION['username']))
{
	// als hij wel geset is, checken of de user niet probeert
	// om de sessie van een admin te stelen
	if(IsSet($_SESSION['ipad']))
	{
		// als het ip adres is geset in de sessie
		if($_SESSION['ipad'] == $ipadres)
		{
			// en het ip adres van de gebruiker hetzelfde is
			// een formulier laten zien om een nieuwsbericht
			// toe te voegen in de database
			include("form.php");
?>
	<Tr Width='500'>
		<Td ColSpan='2'>
			<A HREF='logout.php'>Uitloggen</A>
		</Td>
	</Tr>
<?PHP
		} else
		{
			// als het ip adres niet hetzelfde is
			// een error laten zien
?>
	<Tr Width='500'>
		<Td ColSpan='2'>
			Hack poging!
		</Td>
	</Tr>
<?PHP
		}
exit;
	}
}
?>
</Table>

wie kan mij helpen dit probleem op te lossen
 
geeft hij een foutmelding, wat is is precies het probleem? :confused:
 
hij geeft als foutmelding:
Notice: A session had already been started - ignoring session_start() in C:\LOCATIE\admin\form.php on line 2

verwijder ik nou deze sessie dan zegt hij ERROR!- u heeft niet de juiste rechten (hij denkt dat je niet bent ingelogd)
Je kan de opdracht alleen in login.php verwijderen volgensmij maar dan blijf je de fout houden.
 
kan je hem niet weghalen bij form? Volgens mij hoef je alleen session_start te doen als je de sessie wilt aanmaken of verwijderen. Zeker weet ik het niet...

Omdat form.php geladen wordt in index.php heb je dan 2x session_start in je bestand staan, dus als je hem uit form.php haalt moet het goed zijn.
 
Laatst bewerkt:
heb ik geprobeerd maar zodra ik op posten klik krijg ik de melding dat ik niet de goede rechten heb
 
euh gooi dit er is uit
PHP:
<?PHP 
// checken of gebruiker is ingelogd en/of admin is 

// niet ingelogd, echo een error 
if(!IsSet($_SESSION['login']) || $_SESSION['login'] != TRUE) 
{ 
?> 
    Error!- Je hebt niet de juiste rechten! 
    <BR> 
    <Meta HTTP-Equiv="refresh" Content="3;url=index.php">
en zet daar dit is neer: dat werkt bij mij wel. Heb het niet getest
PHP:
<?php
if(!isset($_SESSION["login"])){
    echo "Foutje!";
?>
    <Meta HTTP-Equiv="refresh" Content="3;url=index.php">
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan