Edit script Beveiliging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 volgende »

Crazyme

Crazyme

17/05/2006 12:15:00
Quote Anchor link
Hallo allemaal,

Ik heb een editscript gemaakt/getweaked waarmee je data in de de database kan aanpassen nu wil ik hier echter een login script bij zetten zodat je alleen met wachtwoord en gebruikersnaam kan editten. Ook is het de bedoeling dat er 2 users komen de ene user kan bv. alleen id 2 en 4 aanpassen de andere kan alles aanpassen. Hoe kan ik dit het beste aanpakken hier volgt het script dat ik tog nu toe heb.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
    
    include("config.php");
    
    if(!isset($_GET['mode']))
        {

    
            $result = mysql_query("SELECT * FROM pagina_content order by id ASC");
    
    
            while($r=mysql_fetch_assoc($result))
                    {


                        echo '
<table width="400" border="0" cellspacing="4" bgcolor="#FFFC00">
  <tr>
    <td width="52" valign="top" >ID</td>
    <td width="332"><div class="edit_tekst">'
.$r['id'].'</div></td>
  </tr>
  <tr>
    <td valign="top">Page</td>
    <td><div class="edit_tekst">'
.$r['pagina'].'</div></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><a href="editcontent.php?mode=edit&id='
.$r['id'].'">Edit</a></td>
  </tr>
</table><br/>'
;
                    }
        }

        ?>






Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
    
    if( isset( $_GET['mode'] )  && $_GET['mode'] == 'edit' || isset( $_POST['mode'] ) && $_POST['mode'] == 'edit' )
        {

            if (!isset($_POST["submit"]))
                {

                    $id = $_GET["id"];
                    $sql = "SELECT * FROM pagina_content WHERE id=".$_GET['id'];
                    $result = mysql_query($sql) or die(mysql_error());  
                    $pagina_content = mysql_fetch_array($result);
                    ?>


<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $_SERVER['PHP_SELF'] ?>
" method="post">
<span class="titel">Edit content</span><br>
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="117" class="naam">Pagina:</td>
<td width="577">
<input type=hidden name="id" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $menu["id"] ?>
">
<INPUT NAME="pagina" TYPE="TEXT" id="pagina" VALUE="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $pagina_content["pagina"] ?>
" SIZE=30> </td>
</tr>
</tr>
<td width="117" class="naam">Content vak 1:</td>
<td width="577">
<textarea name="content1" cols="50" rows="8" id="content1">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $pagina_content["content1"] ?>
</textarea>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr> </tr>
<td width="117" class="naam">Content vak 2:</td>
<td width="577">
<textarea name="content2" cols="50" rows="8" id="content2">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $pagina_content["content2"] ?>
</textarea>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr>
<tr>
<td width="117" class="naam">Plaatje:</td>
<td width="577">
<INPUT NAME="plaatje" TYPE="TEXT" id="plaatje" VALUE="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $pagina_content["plaatje"] ?>
" SIZE=30>
<input type="hidden" name="mode" value="edit"> </td>
</tr>
<tr>
<td width="117" class="naam"></td>
<td><input type="submit" name="submit" value="Edit"></td>
</tr>
</table>
</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? } ?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
        if ($_POST["submit"])
            {

                $pagina = $_POST["pagina"];
                $content1 = $_POST["content1"];
                $content2  = $_POST["content2"];
                $plaatje  = $_POST["plaatje"];
                
                $sql = "UPDATE pagina_content SET pagina='".$pagina."',content1='".$content1."',content2='".$content2."',plaatje='".$plaatje."' WHERE id=".$_GET['id'];
                
                $result = mysql_query($sql) or die(mysql_error());  
                echo 'Content aangepast!.<META HTTP-EQUIV=Refresh CONTENT="2; URL=editcontent.php">';
            }
        }

        ?>


Alvast bedankt voor de hulp!
 
PHP hulp

PHP hulp

25/12/2024 15:41:13
 
Gerben G

Gerben G

17/05/2006 12:23:00
Quote Anchor link
maak een inlog script en ga werken met 2 soorten users
-die alles kunnen wijzigen
- die een paar dingen kunnen wijzigen
 
Crazyme

Crazyme

17/05/2006 12:26:00
Quote Anchor link
Donhertog:
maak een inlog script en ga werken met 2 soorten users
-die alles kunnen wijzigen
- die een paar dingen kunnen wijzigen


dat ik een inlogt scrpt moet gaan maken met verschillende users snap ik! Je geeft de conclusie van mijn vraag. Mijn vraag is ook hoe ik dit ga doen... tutorials, tips, voorbeelden...
 
Gerben G

Gerben G

17/05/2006 12:29:00
Quote Anchor link
er staan op deze site genoeg log in scripts
en anders kun je er zelf een maken

je zorgt dat je gebruikers tabel ook een veld heeft waar de rank in staad
- administrator die kan alles wijzigen
- en de gene die niet alles kan wijzigen

en dat lees je uit en pas je toe in een IF / else statement
 
Willem Jan Z

Willem Jan Z

17/05/2006 12:29:00
Quote Anchor link
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
 
Crazyme

Crazyme

17/05/2006 12:37:00
Quote Anchor link
Willem-Jan:
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P


dit is idd een goed idee! Ik ga het op deze manier maar eens proberen.. Hoe laat ik mijn edit script kijken of de rang groter of gelijk is uit de data van de tabel.... Het inlog script kan ik inderdaad wel van deze site afhalen... Heb je nog een tip?
 
Gerben G

Gerben G

17/05/2006 13:01:00
Quote Anchor link
door de rank in nummers weer tegeven kun je de groter dan gebruiken
 
Crazyme

Crazyme

17/05/2006 13:38:00
Quote Anchor link
ok maar jongens ik heb echt nog niet zoveel ervaring in php..... en welk type moet het veld hebben in de database... zodat je er nummers kan uithalen..
 
Willem Jan Z

Willem Jan Z

17/05/2006 13:40:00
Quote Anchor link
INT :S
 
Crazyme

Crazyme

17/05/2006 14:20:00
Quote Anchor link
ik heb nu het volgende script het werkt perfekt. heb er ook een registreer script voor het eenige wat er nu nog moet gebeuren is het include en het starten van de session op de pagina die beveiligt moet worden het script is als volgt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

include("config.php");

if(!isset($_POST['submit']))
    {

        echo ('<form action='.$_SERVER['PHP_SELF'].' method="post">
        Gebruikersnaam:<br><input type="text" name="gebruikersnaam" size="25"><br>
        Wachtwoord:<br><input type="password" name="wachtwoord" size="25"><br>
        <br><input type="submit" value="submit" name="submit"><br>
        </form>'
);
    }

    else
    {
        $user = $_REQUEST['gebruikersnaam'];
        $pass = $_REQUEST['wachtwoord'];
        $user = strip_tags($user);
        $pass = strip_tags($pass);
        $user = str_replace(" ","",$user);
        $pass = str_replace(" ","",$pass);
        $user = str_replace("%20","",$user);
        $pass = str_replace("%20","",$pass);
        $user = addslashes($user);
        $pass = addslashes($pass);
        $pass = md5($pass);
        $request = "SELECT * FROM users_infraspecials WHERE wachtwoord='".$pass."' AND gebruikersnaam='".$user."'";
        $results = mysql_query( $request ) or die ( mysql_error() );
        if(mysql_num_rows($results))
            {

                $getid = "SELECT * FROM users_infraspecials WHERE gebruikersnaam='".$user."' LIMIT 1";
                $getidexec = mysql_query($getid) or die (mysql_error() );
                while($r=mysql_fetch_array($getidexec))
                    {

                        $id = $r['id'];
                        $rank = $r['rank'];
                    }

                $_SESSION['id'] = $id;
                $_SESSION['rank'] = $rank;
                echo 'User Logged in.<META HTTP-EQUIV=Refresh CONTENT="2; URL=editcontent.php">';
            }

            else
            {
                echo 'Username and password do not match.
                 <META HTTP-EQUIV=Refresh CONTENT="2"; URL="'
.$_SERVER['PHP_SELF'].'">';
                exit();
            }
    }

?>



ik had nu het volgende boven mijn beveiligde pagina staan hij laad de content echter al zien voordat je bent ingelogt. en als je dan alsnog inlogt zegt hij ingelogt en vernieuwt de pagina en kan je weer opnieuw inloggen...

$_SESSION['id'] = $id;
$_SESSION['rank'] = $rank;
include("login.php");
 
Eris -

Eris -

17/05/2006 15:05:00
Quote Anchor link
Willem-Jan:
Zover was hij zelf ook al...

Hoe ik het zou doen:
Bij de tabel van je data zet je een extra veld met 'rang' oid. Ook in de tabel gebruikers zet je zo'n veld 'rang'.

Bij het editten van de pagina controleer je dan of hun rang groter of gelijk is aan de rang uit de data tabel. En uiteraard of ze ingelogd zijn.

Edit
Wauw, 2 berichten er nog tussen :) Ik wordt echt langzaam :P


Ik zou het als volgt doen (Voordeel is dat je meerdere user hebt die beplaade pagina's kan aanpassen

Tabel
id | user | email | ww | rank | pages
1 eris eris@ | ww| admin | 0
2 WJH WJ@ | ww | user | 1,2,3
3 Crazy crazy@ | ww| user | 2,3 5
enz...

En dan pages opslaan in een array en dan controleren met in_array()
 
Derk nvt

Derk nvt

17/05/2006 15:11:00
Quote Anchor link
jij zet bij iedere gebruiker welke pagina's hij mag editten, zou het niet makkelijker zijn om groepen pagina's te maken en dan een gebruiker aan een of meerdere groepen te koppelen? daar blijft je database overzichtelijk en makkelijk leesbaar van.
 
Crazyme

Crazyme

17/05/2006 15:22:00
Quote Anchor link
vinden jullie het erg als ik het niet helemaal begrijp... ook wil ik graag weten wat ik boven mijn beveiligde pagina moet zetten?? en maby wat meer uitleg..
 
Eris -

Eris -

17/05/2006 16:09:00
Quote Anchor link
Derk het is misschien makkelijker maar als ik niet wil dat jij "1,2" kan editen maar wel 4 en 5 kan je het hier wel oplossen. Want misschien wil jij 1 gebruiker rechten geven tot 1 pagina. enz... Elke systeem heeft zijn voordelen en nadelen.

Wat voor systeem je wilt toepassen is afhankelijk van de soort website...
 
Crazyme

Crazyme

17/05/2006 16:18:00
Quote Anchor link
het soort website is alsvolgt. Uit de database worden de teksten voor de website geladen. het gaat hier telkens om 2 content vlakken die ze kunnen editen de klant heeft echter maar betaald om 4 pagina's te kunnen aanpassen de rest kunnen hun dus niet aanpassen en daar moeten ze dus van uitgesloten worden. het is nu misschien juist extra werk om ze van paginas uit te sluiten maar vind het toch leuk om met php bezig te zijn en wil er zo veel mogelijk over leren.
Gewijzigd op 01/01/1970 01:00:00 door Crazyme
 
Crazyme

Crazyme

18/05/2006 10:30:00
Quote Anchor link
ik heb nu het volgende script

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include("config.php");

if (!$_SESSION['rank'] > "1"){
echo 'user';  
}

elseif (!$_SESSION['rank'] < "1"){
echo 'admin';
}
        ?>


hij laat alleen geen admin of user zien... wat doe ik fout?
 
Willem Jan Z

Willem Jan Z

18/05/2006 10:37:00
Quote Anchor link
Wat je doet:
als sessie rank niet bestaat en groter is dan 1 echo user
als sessie rank niet bestaat en kleiner is dan 1 echo admin.

Oftewel, haal die !'s weg :D
 
Crazyme

Crazyme

18/05/2006 10:40:00
Quote Anchor link
welke moet ik precies weg halen :$
 
Willem Jan Z

Willem Jan Z

18/05/2006 10:41:00
Quote Anchor link
Allebei de uitroeptekens
 
Cake Masher

Cake Masher

18/05/2006 10:45:00
Quote Anchor link
de ! zorgt er toch voor dat het tegenovergestelde gebeurt?

Zoals:

if(!$lol == $fun){
// lol is niet het zelfde als fun
}

Nu heb ik erg vaak dat het weer anders is..
Als zeg maar $lol en $fun precies het zelfde zijn en ik doe:

if($lol == $fun){
echo "lol";
}else{
echo "fun";
}

dan krijg ik fun te zien....
 
Crazyme

Crazyme

18/05/2006 10:45:00
Quote Anchor link
heb nu dit

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
include("config.php");

if ($_SESSION['rank'] == "user"){
echo 'user';  
}

elseif ($_SESSION['rank'] == "admin"){
echo 'admin';
}
    
        ?>


werkt nogsteeds niet echt... laat de echo niet zien... laat wel de layout zien die om dit script heen staat...
 

Pagina: 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.