webForumDet fria alternativet

Hjälp med if-sats

PHP

12 svar · 253 visningar · startad av bionic

Medlem sedan sep. 200347 inlägg
Frågan#1

Nån som vet vad som är fel med denna kod?

<?php 
session_start(); // Always on top of page

// Check if they are logged in, otherwise back to login.php
if (!isset($_SESSION['session_user'])){ 
	header("Location: index.php?msg=login"); 
  	exit; 
}
if(isset($view)) {
	show();
	}
	else {
	list();
}
?>

Får detta felmeddelande:

Parse error: parse error, unexpected ';', expecting '=' in c:\usr\web\apache\htdocs\login\users.php on line 13

Rad 13 är "list();"

Medlem sedan jan. 20013 406 inlägg
#2

Pröva att ta bort ;

Medlem sedan sep. 200347 inlägg
#3

Då får jag:
Parse error: parse error, unexpected '}', expecting '=' in c:\usr\web\apache\htdocs\login\users.php on line 14

Medlem sedan mars 20025 907 inlägg
#4

Antar att list() är en funktion som du gjort själv? Byt namn på den!
Det finns redan en inbyggd funktion med det namnet!
list()

Medlem sedan sep. 200347 inlägg
#5

Ok, nu har jag fått if-satsen att fungera, men har ett nytt problem.

<?php 
session_start();

if (!isset($_SESSION['session_user'])){ 
	header("Location: index.php?msg=login"); 
  	exit; 
}
?>
<html>
<head>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<span class="text"> 
<? include('include/meny.php') ?><br>
<hr noshade size="1" align="left">
<?
if(isset($view)) {
	showit();
	}
	else {
	lista();
}
function lista() {
$user = $_SESSION['session_user'];
$länk = mysql_connect ("localhost","xx","xx");
$sql="SELECT * FROM users ORDER BY fname DESC";
$result = mysql_db_query("users","$sql");
?>
<b>Användare:</b><br><br>
<? while($rad=mysql_fetch_array($result)) { ?>
<a href="users.php?view=yes&id=<?=$rad['id']?>"><?=$rad["uname"]?></a><br>
<?}
}
function showit() {
$user = $_SESSION['session_user'];
$länk = mysql_connect ("localhost","xx","xx");
$sql="SELECT * FROM users WHERE id = '$id'";
$result = mysql_db_query("users","$sql");
while($rad=mysql_fetch_array($result)) { 
?>
Info för <?=$rad["uname"]?><br><br>
Förnamn: <?=$rad["fname"]?><br>
Efternamn: <?=$rad["lname"]?><br>
<?} 
mysql_close ($länk);
}
?> 
</span>
</body>
</html>

När jag vill titta på en användare så blir det bara vitt, dvs. nåt fel med showit(). Ni får gärna hjälpa till att förbättra koden, då jag är en nybörjare inom php :)

Medlem sedan apr. 2001762 inlägg
#6

åäö är väl inte så bra att ha i variabel namn?

Sedan gör en funktion för när du gör kopplingen till databasen och anropar den funktionen varje gång istället för att skriva hela kopplingen i varje funktion.

Medlem sedan okt. 2001538 inlägg
#7

Har du register_globals = off eller on?
Är de off så kommer $view att forsätta att vara tom, medan
$_GET['view']
kommer att innehålla yes, som du satte i länken.

MVH Patrik

Medlem sedan sep. 200347 inlägg
#8

åäö har funkat tidigare...så det är inte det som är problemet :/
register globals är on..

Medlem sedan apr. 2001762 inlägg
#9

i funktionen showit() behöver du inte sätta:

function showit {

global $id;

...
...
..
Medlem sedan sep. 200347 inlägg
#10

menar du att jag inte måste ha ()?
Tar jag bort dom får jag ett felmeddelande på den raden.

global $id; har jag inte någonstans i koden.

Medlem sedan juni 2000278 inlägg
#11

function showit() {
global $id; <----- detta ska du lägga till

$user = $_SESSION['session_user'];
$länk = mysql_connect ("localhost","xx","xx");

Medlem sedan sep. 200347 inlägg
#12

tackar! svårare än så var det inte :)

Medlem sedan apr. 2001762 inlägg
#13

Var global $id jag menade.. att jag glömde () var bara slarv :)

259 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)