Volledige versie bekijken : script online veranderen en opslaan
jorg
%Europe/Berlin %707 %2006, 16:58
Goedenmiddag allen,
Ik heb een script wat bestaat uit :
<?php
$leerling001="leerling001";$nr001="001";
$leerling002="leerling002";$nr002="002";
$leerling003="leerling003";$nr003="003";
$leerling004="leerling004";$nr004="004";
?>
Nu wil ik dit script online dmv een inlog code kunnen aanpassen. Na inloggen moet bovenstaant script geladen worden in een textarea en aangepast en opgeslagen kunnen worden.
Wie kan me helpen..
Op internet weinig/niks te vinden
w00
%Europe/Berlin %730 %2006, 17:31
Zijn zat codes te vinden, vooral inlog codes. Maar als je een simpel voorbeeld wilt, dan kan je zoiets als hieronder gebruiken.
<?php
if(isset($_POST['btnLogMeIn']))
{
$user = $_POST['txtUser'];
$pass = $_POST['txtPass'];
$select = "SELECT user, pass FROM table WHERE user='$user' AND pass='$pass'";
$query = mysql_query($select) or die(mysql_error());
$obj = mysql_fetch_assoc ( $query );
if($obj['user'] == "" || $obj['pass'] == "")
{
$_SESSION['login'] = "nee";
header("Location: index.php");
}
//Alles is goed gegaan dus sessie aan maken.
$_SESSION['login'] = "ja";
}
?>
Dan kijk je dus op elke pagina of de sessie "$_SESSION['login']" gevuld is met "ja", en dan laat je de rest van de pagina zien, anders stuur je ze terug naar de login pagina. Zoiets dus:
eenpagina.php
<?php
//Deze code bovenaan je pagina zetten
if($_SESSION['login'] != "ja") {
header("Location: login.php");
}
//de rest van de code hieronder
?>
Deze code heb ik niet getest ofzo dus kan best een typ fout in zitten. En hij is alles behalve veilig! Wil je alleen het principe hiermee laten zien.
Ik ga er bijvoorbeeld vanuit dat je een wachtwoord hebt opgeslagen in je database die niet ge-hashed is met md5 bijvoorbeeld.
En de sessie is inprincipe onveilig omdat ik alleen maar kijk of 'login' op 'ja' staat.
En me tijd is op moet gaan, dus zoek de rest zelf maar uit, is zat over te vinden :)
mech7
%Europe/Berlin %825 %2006, 19:49
http://nl2.php.net/fopen/
http://nl2.php.net/fwrite/
Maareh database is hier beter voor geschikt, en zou je voor zoiets geen array gebruiken ipv een groeiend aantal variabelen :s
brossiekoppie
%Europe/Berlin %896 %2006, 21:30
Het vragen om kant-en-klare scripts, of volledige tutorials ("hoe is dit gemaakt?") is niet toegestaan - FlashFocus is er om je te helpen bij specifieke problemen, maar niet voor complete scripts, uitleg of requests.
Na je vorige topic vind ik het nogal laag om op deze manier tot een oplossing te komen. Je kan ook eens zelf beginnen denken: heb ik hier wel verstand van? kan ik niet beter eerst een goed boek lezen over dit onderwerp zodat ik ook weet waar ik mee bezig ben?
Veel succes alleszins.
josko
%Europe/Berlin %898 %2006, 21:33
Wie kan me helpen..
Op internet weinig/niks te vinden
Zoals een vriend van mij altijd zei:'google knows'.
En laat ik heel duidelijk zijn, als ik zeg dat er genoeg te vinden is.
Laten wij hier een beginnen: www.w3schools.com
daar kan je php leren. zodra je dat kan, stel je de vraag die je nu stelt niet meer.
( ligt het aan mij, of hebben we een bombardement aan mensen die het wel willen gebruiken,
maar niet willen leren? )
(@theDutch: bij voorbaat excuses voor autoritair gedrag. dat ga ik wss in me sign zettn :p )
jorg
%Europe/Berlin %957 %2006, 22:58
Na je vorige topic vind ik het nogal laag om op deze manier tot een oplossing te komen. Je kan ook eens zelf beginnen denken: heb ik hier wel verstand van? kan ik niet beter eerst een goed boek lezen over dit onderwerp zodat ik ook weet waar ik mee bezig ben?
Veel succes alleszins.
Een boek lezen heb ik al gedaan hoor en ik snap ok echt wel iets van php alleen het probleem hier is dt mijn klant absoluut geen database wil. Het gaat hier over een lagere school die alle leerlingen (200) een eigen pagina wil laten beheren met daaraan voor elke leerling een eigen inlognaam en ww. Die pagina's moet ik dus handmatig aanmaken maar mogen pas zichtbaar worden op het moment dat er een x aantal leerlingen mee werken. Dus als er 35 leerlingen een site hebben en een 36ste meld zich aan dan moet nr 36 zichtbaar worden. Omdat het zonder database moet wil ik dus alleen een stukje code hebben waarmee ik in een textarea de php code zichtbaar kan maken en die kan bewerken. Het is een beetje flauw om te zeggen lees maar een boek. We zijn hier om elkaar te helpen en dat is wat ik doe maar als je dan een keer iets plaats moet er niet meteen zo geregageerd worden. Als het voor jullie allemaal zo makkelijk is (zoals jullie zeggen) Maak het maar werkend voor me en ik zal je er ook nog voor belonen. Voor de admin als deze topic nu naar werk aangeboden moet worden verplaatst zou u zo vriendelijk willen zijn dit te doen.
Vorr diegene die me al wel een stukje geholpen hebben bedankt. Voor diegene die alleen maar commentaar hebben ....jammer.
Ps het gaat dus niet om een inlog pagina te maken maar hoe kan ik een php script in een textarea zichtbaar krijgen, deze aanpassen en opslaan online.
Groet jorg
w00
%Europe/Berlin %965 %2006, 23:09
Zou tegen je opdracht geven zeggen dat hij maar aan een database moet komen, of desnoods zelf installeren, want zo ga je uiteindelijk nog problemen tegen komen.
En even tegen de rest, we hebben hier een member genaamd "bkersten", die stelt nog meer vragen, en steeds het zelfde soort vragen en die wordt ook gewoon constant geholpen. Dus vind ik het ook wel beetje oneerlijk dat jorg hier wordt afgekraakt.
josko
%Europe/Berlin %020 %2006, 00:30
bkersten hebben we het ook al een stuk of wat keren gezegd.
Maargoed, laten we eens kijken :)
ah. gevonden.
aangezien je geen database mag / kunt gebruiken, kan je proberen het via een .txt te doen.
Hiermee bedoel ik het volgende:
1 'j. de boer' 1
2 'r. de boer' 0
3 'b. de boer' 1
vervolgens kan je het door bijv preg_replace te gebruiken, controleren:
bijv, je wilt controleren of gebruiker nummer 2 bestaat, en zijn naam en activatie status ophalen:
<?php
$stream =
"1 'j. de boer' 1
2 'r. de boer' 0
3 'b. de boer' 1";
//if( preg_match_all('/'."[\d]{1,3} '(.*?)' ([0-1])".'/', $stream, $match))//dit was de hele lijst geweest
//{
//print_r( $match );//zo kan je alles neergooien
echo 'zoeken naar leerling nummer 2.<br />';
if( preg_match('/'."2 '(.*?)' ([0-1])".'/', $stream, $match))
{
echo 'naam : '.$match[1].'<br />';
echo 'active: '.$match[2].'<br />';
}
//{
//}
//else
//{
// echo '***';
//}
?>
bij de voorbeeld code moet ik twee dingen bijsluiten.
1. www.regular-expression.info -- ben ik nog steeds mee bezig te voltooien
2. $match[0] komen je resultaten in te staan.
en eigenlijk ook een derde:
dit is een stukje voorbeeld code :)
zelf ook even getest!
jorg
%Europe/Berlin %901 %2006, 21:38
de oplossing:
<?php
session_start();
$loggedIn = $_SESSION["loggedIn"];
// acties:
if (isset($_POST["name"]) && isset($_POST["password"]) &&
$_POST["name"] == "admin" && $_POST["password"] == "cs")
{
$loggedIn = true;
$_SESSION["loggedIn"] = true;
}
$saved = false;
if ($loggedIn && $_POST["save"])
{
$file = fopen("leerlingen.php", "w");
fwrite($file, $_POST["contents"]);
fclose($file);
$saved = true;
}
if (!$loggedIn)
{
// formulier weergeven met inloggegevens
?>
<form method="post" action="wijzig.php">
Naam: <input type="text" name="name" value=""><br>
Wachtwoord: <input type="password" name="password" value=""><br>
<input type="submit" value="Inloggen">
</form>
<?php
}
else if (!$saved)
{
// ophalen van originele leerlingen.php
$file = fopen("leerlingen.php", "r");
$contents = fread($file, filesize("leerlingen.php"));
?>
<form method="post" action="wijzig.php">
<input type="hidden" name="save" value="1">
<textarea name="contents" rows="25" cols="80"><?php echo htmlentities($contents); ?></textarea><br>
<input type="submit" value="Opslaan">
<?php
fclose($file);
}
else
{
// melding weergeven dat de gegevens opgeslagen zijn
?>
<b>Uw wijzigen zijn opgeslagen</b><br><br>
<a href="wijzig.php">Klik hier om terug te keren</a>
<?php
}
?>
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.