webForumDet fria alternativet

olika else beroende på session

4 svar · 779 visningar · startad av spc

spcMedlem sedan nov. 20119 inlägg
#1

hejsan som tråden lyder så söker jag ett script som kan ha olika session.

ex
if session sess_id, if session post_block 1
else
msg 1
msg 2

istället för :
if session sess_id
else
msg 1

if session post_block 1
else
msg 2

detta script funkar inte, bara som exempel:

if(!$_SESSION['sess_id']) if(!$_SESSION['post_lock'])
{
msg1 'Du måste vara inloggad för att kunna svara';
msg2 'Denna tråd e låst';
msg3 'Skriv dininlägg';
}
else
{
echo '<table>
<tr>
<td> msg </td>
</table>';

men så ni förstår hur jag menar....

som jag skrev i ett annat inlägg:
det är inte till det jag ska använda det...
session id ska jag ha så att dom som inte är användare ska se " Du måste vara innloggad för att skriva ", är man inloggad så ska den visa ett formulär.
Och if ($posts_row['post_block'] == 1) om jag låst en tråd så ska den visa " Tråden e låst "

Och dölja session id.

Så här ser koden ut nu ( Lite för mycket kod tycker jag) :

if(!$_SESSION['sess_id'])
			{
				echo '</ol></td>
							</tr>
						</table>
						<br><div class="home-header">
							<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
						</div>
						<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
							<tr>
								<td>Du måste vara <a a class="example5" href="login.php">inloggad</a> för att kunna svara.</td>
							</tr>
						</table>
				</div>';
			}
			else
			{
				//show reply box
				echo '</ol></td>
							</tr>
						</table>
						<br>
                		<div class="home-header">
							<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
						</div>
						<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
							<tr>
								<td><form method="post" action="reply.php?id=' . $row['topic_id'] . '">
						<textarea name="reply-content" rows="13" cols="100"></textarea></textarea><br />
						<a class="example5" href="bbcode.htm">BBCode:</a> på
						<br /><br />
						<input type="submit" value="Skicka svar" />
					</form></div></td>
							</tr>
						</table>
				</div>';
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Du letar nog efter switch/case.

switch($variabel){
case "värde1":
    // kod om variabeln består av strängen "värde1"
    break;
case "värde2":
    // kod om variabeln består av strängen "värde2"
    break;
default:
    // Kod som körs om inget annat matchar
    break;
}

Du måste ha med break för att avsluta varje fall, annars fortsätter koden vidare till nästa fall. (Detta kan vara användbart i vissa situationer, men du bara medveten om det.)

Du kan självklart även ha siffror istället för strängar om det passar.

spcMedlem sedan nov. 20119 inlägg
#3

oki...

Då ska jag bara försöka få ihop det...eller om du eller någon kan hjälpa mig...

dom 2 som jag vill ha med är:

if(!$_SESSION['sess_id'])

om inloggad ska denna synas:

<form method="post" action="reply.php?id=' . $row['topic_id'] . '">
<textarea name="reply-content" rows="13" cols="100">
</textarea></textarea><br />
<a class="example5" href="bbcode.htm">BBCode:</a> på
<br /><br />
<input type="submit" value="Skicka svar" />
</form>

om inte inloggad:
Du måste vara <a a class="example5" href="login.php">inloggad</a> för att kunna svara.

if ($posts_row['post_block'] == 1)
Även om man e inloggad eller inte så ska denna synas:
Denna tråd är låst<br>Det går ej att skriva inlägg på denna tråd..

sen ska den synas i denna:

</ol></td>
</tr>
</table>
<br><div class="home-header">
<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
</div>
<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
<tr>
<td>

Här ska allt synas beroende på vilken session eller post_block

</td>
</tr></table>
</div>
J.N.Medlem sedan apr. 20031 660 inlägg
#4
switch($_SESSION['sess_id']{
case "värde1":
    echo '<form method="post" action="reply.php?id=' . $row['topic_id'] . '">
    <textarea name="reply-content" rows="13" cols="100">
    </textarea></textarea><br />
    <a class="example5" href="bbcode.htm">BBCode:</a> på
    <br /><br />
    <input type="submit" value="Skicka svar" />
    </form>';
    break;
case "värde2":
    echo 'Denna tråd är låst<br>Det går ej att skriva inlägg på denna tråd.';
    break;
default:
    echo '</ol></td>
    </tr>
    </table>
    <br><div class="home-header">
    <div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
    </div>
    <table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
    <tr>
    <td>
    Här ska allt synas beroende på vilken session eller post_block
    </td>
    </tr></table>
    </div>';
    break;
}

Så, någonting. Men, om jag tolkar din kod rätt nu, är det inte samma variabel du vill kolla? Du har både SESSION['sess_id'] och posts_row['post_block'] och sedan default? Switch måste kolla samma, annars måste du göra olika case, och då är det kanske enklare med if?

Vill du inte göra såhär?

if(!$_SESSION['sess_id']){
  echo. '<form method="post" action="reply.php?id=' . $row['topic_id'] . '">
    <textarea name="reply-content" rows="13" cols="100">
    </textarea></textarea><br />
    <a class="example5" href="bbcode.htm">BBCode:</a> på
    <br /><br />
    <input type="submit" value="Skicka svar" />
    </form> '
}
else{
    echo 'Du måste vara <a class="example5" href="login.php">inloggad</a> för att kunna svara.';
}

Sedan förstår jag inte din sista if-sats, ska den alltid synas, är det bara att lägga in det? Annars är det ju endast att tänka ut i vilket fall den ska synas, eller inte, och skapa det. :i

(OBS! Kan inte php direkt, så är helt säkert fel någonstans!)

spcMedlem sedan nov. 20119 inlägg
#5

hejsan...

hadde lagt själv posts_row lite fel i koden, så den skrev ut NULL...
Nu ser den ut så här och funkar klockrent....

if ($posts_row['post_block'] == 1) {
				echo '</ol></td>
							</tr>
						</table>
						<br><div class="home-header">
							<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
						</div>
						<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
							<tr>
								<td>Detta ämnet är stängt. Du kan inte skicka svar.</td>
							</tr>
						</table>
				</div>';
				} else {
				if (isset($_SESSION['sess_id'])) {
				echo '</ol></td>
							</tr>
						</table>
						<br>
                		<div class="home-header">
							<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
						</div>
						<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
							<tr>
								<td><form method="post" action="reply.php?id=' . $row['topic_id'] . '">
						<textarea name="reply-content" rows="13" cols="100"></textarea></textarea><br />
						<a class="example5" href="bbcode.htm">BBCode:</a> på
						<br /><br />
						<input type="submit" value="Skicka svar" />
					</form></div></td>
							</tr>
						</table>
				</div>';
				} else {
				echo '</ol></td>
							</tr>
						</table>
						<br><div class="home-header">
							<div class="heading ico-groups" style="width: 850px; height:25px">Skriv ditt meddelande och klicka på skicka</div>
						</div>
						<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
							<tr>
								<td>Du måste vara swedish power club medlem för att kunna svara.</td>
							</tr>
						</table>
				</div>';
136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)