Hallo allemaal,

We zijn bezig met een ledensysteem, maar lopen vast...
Bij het klikken op de submit button vernieuwd de pagina gewoon, maar verstuurd niets...
Ik heb het idee dat het HTML formuliertje het PHP script niet goed aanstuurd.

Dit is het script:
<?php
include ("../include/config.php");
include ("../include/statuscheck.php");
?>
<?php
if($login){
$query = mysql_query("SELECT * FROM " . $MySQL_table['leden'] . " WHERE gebruikersnaam='" . $_POST['gebruikersnaam'] . "'") OR die(mysql_error());
$list = mysql_fetch_object($query) OR die(mysql_error());
$gebruikersid = $list->id;
$gebruikersnaam = $_POST['gebruikersnaam'];
$tijd = $_POST['tijd'];

if($_POST['gebruikersnaam'] == "$list->gebruikersnaam" && $_POST['wachtwoord'] == "$list->wachtwoord" && $_POST['tijd'] != "-----------"){
if($tijd = "onbeperkt"){
setcookie ("gebruikersnaam", "$gebruikersnaam");
setcookie ("gebruikersid", "$gebruikersid");
}
else{
$tijd = 3600*$tijd;
setcookie ("gebruikersnaam", "$gebruikersnaam",time()+$tijd);
setcookie ("gebruikersid", "$gebruikersid",time()+$tijd);
}
echo("U bent SUCCESVOL ingelogd als <strong>" . $_COOKIE['gebruikersnaam'] . "!</strong>");
echo("<meta http-equiv=refresh content=0;URL=index.php>");

}
else{
echo"Uw wachtwoord komt niet overeen met uw gebruikersnaam!<br><a href=inloggen.php>terug</a>";
}
}
else{
?>
<form name="login" method="post" action="inloggen.php">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50%">Gebruikersnaam:</td>
<td width="50%"> <input name="gebruikersnaam" type="text" id="gebruikersnaam">
</td>
</tr>
<tr>
<td height="23">Wachtwoord:</td>
<td><input name="wachtwoord" type="password" id="wachtwoord"></td>
</tr>
<tr>
<td> <div align="left">Tijd Ingelogd:</div></td>
<td><select name="tijd" id="tijd">
<option selected>-----------</option>
<option value="1">1 Dag</option>
<option value="2">2 Dagen</option>
<option value="7">1 week</option>
<option value="14">2 weken</option>
<option value="31">1 maand</option>
<option value="61">2 maanden</option>
<option value="176">Half jaar</option>
<option value="356">Jaar</option>
<option value="onbeperkt">Onbeperkt</option>
</select></td>
</tr>
<tr>
<td><div align="right">
<input type="reset" name="Reset" value="Opnieuw">
</div></td>
<td><input name="login" type="submit" id="login2" value="Inloggen!"></td>
</tr>
</table>
</form>
<?php } ?>

Kunnen jullie ons helpen?
Alvast bedankt,

Karim
Waar komt $login vandaan?

Verder kan je zo sql injections doen, want je stopt zo een post var in je query en je moet je vars buiten quotes halen, waar slaat:
<?php //kleurtjes
$_POST['gebruikersnaam'] == "$list->gebruikersnaam" && $_POST['wachtwoord'] == "$list->wachtwoord"
#en
setcookie ("gebruikersnaam", "$gebruikersnaam",time()+$tijd);
#op? Dat kan ook zo:
$_POST['gebruikersnaam'] == $list->gebruikersnaam && $_POST['wachtwoord'] == $list->wachtwoord
#en
setcookie ("gebruikersnaam", $gebruikersnaam,time()+$tijd);
?>


En ik denk dat ik wel weet waar $login vandaan komt, lees dit (@php.net) maar eens.
Ik snap nog niet helemaal wat je bedoeld...
(beginnend in PHP)
Iemand anders heeft dit script aangeleverd en wij zijn het nu alleen aan het aanpassen.
Het cookie tijd gedeelte gaan we er denk ik uit halen...

Wat betreft het formulier:
Wat zit er fout met $login?
Ik ben onbekend met superglobals...
En hoe moet ik de sql injections anders doen ?

if($login){

Moet worden:

if(isset($_POST['login'])){
Hij werkt!
Dankje!
Ja, ga nu nog maar wat aan SQL injection doen.

#1
#2
Moet je dan alles gaan beveiligen door overal zoiets te doen:


add_slashes($_POST['username'])


of


htmlspecialchars($_POST['username'])
Evert schreef op 29.04.2008 12:23
Moet je dan alles gaan beveiligen door overal zoiets te doen:

add_slashes($_POST['username'])

of

htmlspecialchars($_POST['username'])

Onder welke steen heb jij gelegen? Add_slashes is oud, en htmlspecialchars doet hier niks want ENT_QUOTES niet gezet, dus blijft ' nog altijd '. Gebruik gewoon [php]mysql_real_escape_string[/php].
Zie ook dit.
Ik vroeg het maar ff, want ik las het in een gedateerd artikeltje, dus vroeg ik me al af. Bedankt voor de tip :)
Evert schreef op 29.04.2008 23:26
Ik vroeg het maar ff, want ik las het in een gedateerd artikeltje, dus vvroeg ik me al af. Bedankt voor de tip :)

Ah, ik dacht dat je het als suggestie gaf.

Reageren