Andere PHP versie?
Ik heb een profielen systeem op m'n site en die deed het helemaal goed. Tot ik vandaag keek op m'n site en opeens gaf hij allemaal fouten aan, o.a. op de aanmeld pagina: http://www.shakiramebarak.nl/?page=fans/aanmelden
Nou heb ik m'n host al een mail gestuurt met de vraag of ze misschien een nieuwe php versie geinstalleerd hebben. Want het is wel raar dat hij opeens die fouten geeft.
Hoop dat jullie een antwoord weten.
Bedankt,
Menno
Geef eens een klein stukje code dan zal ik een voorbeeld geven.
Code (php)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
include_once("config.php");
$select = "SELECT * FROM members WHERE gebruikersnaam='" .
$_POST[gebruikersnaam] . "'";
$query = mysql_query($select);
$bestaatgebruikersnaam = mysql_num_rows($query);
if($_POST[aanmelden])
{
if(!$_POST[naam])
{
echo "<li>Geen voornaam ingevuld.";
}
if(!$_POST[gebruikersnaam])
{
echo "<li>Geen Gebruikersnaam ingevuld.";
}
if(!$_POST[wachtwoord])
{
echo "<li>Geen Wachtwoord ingevuld.";
}
if(!$_POST[email])
{
echo "<li>Geen E-mail adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",
$_POST[email])) {
echo "<li>Geen geldig Email Adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9-]", $_POST[gebruikersnaam])) {
echo "<li>De Gebruikersnaam die je wilt gebruikt karakters die niet zijn
toegestaan.";
}
elseif($bestaatgebruikersnaam == 1)
{
echo "<B>Er is een Fout Opgetreden.</b><BR><li>De Gebruikersnaam die jij wilt is
al in gebruik.";
}
else {
function Activatie($lengte=10) {
$tekens = array(a, b, c, d, e, f, g, h, i, j, l, k, j, h, g, f, d, s, s, a,
m, n, n, m, w, r, t, y, u, p);
$random = '';
for($i = 1; $i <= $lengte; $i++)
$random .= $tekens[rand(0,10)];
return strtoupper($random);
}
$activatiecode = Activatie();
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: ".$jouwebsite." <".jouwemail.">\n";
mysql_query("INSERT INTO members (id, ondertitel, geslacht, avatar, gebruikersnaam, naam, wachtwoord, status, email, ip, activatie, datum) Values ('', 'Nieuw Lid', '".$_POST['geslacht']."', 'noavatar.jpg', '".$_POST['gebruikersnaam']."', '".$_POST['naam']."', '".$_POST['wachtwoord']."', 'Lid', '" . $_POST['email'] . "', '" . $_POST['ip'] . "', '".$activatiecode."', '".$_POST['datum']."')") or die(mysql_error());
mail("".$_POST['email']."", "Activatie Account Shakira Mebarak", "
Beste ".$_POST['naam'].", <br>
Je hebt je zojuist aangemeld op ".$jouwebsite.". <br>
Om te kunnen inloggen op je profiel moet je je profiel activeren door <a href=http://www.shakiramebarak.nl/?page=fans/activeren&activatie=".$activatiecode."&user=".$_POST['gebruikersnaam'].">hier</a> te klikken.<br>
<br>
Je logingegevens zijn: <br>
---------------------------------------------------------------------- <br>
Gebruikersnaam: ".$_POST['gebruikersnaam']." <br>
Wachtwoord: ".$_POST['wachtwoord']." <br>
Rank: Lid <br>
---------------------------------------------------------------------- <br>
<br>
Vriendelijke Groeten,<br>
Menno Bliek.<br>
<a href=http://www.shakiramebarak.nl>Shakira Mebarak</a> / <a href=http://www.shakiramebarak.nl/forum>Shakira Mebarak Forum</a><br>
",$headers);
echo "Je bent succesvol aangemeld er word een email naar je gestuurd om je
profiel te activeren.<BR>
<BR> Klik <a href=?page=main>hier</a> om naar de indexpagina te gaan.";
}
}
else {
$date = date("d-m-Y H:i:s");
$ipadres = $_SERVER['REMOTE_ADDR'];
echo "<table><form method=POST action=?page=fans/aanmelden>
<td>Gebruikersnaam: <TD><input type=text name=gebruikersnaam
value='".$_POST['gebruikersnaam']."' maxlength=12> *<tr>
<td>voornaam:<TD><input type=text name=naam value='".$_POST['naam']."'><input
type=hidden name=datum value='".$date."'> *<tr>
<td>Wachtwoord: <TD><input type=password name=wachtwoord
value='".$_POST['wachtwoord']."'><input type=hidden name=ip
value='".$ipadres."'> *<tr>
<td>Email:<TD><input type=text name=email value='".$_POST['email']."'> *<tr>
<td>Geslacht<TD><select name=geslacht><option value=Man>Man</option><option
value=Vrouw>Vrouw</option><option value=Stel>Stel</option></select><tr>
<td><td><input type=submit name=aanmelden value=Aanmelden></form>
</table>";
echo '<br>';
echo '* verplicht.';
}
ob_end_flush();
?>
include_once("config.php");
$select = "SELECT * FROM members WHERE gebruikersnaam='" .
$_POST[gebruikersnaam] . "'";
$query = mysql_query($select);
$bestaatgebruikersnaam = mysql_num_rows($query);
if($_POST[aanmelden])
{
if(!$_POST[naam])
{
echo "<li>Geen voornaam ingevuld.";
}
if(!$_POST[gebruikersnaam])
{
echo "<li>Geen Gebruikersnaam ingevuld.";
}
if(!$_POST[wachtwoord])
{
echo "<li>Geen Wachtwoord ingevuld.";
}
if(!$_POST[email])
{
echo "<li>Geen E-mail adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9_-]+([\.]{1}[A-Za-z0-9_-]+)*@[A-Za-z0-9-]+([\.]{1}[A-Za-z0-9-]+)+",
$_POST[email])) {
echo "<li>Geen geldig Email Adres ingevuld.";
}
elseif(!eregi("[A-Za-z0-9-]", $_POST[gebruikersnaam])) {
echo "<li>De Gebruikersnaam die je wilt gebruikt karakters die niet zijn
toegestaan.";
}
elseif($bestaatgebruikersnaam == 1)
{
echo "<B>Er is een Fout Opgetreden.</b><BR><li>De Gebruikersnaam die jij wilt is
al in gebruik.";
}
else {
function Activatie($lengte=10) {
$tekens = array(a, b, c, d, e, f, g, h, i, j, l, k, j, h, g, f, d, s, s, a,
m, n, n, m, w, r, t, y, u, p);
$random = '';
for($i = 1; $i <= $lengte; $i++)
$random .= $tekens[rand(0,10)];
return strtoupper($random);
}
$activatiecode = Activatie();
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
$headers .= "From: ".$jouwebsite." <".jouwemail.">\n";
mysql_query("INSERT INTO members (id, ondertitel, geslacht, avatar, gebruikersnaam, naam, wachtwoord, status, email, ip, activatie, datum) Values ('', 'Nieuw Lid', '".$_POST['geslacht']."', 'noavatar.jpg', '".$_POST['gebruikersnaam']."', '".$_POST['naam']."', '".$_POST['wachtwoord']."', 'Lid', '" . $_POST['email'] . "', '" . $_POST['ip'] . "', '".$activatiecode."', '".$_POST['datum']."')") or die(mysql_error());
mail("".$_POST['email']."", "Activatie Account Shakira Mebarak", "
Beste ".$_POST['naam'].", <br>
Je hebt je zojuist aangemeld op ".$jouwebsite.". <br>
Om te kunnen inloggen op je profiel moet je je profiel activeren door <a href=http://www.shakiramebarak.nl/?page=fans/activeren&activatie=".$activatiecode."&user=".$_POST['gebruikersnaam'].">hier</a> te klikken.<br>
<br>
Je logingegevens zijn: <br>
---------------------------------------------------------------------- <br>
Gebruikersnaam: ".$_POST['gebruikersnaam']." <br>
Wachtwoord: ".$_POST['wachtwoord']." <br>
Rank: Lid <br>
---------------------------------------------------------------------- <br>
<br>
Vriendelijke Groeten,<br>
Menno Bliek.<br>
<a href=http://www.shakiramebarak.nl>Shakira Mebarak</a> / <a href=http://www.shakiramebarak.nl/forum>Shakira Mebarak Forum</a><br>
",$headers);
echo "Je bent succesvol aangemeld er word een email naar je gestuurd om je
profiel te activeren.<BR>
<BR> Klik <a href=?page=main>hier</a> om naar de indexpagina te gaan.";
}
}
else {
$date = date("d-m-Y H:i:s");
$ipadres = $_SERVER['REMOTE_ADDR'];
echo "<table><form method=POST action=?page=fans/aanmelden>
<td>Gebruikersnaam: <TD><input type=text name=gebruikersnaam
value='".$_POST['gebruikersnaam']."' maxlength=12> *<tr>
<td>voornaam:<TD><input type=text name=naam value='".$_POST['naam']."'><input
type=hidden name=datum value='".$date."'> *<tr>
<td>Wachtwoord: <TD><input type=password name=wachtwoord
value='".$_POST['wachtwoord']."'><input type=hidden name=ip
value='".$ipadres."'> *<tr>
<td>Email:<TD><input type=text name=email value='".$_POST['email']."'> *<tr>
<td>Geslacht<TD><select name=geslacht><option value=Man>Man</option><option
value=Vrouw>Vrouw</option><option value=Stel>Stel</option></select><tr>
<td><td><input type=submit name=aanmelden value=Aanmelden></form>
</table>";
echo '<br>';
echo '* verplicht.';
}
ob_end_flush();
?>
niet schrijft als $array['key'] als de key een string is.
{
if(!$_POST[naam])
Kan je vervangen door:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['naam']))
Arjan:
if($_POST[aanmelden])
{
if(!$_POST[naam])
Kan je vervangen door:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['naam']))
{
if(!$_POST[naam])
Kan je vervangen door:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['naam']))
Thanks, de eerste fouten zijn weg, mar nu heb ik deze fouten nog:
Notice: Undefined index: gebruikersnaam in /usr/home/web/snl121067/fans/aanmelden.php on line 50
Notice: Undefined index: gebruikersnaam in /usr/home/web/snl121067/fans/aanmelden.php on line 130
Notice: Undefined index: naam in /usr/home/web/snl121067/fans/aanmelden.php on line 131
Notice: Undefined index: wachtwoord in /usr/home/web/snl121067/fans/aanmelden.php on line 134
Notice: Undefined index: email in /usr/home/web/snl121067/fans/aanmelden.php on line 136
op line 50 staat:
$_POST['gebruikersnaam'] . "'";
op 130:
value='".$_POST['gebruikersnaam']."' maxlength=12> *<tr>
op 131:
<td>voornaam:<TD><input type=text name=naam value='".$_POST['naam']."'><input
op 134
value='".$_POST['wachtwoord']."'><input type=hidden name=ip
en 136:
<td>Email:<TD><input type=text name=email value='".$_POST['email']."'> *<tr>
bedankt alvast
if(isset($_POST['waarde']))
{
echo 'waarde is ingevuld';
}
Gewijzigd op 01/01/1970 01:00:00 door Arjan Kapteijn
Maar...
Als ik nu een gebruikersnaam invul die al bestaat registreed hij hem gewoon....
Dus er kunnen meerdere mensen met de zelfde gebruikersnamen zijn.
dit staat er in de code:
elseif(!eregi("[A-Za-z0-9-]", $_POST['gebruikersnaam'])) {
echo "- De Gebruikersnaam die je wilt gebruikt karakters die niet zijn
toegestaan.";
}
elseif($bestaatgebruikersnaam == 1)
{
echo "<B>Er is een Fout Opgetreden.</b><BR><li>De Gebruikersnaam die jij wilt is
al in gebruik.";
waar komt die $bestaatgebruikersnaam vandaan? Juist... uit je query. Een query die je helemaal niet controlleerd maargoed. En waarom haal je je hele database leeg als je alleen wilt weten hoevaak een bepaalde gebruikersnaam voorkomt?
Notice: Undefined index: gebruikersnaam in /usr/home/web/snl121067/fans/aanmelden.php on line 49
Dit staat in op 49:
$select = "SELECT * FROM members WHERE gebruikersnaam='".($_POST['gebruikersnaam'])."'";
En wou even zeggen, ik heb dit script gedownload en ben een beginner....
Had ik eindelijk het script werkend gaan ze een update doen :S
"ze" hebben register_globals uitgezet.
Klaasjan:
Voor het nodige naslagwerk:
"ze" hebben register_globals uitgezet.
"ze" hebben register_globals uitgezet.
Ze? daarmee bedoel je het hostings bedrijf?
waarom zouden ze dat doen?
Code (php)
1
2
3
2
3
<?php
$select = "SELECT * FROM members WHERE gebruikersnaam='".($_POST['gebruikersnaam'])."'";
?>
$select = "SELECT * FROM members WHERE gebruikersnaam='".($_POST['gebruikersnaam'])."'";
?>
Je hoort te checken of $_POST['gebruikersnaam'] wel bestaat. Dus:
if (isset ($_POST['gebruikersnaam']))
Er zijn nog meer problemen, maar die ga ik eerst zelf wel proberen op te lossen.
Bedankt iedereen.
Als ik er niet uit kom dan horen jullie het wel :P
Notice: Trying to get property of non-object in /usr/home/web/snl121067/fans/Admin.php on line 345
Dit staat op 345:
if($list->status == "Moderator"){
Gewijzigd op 01/01/1970 01:00:00 door menno
Quote:
Vanwege de beveiliging. Het is ronduit gevaarlijk om Superglobals aan te hebben staan en eigenlijk schandalig dat ze deze nú pas uitzetten.waarom zouden ze dat doen?
Frank:
Quote:
Vanwege de beveiliging. Het is ronduit gevaarlijk om Superglobals aan te hebben staan en eigenlijk schandalig dat ze deze nú pas uitzetten.waarom zouden ze dat doen?
Oke, bedankt.
Ik heb een reactie van hun gehad dat was dit:
Probeert u dit eens:
enablen van register_globals:
Maak een .htaccess file met de volgende inhoud:
php_flag register_globals on
Nu zijn dus de meeste fouten weg, behalve die ene die ik net hier boven heb gepost
Vind zoviezo dat php zichzelf niet moet bemoeien met dingen zoals veilige input en output , dat is tevens aan de programmeur! ( dat hebben ze nu dus gelukkig ook weg gedaan :D)
@menno weet niet of je er goed aan doet het weer aan te zetten..
Offtopic: Met Shakira zou ik weleens een beschuitje willen eten :D
Wat mij betreft 1 van de mooiste vrouwen op tv ( en daarbuiten)
Gewijzigd op 01/01/1970 01:00:00 door Donster
Quote:
Doe dat dus vooral niet!Ik heb een reactie van hun gehad dat was dit:
Probeert u dit eens:
enablen van register_globals:
Maak een .htaccess file met de volgende inhoud:
php_flag register_globals on
Probeert u dit eens:
enablen van register_globals:
Maak een .htaccess file met de volgende inhoud:
php_flag register_globals on
Ga de problemen OPLOSSEN en niet met een lapmiddel weer allerlei beveiligingsproblemen herintroduceren.
Heb hem nu verwijderd en krijg deze 2 fouten nu:
Notice: Trying to get property of non-object in /usr/home/web/snl121067/fans/Admin.php on line 345
Notice: Undefined variable: REMOTE_ADDR in /usr/home/web/snl121067/fans/Admin.php on line 569
op 345 staat dus:
if($list->status == "Moderator"){
en op 569:
$a = "$REMOTE_ADDR";
$_SERVER['REMOTE_ADDR'];