Paar vraagjes over PHP
Ik heb een paar vraagjes over PHP,
kunnen jullie misschien me daar mee helpen ?
Vraag nummer1:
Hoe kan ik een melding maken als ik niet bent ingelogd
Je kan niet reageren je moet eerst ingelogd zijn en als je ingelogd bent dat je dan wel kan reageren ? De session wat ik er voor gebruik is :
Vraag nummer2:
ik ben bezig met een nieuws systeem en ben hem in het layout aan het bouwen ik stop hem in de while alleen dan wordt die anders want ik juist anders wil.
Zo wil ik het hebben:
waar het rode vierkant is aangegeven moet je goed kijken naar de volgende afbeelding.
Zo heb ik het nu met de while alleen dat moet niet:
Dit is het stukje waar het goed wordt weergegeven in het bestand .html
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<div class="content">
<div class="content-toporanje">Mijnstelling officeel geopend<div class="reactie-datum">11:03:43 18-12-2010</div></div>
<div class="content-midr">
<div class="reactie">
<div class="reactieitems-left">
<img src="images/avatar.png" alt="Avatar " /><br /><br />
Mike <img src="images/online.png" alt="Online" /></div>
<div class="reactiebericht">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur gravida nulla non lacus gravida ornare mattis ante dignissim. Etiam at ante vel arcu vehicula lacinia. Ut vitae ipsum risus, non adipiscing sapien. Donec sapien justo, suscipit et sagittis sed, venenatis vel tellus. Nunc eget sem orci. Duis vehicula pellentesque augue non convallis. Donec non lectus diam, et vehicula metus. Aliquam massa tellus, sollicitudin eget condimentum vitae, fringilla in metus. Sed a tortor arcu, in euismod metus. Vivamus in metus neque, a posuere metus. Suspendisse potenti. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </div>
</div></div><div class="content-bottom"></div></div>
<div class="content-toporanje">Mijnstelling officeel geopend<div class="reactie-datum">11:03:43 18-12-2010</div></div>
<div class="content-midr">
<div class="reactie">
<div class="reactieitems-left">
<img src="images/avatar.png" alt="Avatar " /><br /><br />
Mike <img src="images/online.png" alt="Online" /></div>
<div class="reactiebericht">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur gravida nulla non lacus gravida ornare mattis ante dignissim. Etiam at ante vel arcu vehicula lacinia. Ut vitae ipsum risus, non adipiscing sapien. Donec sapien justo, suscipit et sagittis sed, venenatis vel tellus. Nunc eget sem orci. Duis vehicula pellentesque augue non convallis. Donec non lectus diam, et vehicula metus. Aliquam massa tellus, sollicitudin eget condimentum vitae, fringilla in metus. Sed a tortor arcu, in euismod metus. Vivamus in metus neque, a posuere metus. Suspendisse potenti. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </div>
</div></div><div class="content-bottom"></div></div>
en dit is het php stukje in de while:
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
102
103
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
102
103
<div class="content">
<div class="content-midr">
<?php
//controleren of er een id is meegegeven en controleren of het id een cijfer is
if (isset($_GET['id'])) {
if (!empty($_GET['id'])) {
if (is_numeric($_GET['id'])) {
$ID = Secure($_GET['id']);
if (!isset($_GET['p'])) {
$page = 0;
$limit = '0, '.$aantal;
}
elseif (is_numeric($_GET['p'])) {
$page = secure($_GET['p']);
$limit = $page*$aantal;
$limit = $limit.', '.$aantal;
}
//SQL uitvoeren voor reacties
$sql = mysql_query("SELECT `name`, `message`, `when` FROM `reacties` WHERE `stel_id` = '$ID' ORDER BY id DESC LIMIT $limit");
if (@mysql_num_rows($sql) < 1 ) {
echo 'Er zijn geen berichten gevonden
<a href="reageer.php?id='.$ID.'">Reageer als eerste!</a>';
}
else {
$num_sql = "SELECT COUNT(ID) AS aantal FROM `reacties` WHERE `stel_id` = '$ID'";
while($qres = mysql_fetch_assoc($sql)) {
$name = Lees($qres['name']);
$message = Lees($qres['message']);
$when = MakeDate($qres['when']);
echo '
<div class="reactie">
<div class="reactie-top">
Reactie op: Vrouw rijdt beter auto.
<div class="reactie-datum">
'.$when.'
</div>
</div>
<div class="reactieitems-left">
<img src="images/avatar.png" alt="Avatar" />
<br /><br />
'.$name.'
<img src="images/online.png" alt="online" />
</div>
<div class="reactiebericht">
'.UBB($message).'
</div>
</div>
<div class="content-bottom"></div>
';
} //End While
echo '
<div class="reageer-scheiding"></div>
';
Page_Num($page, $num_sql, $ID);
echo '<br /><br /><br />';
} // End Else
} //End is_numeric
else {
echo 'Het ID dat is opgegeven is geen cijfer!';
}
} //End !empty
else {
echo 'Er is geen ID opgegeven!';
}
} //End isset
else {
echo 'Er is geen ID opgegeven!';
}
// End if
?>
</div>
<div class="content-bottom"></div>
<div class="content-midr">
<?php
//controleren of er een id is meegegeven en controleren of het id een cijfer is
if (isset($_GET['id'])) {
if (!empty($_GET['id'])) {
if (is_numeric($_GET['id'])) {
$ID = Secure($_GET['id']);
if (!isset($_GET['p'])) {
$page = 0;
$limit = '0, '.$aantal;
}
elseif (is_numeric($_GET['p'])) {
$page = secure($_GET['p']);
$limit = $page*$aantal;
$limit = $limit.', '.$aantal;
}
//SQL uitvoeren voor reacties
$sql = mysql_query("SELECT `name`, `message`, `when` FROM `reacties` WHERE `stel_id` = '$ID' ORDER BY id DESC LIMIT $limit");
if (@mysql_num_rows($sql) < 1 ) {
echo 'Er zijn geen berichten gevonden
<a href="reageer.php?id='.$ID.'">Reageer als eerste!</a>';
}
else {
$num_sql = "SELECT COUNT(ID) AS aantal FROM `reacties` WHERE `stel_id` = '$ID'";
while($qres = mysql_fetch_assoc($sql)) {
$name = Lees($qres['name']);
$message = Lees($qres['message']);
$when = MakeDate($qres['when']);
echo '
<div class="reactie">
<div class="reactie-top">
Reactie op: Vrouw rijdt beter auto.
<div class="reactie-datum">
'.$when.'
</div>
</div>
<div class="reactieitems-left">
<img src="images/avatar.png" alt="Avatar" />
<br /><br />
'.$name.'
<img src="images/online.png" alt="online" />
</div>
<div class="reactiebericht">
'.UBB($message).'
</div>
</div>
<div class="content-bottom"></div>
';
} //End While
echo '
<div class="reageer-scheiding"></div>
';
Page_Num($page, $num_sql, $ID);
echo '<br /><br /><br />';
} // End Else
} //End is_numeric
else {
echo 'Het ID dat is opgegeven is geen cijfer!';
}
} //End !empty
else {
echo 'Er is geen ID opgegeven!';
}
} //End isset
else {
echo 'Er is geen ID opgegeven!';
}
// End if
?>
</div>
<div class="content-bottom"></div>
Vraag nummer 3:
Ik heb een rank script wat ik zo weergeeft
<br /><br /><a href="admin">Admin Menu</a>
Alleen als mijn status op Admin staat krijg ik alleen de admin menu.
ik heb zeg maar 2 menu's rechts boven wil ik Normaal lid menu hebben en de 2e menu wil ik de admin menu hebben als mijn status op Admin staat. Alleen hoe doe ik dit ?
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if($_SESSION['login'])
echo "Je bent ingelogd!";
else
ecoh "Ga je inloggen!";
Over je layout, probeer eens wat met padding / marging (Ik heb dat stuk van je post niet goed gelezen dus dit is meer een wilde gok)
Je derde vraag snap ik niet helemaal, je wilt 2 verschillende menus, afhangend of je admin bent of niet? dan stop je het normaal-lid-menu toch in de else van de code die je al hebt?
if($_SESSION['login'])
echo "Je bent ingelogd!";
else
ecoh "Ga je inloggen!";
Over je layout, probeer eens wat met padding / marging (Ik heb dat stuk van je post niet goed gelezen dus dit is meer een wilde gok)
Je derde vraag snap ik niet helemaal, je wilt 2 verschillende menus, afhangend of je admin bent of niet? dan stop je het normaal-lid-menu toch in de else van de code die je al hebt?
Vraag1:
De session is goed alleen hoe doe ik dan als je melding krijgt ga je inloggen dat je bijvoorbeeld het script niet ziet. en als er staat je bent ingelogd krijg je het script wel te zien.
Vraag3:
Ik heb 2 menu's in mijn lay-out 1 boven en 1 onder
bij de bovenste wil ik dat het leden menu komt dus met status Normaal lid. De 2e menu wil ik het admin menu maar als je status op Normaal lid zit krijg je het admin menu niet te zien natuurlijk. Maar als mijn status op admin is Krijg ik het menu van Normaal lid niet te zien maar ik wil het menu dus scheiden.
http://nl3.php.net/manual/en/control-structures.if.php
http://nl3.php.net/manual/en/control-structures.else.php
http://nl3.php.net/manual/en/control-structures.elseif.php
En als de sessie login niet bestaat krijg je mooi een notice naar je beeldscherm. Mits error reporting aanstaat dan.
Code (php)
Gewijzigd op 10/02/2011 10:46:56 door Mebus Hackintosh
Bedankt maar ik wacht even op johan ze reactie
Ik denk dat je best even die links kunt doorlezen, want je stelt vragen waaruit ik afleid dat je niet over bepaalde basiskennis beschikt. Daarom geef ik je die linkjes.
Ik ben ze ook aan het doorlezen en ik probeer er wat mee te prutsen maar session is mijn ding niet ;)
De links gaan niet over sessies maar over controlestructuren...
Ja dat weet ik wel,
Maar moet ik het dan zo doen ?
Code (php)
Gewijzigd op 10/02/2011 11:01:57 door Pascal Koning
Pascal Koning op 10/02/2011 11:00:41:
@Ozzie
Ja dat weet ik wel, alleen het lukt me niet echt
Ja dat weet ik wel, alleen het lukt me niet echt
Precies... en daarom moet je dus die linkjes doorlezen ;-)
lees even mij gewijzigde bericht even ;)
Ja dat kan...
Zo kan het ja. Ik weet namelijk ook niet wat voor waarde je geeft aan je sessie 'login'... geef je een true/false mee.. of een 1 of een 0?
Ik controleer op id dus zo $_SESSION['login'] = $sql->ID; .
vraag 1. Als je iets niet wilt zien als je niet bent ingelogt, kan je de if gebruiken in mijn vorige post. Of begrijp ik je nu verkeerd?
vraag 3. Eerst gewoon je normale menu maken. Daaronder if($status == 'admin'){ admin-menu laten zien.
dan heb ik het dus zo ?
Code (php)
Vraag3:
Vraag 3 snap ik niet ?
edit:
ik heb nu dit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include '../header.php';
if($_SESSION['login'])
echo '<form action="reageer.php?id=<?php echo $ID; ?>" method="post">
<table>
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" /></td>
</tr>
<tr>
<td><img src="captcha.php" /></td>
<td><input type="text" name="captcha" /></td>
</tr>
</table>
<textarea class="tekstvak" type="text" id="message" name="bericht"></textarea><br />
<input class="submit" type="submit" value="Reageer" name="save">
</form>';
else
echo "Om te kunnen reageeren moet je eerst ingelogd zijn";
?>
include '../header.php';
if($_SESSION['login'])
echo '<form action="reageer.php?id=<?php echo $ID; ?>" method="post">
<table>
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" /></td>
</tr>
<tr>
<td><img src="captcha.php" /></td>
<td><input type="text" name="captcha" /></td>
</tr>
</table>
<textarea class="tekstvak" type="text" id="message" name="bericht"></textarea><br />
<input class="submit" type="submit" value="Reageer" name="save">
</form>';
else
echo "Om te kunnen reageeren moet je eerst ingelogd zijn";
?>
dit staat in een map en de session die controleert staat in header.php
alleen hij geeft alleen de melding Om te kunnen reageeren moet je eerst ingelogd zijn
maar ik ben al ingelogd?
Gewijzigd op 10/02/2011 11:32:25 door Pascal Koning
Vraag 3:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<a href="foo">Menu</a>
<a href="foo">Voor</a>
<a href="foo">Normale</a>
<a href="foo">Leden</a>
<?php
if($status == "admin"){
?>
<a href="foo">Menu</a>
<a href="foo">Voor</a>
<a href="foo">Admin</a>
<a href="foo">Leden</a>
<?php
}
?>
<a href="foo">Voor</a>
<a href="foo">Normale</a>
<a href="foo">Leden</a>
<?php
if($status == "admin"){
?>
<a href="foo">Menu</a>
<a href="foo">Voor</a>
<a href="foo">Admin</a>
<a href="foo">Leden</a>
<?php
}
?>
Dit werkt niet :S
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include '../header.php';
if($_SESSION['login'])
echo '<form action="reageer.php?id=<?php echo $ID; ?>" method="post">
<table>
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" /></td>
</tr>
<tr>
<td><img src="captcha.php" /></td>
<td><input type="text" name="captcha" /></td>
</tr>
</table>
<textarea class="tekstvak" type="text" id="message" name="bericht"></textarea><br />
<input class="submit" type="submit" value="Reageer" name="save">
</form>';
else
echo "Om te kunnen reageeren moet je eerst ingelogd zijn";
?>
include '../header.php';
if($_SESSION['login'])
echo '<form action="reageer.php?id=<?php echo $ID; ?>" method="post">
<table>
<tr>
<td>Naam:</td>
<td><input type="text" name="naam" /></td>
</tr>
<tr>
<td><img src="captcha.php" /></td>
<td><input type="text" name="captcha" /></td>
</tr>
</table>
<textarea class="tekstvak" type="text" id="message" name="bericht"></textarea><br />
<input class="submit" type="submit" value="Reageer" name="save">
</form>';
else
echo "Om te kunnen reageeren moet je eerst ingelogd zijn";
?>
ik ben ingelogd maar nog steeds krijg ik de melding met Om te kunnen reageeren moet je eerst ingelogd zijn.
Plaats session_start(); bovenaan.