Hallo,
Ik zit met een probleempje, ik heb dus een adminpanel gescript, maar krijg het inlogform niet te zien..
-Ik weet dat het niet de beste scripting is, dat maakt mij niet uit, begin daarover aub niet-
PHP Code:
<?php
/**
* @author Milan
* @page admin.php
* @copyright 2009
*/
include ("config.php");
$page = $_GET['actie'];
if (!isset($_SESSION['beheer']))
{
//Kijken of de post verstuurt is.
if(isset($_POST['submit']))
{
//Alle inputs beveiligen.
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);
//Foute errors tegen gaan.
$error = "";
//Is er een gebruikersnaam ingevuld?
if (empty($user))
{
//Dan zeggen we hem toch wat hij fout deed.
$error .= "Je hebt geen gebruikersnaam ingevuld.<br>";
}
//Is er een wachtwoord ingevuld?
if (empty($pass))
{
//Dan zeggen we hem toch wat hij fout deed.
$error .= "Je hebt geen wachtwoord ingevuld.<br>";
}
//Als er een error is, dan geven we deze maar weer.
if($error != "")
{
//Hem is duidelijk maken wat hij fout deed.?
echo $error;
die();
}
else
{
//We kijken of hij wel alles juist heeft ingevuld.
$sql = "SELECT * FROM `beheerders` WHERE `naam`='".$user."' AND `wachtwoord`='".md5($pass)."'";
$res = mysql_query($sql);
//Kijken of hij alles juist heeft ingevuld.
if(mysql_num_rows($res) == 0)
{
echo "Je gebruikersnaam of wachtwoord zijn niet juist.";
}
else
{
//Alle gegevens waren correct, nu hem nog inloggen.
$query = "SELECT * FROM beheerders WHERE naam = '".$user."' AND wachtwoord = '".md5($pass)."' LIMIT 1";
$sql = mysql_query($query) or die ( mysql_error( ) );
while($record = mysql_fetch_object($sql)){
$userid = $record->id;
}
$_SESSION['beheer'] = $userid;
?>
<form action="" method="post" enctype="multipart/form-data" />
Gebruikersnaam:<br />
<input name="user" type="text" /><br /><br />
Wachtwoord:<br />
<input name="pass" type="password" /><br /><br />
<input type="submit" name="submit" value="Inloggen" /></td>
</form>
<?php
}
if (empty($page))
{
echo 'Welkom in het Adminpaneel ';
echo $_SESSION['beheer'];
echo "<br />Wat wilt u doen?";
?>
<a href="?actie=instellingen">Een instelling wijzigen</a><br />
<a href="?actie=beheerdertoe">Beheerder toevoegen</a><br />
<a href="?actie=beheerderver">Beheerder verwijderen</a><br />
<a href="?actie=paginamaken">Een nieuwe pagina maken</a><br />
<a href="?actie=paginabeheren">Een pagina aanpassen of verwijderen</a><br />
<a href="?actie=nieuwstoevoegen">Nieuws toevoegen</a><br />
<a href="?actie=nieuwsbeheren">Nieuws beheren</a><br />
<a href="?actie=uitloggen">Uitloggen</a><br />
<?php
}
elseif ($page == 'instellingen')
{
$ins = mysql_query("SELECT * FROM instellingen") or die(mysql_error());
$instelling = mysql_fetch_assoc($ins);
?>
<form name="form1" id="form1" method="post" action="?actie=instellingen">
<INPUT type="text" name="copyright" value="<?php echo $instelling['copyright']; ?>">*Het copyright kunt maken door <noscript>©</noscript> te typen
<INPUT type="text" name="webtitel" value="<?php echo $instelling['websitetitel']; ?>">
<br />
<input type="submit" name="Submit" value="Verzenden" />
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
mysql_query("UPDATE instellingen SET copyright = ".$_POST['copyright']."") or die(mysql_error());
mysql_query("UPDATE instellingen SET websitetitel = ".$_POST['webtitel']."") or die(mysql_error());
echo "De instellingen zijn succesvol aangepast!<br />";
?><a href="admin.php">Ga terug na het admin paneel</a><?php
}
}
elseif ($page == 'beheerdertoe')
{
echo 'Voeg een beheerder toe:<br />';
?>
<form name="form1" id="form1" method="post" action="?actie=beheerdertoe">
Naam:<br />
<INPUT type="text" name="naam">
Wachtwoord:<br />
<INPUT type="text" name="wachtwoord">
<br />
<input type="submit" name="Submit" value="Verzenden" />
</form>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
mysql_query("INSERT INTO beheerders (naam, wachtwoord) VALUES ('" . $_POST['naam'] . "','" . md5($_POST['wachtwoord']) . "')") or die(mysql_error());
echo "De beheerder ";
echo $_POST['naam'];
echo " is succesvol toegevoegd. <b>Let op! Onthoud het wachtwoord goed, het wachtwoord kan niet meer achterhaald worden!</b><br />";
?><a href="admin.php">Ga terug na het admin paneel</a> of <a href="?actie=beheerdertoe"> voeg nog een beheerder toe.</a><?php
}
}
elseif ($page == 'beheerderver')
{
$id = $_GET['id'];
$query = mysql_query("SELECT id, naam, wachtwoord FROM beheerders") or die(mysql_error());
if (empty($id))
{
while($fetchstring = mysql_fetch_assoc($query))
{
?>
<a href="?actie=beheerderver&id=<?php echo $fetchstring['id']; ?>"><?php echo $fetchstring['naam']; ?> <img src="http://famfamfam.com/lab/icons/mini/icons/action_stop.gif" /></a>
<?php
}
}
elseif (ctype_digit($id))
$query1 = mysql_query("SELECT naam FROM beheerders WHERE id = ".$id."") or die(mysql_error());
$fetch1 = mysql_fetch_assoc($query1);
mysql_query("DELETE naam, wachtwoord FROM beheerders WHERE id = ".$id."") or die(mysql_error());
echo "Beheerder ";
echo $fetch1['naam'];
echo " is succesvol verwijderd!<br />";
?><a href="admin.php">Ga terug na het admin paneel</a> of <a href="?actie=beheerderver">verwijder nog een beheerder.</a><?php
}
}
}
}
?>
Alvast bedankt ;)
- [PHP]Geen inlogform te zien
-
05-09-2009, 13:00 #1
- Berichten
- 548
- Lid sinds
- 16 Jaar
[PHP]Geen inlogform te zien
-
In de schijnwerper
AllesOverComputers.nl - Zeer geschikt voor een complete content websiteDomein te koopGezocht linkpartners en blogs DA20+ TF20+ | Ruil en Koop | Diverse branchesSEO/LinkbuildingWij ontwikkelen (SaaS-) platformen binnen 12 weken!Freelance / WerkTe koop protogoto.nl - service marktplaats - t.e.a.b.Website te koop -
05-09-2009, 13:14 #2
- Berichten
- 935
- Lid sinds
- 17 Jaar
je hebt session_start() bovenaan nodig voor $_session[beheer]
-
05-09-2009, 13:16 #3
- Berichten
- 548
- Lid sinds
- 16 Jaar
Staat in de config, maar dat session heeft er niks mee te maken, ik hoor altijd wat te zien, maar nu zie ik alleen een witte pagina
-
05-09-2009, 13:18 #4
- Berichten
- 935
- Lid sinds
- 17 Jaar
ah ik zie het al ...
je if else structuur klopt niet
de formulier html code zit binnen de if($error =! "") else structuur
die moet je nog afsluiten vlak boven het formulier
-
05-09-2009, 13:29 #5
- Berichten
- 548
- Lid sinds
- 16 Jaar
Heel erg bedankt voor uw oplettendheid.
Maar alsnog een wit scherm helaas.
-
05-09-2009, 13:41 #6
- Berichten
- 613
- Lid sinds
- 19 Jaar
Heb je error_reporting aan staan?
-
05-09-2009, 13:44 #7
- Berichten
- 548
- Lid sinds
- 16 Jaar
-Noob vraag- Hoe zet je die aan?
-
05-09-2009, 13:46 #8
- Berichten
- 613
- Lid sinds
- 19 Jaar
ini_set("display_errors", 1);
error_reporting(E_ALL);
-
05-09-2009, 13:47 #9
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Zoals hier wordt gesuggereerd is het verstandig om even bovenaan error_reporting(E_ALL); te draaien.
PHP Code:<?php
error_reporting(E_ALL);
?>
Met error reporting aan zorg je voor een beter script en is debuggen vaak makkelijker.
-
05-09-2009, 13:48 #10
- Berichten
- 548
- Lid sinds
- 16 Jaar
Dankje, heb een error gevonden Notice: Undefined index: actie in /home/menatwar/domains/menatwar.one2xs.com/public_html/regenboog/admin.php on line 11
-
05-09-2009, 13:48 #11
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Die ini_set is overbodig, waarom gebruik je die eigenlijk?
Aanvullend bericht:
Op regel 11 controleer je vast iets met de naam 'actie' die daar helemaal niet bestaat.Laatst aangepast door Arek van Schaijk : 05-09-2009 om 13:49 Reden: Automatisch samengevoegd.
-
05-09-2009, 13:51 #12
- Berichten
- 613
- Lid sinds
- 19 Jaar
Is (meestal) ook overbodig, maar bij sommige servers moet hij wel aan.. waarom geen flauw idee, maar anders kwam er geen error. Zelf gebruik ik hem trouwens niet.
Je moet deze waarde even controleren of hij wel bestaat. Hierin zit je error.
$page = $_GET['actie'];
-
05-09-2009, 13:54 #13
- Berichten
- 548
- Lid sinds
- 16 Jaar
@Arek, wat is hier dan fout aan?
$page = $_GET['actie'];
-
05-09-2009, 13:54 #14
- Berichten
- 1.483
- Lid sinds
- 16 Jaar
Ja klopt, sommige wazige hosting bedrijven net zoals bij One.com hebben een controlepaneel functionaliteit waar je PHP errors in/uit kan schakelen. Persoonlijk vind ik dat (buiten dat het irritant is) ook gewoon zinloos, had dan als groot hosting bedrijf een betere functionaliteit voor de site bedacht ;-)
Maar goed, dit komt haast niet voor tenzij je het zelf in .ini uitschakelt.
Aanvullend bericht:
Stel nou dat er op dat moment helemaal geen parameter ?actie= is? Dan bestaat hij toch niet en is de foutmelding terecht want PHP zegt namelijk '$_GET['actie'] bestaat helemaal niet, hoe moet ik deze dan in een variabel plaatsen?'.
Dit is de juiste manier:
PHP Code:// Variabel $page aanmaken met een standaard waarde (anders bestaat die ergens anders niet waar je deze nodig hebt)
$page = '';
// Nu controleren we of $_GET['actie'] bestaat, indien deze bestaat plaatsen we de inhoud daarvan in de variabel $page
if(isset($_GET['actie']))
{
$page = $_GET['actie'];
}
Laatst aangepast door Arek van Schaijk : 05-09-2009 om 13:58 Reden: Automatisch samengevoegd.
-
05-09-2009, 13:59 #15
- Berichten
- 548
- Lid sinds
- 16 Jaar
Ik heb het altijd zo gedaan en nog nooit last van gehad?
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic