webForumDet fria alternativet

Öppna länkar med php.

PHPur PHP

7 svar · 868 visningar · startad av B22

Medlem sedan mars 2004256 inlägg
Frågan#1

Hej!

Forsätter söka svar på mina frågor här istället för det börjar handla mer om php.

Jag har nu hittat pånätet ett sätt som går att lösa det problemet med mha php.
Koden jag har hittat är :

<?php 
if($_GET['sida'] == "vad") {
include "vad.php";
} elseif($_GET['sida'] == "annat") {
include "annat.php";
}
?>

Skulle ni kunna förklara för mig vad 'sida' och "annat" är i det exemplet?

Måste man kanske ge ett name attribut till sina länkar som man vill öppna i denna scrollbox, och här har de kallat det för 'sida' eller är det "annat" som är vädet till name attributet?

Medlem sedan juni 20014 421 inlägg
#2

Det är:

index.php?sida=annat

där sida är variabeln som innehåller strängen annat

Medlem sedan mars 2004256 inlägg
#3

colione skrev:

Det är:

index.php?sida=annat

där sida är variabeln som innehåller strängen annat

Jag är inte säker på att jag förstår riktigt, kan du förklara lite mer?

Jag vill som sagt öppna en länk i denna scrollbox, vad måste jag ersätta sida och annat med?

Länken som ska öppnas där har jag skrivit så här:

<a href="" onclick="document.getElementById('indexScrollbox').src='bla.html'; return false;">Nyhet</a>
Medlem sedan mars 20034 471 inlägg
#4

Jag är inte säker på att jag förstår vad du vill åstadkomma, men så här funkar GET:

Säg att du har en webbsite med adress https://www.b22.se och där har filen test.php. Vi tittar på några olika URL:er och vad de innebär:

  1. https://www.b22.se/test.php
  2. https://www.b22.se/test.php?namn=aasah&forum=wF
  3. https://www.b22.se/test.php?forum=xx

Oavsett vilken vi anger så laddas din sida. Det som skiljer är att de två sistnämnda innehåller variabler som kan hämtas med $_GET i sidan.

//I test.php
if (isSet($_GET["namn"])) echo "<p>Du heter ".$_GET["namn"]."</p>";
if (isSet($_GET["forum"])) {
   if ($_GET["forum"] == "wF") echo "<p>Välkommen!! </p>";
   else echo "<p>Fel forum! :-( </p>";
}
else echo "<p>Du har inte angett något forum</p>";

I de tre fallen skrivs nu följande ut på skärmen:

// 1)
Du har inte angett något forum

// 2)
Du heter aasah
Välkommen!!

// 3)
Fel forum! :-(
Medlem sedan mars 2004256 inlägg
#5

Jag löste det genom att i länkarna skriva så här:

 <li><a href="kurser.html?kurser">Kurser</a></li>

och php delen så här:

<div>
<?php
 
if(isset($_GET['kurser'])) {
include "kurser.html";
}
else{include "start.html";}
 
 ?>
<div>
Medlem sedan mars 2004256 inlägg
#6

Den lösning till scroll boxen orsakade ett problem för inloggings sidan, jag kan tydligen inte ha med divven som jag öppnar länkarna är.
Jag får detta felmeddelnade när jag försöker logga in:

Warning: Cannot modify header information - headers already sent by (output started at /customers/ukf.be/ukf.be/httpd.www/index.php:18) in /customers/ukf.be/ukf.be/httpd.www/adm_login.php on line 49

Koden till index-sidan är:

<?php
session_start();

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<title>UKF</title>
<link href="ukf.css" rel="stylesheet" type="text/css"></link>
</head>

<!-- en bild överst -->
<body  background="UKF.JPG" class="text">
<!-- omsluter sidan med en div -->
 <div id="divvar"> 

 <div id="bild" ><img src="kurdistan.jpg"  alt="Kurdistan"  /></div>

<!-- huvudmeny -->
<div id="h_meny" >
<ul id="huvudmeny">
<li><a href="baindex.php?sida=om">Start</a></li>
<li><a href="baindex.php?sida=bilder">Bilder</a></li>
<li><a href="baindex.php?sida=kurser">Kurser</a></li>
<li><a href="baindex.php?sida=bok">Gästbok</a></li>
<li><a href="index.php?sida=adm">Logga in</a></li>
<li><a href="baindex.php?sida=kontakt">Kontakt</a></li>
</ul>
</div>
<!-- nyhetsmenyn -->    
    <div id="nyhetsmenyn"> 
    	<div id="rub">Nyheter!</div>  
        <ul id="n_meny">
		<li><a href="baindex.php?sida=www">UKF´s nya webbplats</a></li>
		<li><a href="baindex.php?sida=festbild">Fest bilder</a></li>
		<li><a href="baindex.php?sida=val">Styrelse val</a></li>
        </ul>

<div id="datum" >
<?php
  print "<b>Datum:</b><br />".date("Y-m-d H:i");  // 2007-03-07
?>
</div>

    </div>

         
<!-- ger varje sida i menyn ett id för att kunna anropa dessa och öppna dem i scrollboxen -->
 <div id="indexScrollbox">
<?php 
switch (strtolower($_GET['sida']))
{

case "kurser":
 $page="kurser.html";
break;

case "bilder":
 $page="bilder.html";
break;

case "om":
 $page="OmUKF.html";
break;

case "bok":
 $page="gastbok.php";
break;

case "adm":
 $page="adm_login.php";
break;

case "kontakt":
 $page="kontakt.php";
break;

case "www":
 $page="www.html";
break;

case "festbild":
 $page="fest_bilder.html";
break;

case "val":
 $page="val.html";
break;

default:
 $page="OmUKF.html";
break;

}

?>
</div>

         
 <p id="IND_w3c">
    <a href="http://validator.w3.org/check?uri=referer"><img
        src="http://www.w3.org/Icons/valid-xhtml10"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  </p>

<!-- slut på den omslutande divven -->
 </div>   
</body>
</html>

Hoppas ni kan ge mig förslag på hur jag kan lösa detta :(

Medlem sedan mars 20034 471 inlägg
#7

B22 skrev:

Warning: Cannot modify header information - headers already sent by (output started at /customers/ukf.be/ukf.be/httpd.www/index.php:18) in /customers/ukf.be/ukf.be/httpd.www/adm_login.php on line 49

På rad 49 försöker du skicka en header av något slag, men den är redan ivägskickad på rad 18. Det har alltså inte att göra med hur du väljer att inkludera filer.

Antingen har du något echo/print på rad 18 eller något tecken före php's början. Tex ett mellanslag. Eventuellt finns utskriften i den fil du inkluderar.

Det vore ju bra om du markerade vilken rad som är rad 18 respektive 49. Generellt löses det genom att skicka headern innan du skriver ut.

Medlem sedan mars 2004256 inlägg
#8

Rad 18 i index sidan ( den jag postade ) är:

<div id="bild" ><img src="kurdistan.jpg"  alt="Kurdistan"  /></div>

adm_login filen ser ut så här:

<?php
session_start();

// Ok to login ???
    if( !empty($_POST["login"]) ){
    // Empty fields?
      if( empty($_POST["f1"]) || empty($_POST["f2"]) ){
        print "Tomma fält är inte tillåtna!<br/><br/><input type='button' value='Tillbaka' onClick='history.back()'/>";
        exit;
      }
        
        
	// Check if correct username and passwotrd for admin	
         // Connect to server and select databse.
         $Link= mysql_connect("*", "*", "*" )or die(mysql_error()); 
         mysql_select_db("*")or die(mysql_error()); 

        // username och password från formuläret
          $myusername=$_POST['f1'];
          $mypassword=$_POST['f2'];

        //kryptera lösenordet med md5()
        $encrypted_mypassword=md5($mypassword);

        $query ="SELECT id FROM * WHERE username='$myusername' AND password='$encrypted_mypassword'";
        $result=mysql_query($query)or die(mysql_error()); 

       if(mysql_num_rows($result)== 0){
         header("Location:adm_login.php?error_login=");
         exit;
       }

        // Mysql_num_row is counting table row
        $count=mysql_num_rows($result);

        // If result matched $myusername and $mypassword, table row must be 1 row
       if($count==1){

       
      //Efter inloggning sätter jag sessioner till använ. och lösen. för att identifiera varje inloggad anv.
          $_SESSION['sess_id'] = mysql_result($result, 0, 'id'); //radnummer i resultat arrayen 0 
          $_SESSION['sess_user'] = $_POST['f1'];

          // Kolla om inloggad = sessionen satt, dirigera tillbaka till inloggningssidan om inte 
         if (isset($_SESSION['sess_user'])){  
        
               header("Location: databas.php"); 
         } 
   
         else{ 
              
              header("Location: adm_login.php?error_login");
              
            }
         }
  }
		
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
<head>
<title>Inloggning</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="ukf.css" rel="stylesheet" type="text/css"></link>
</head>

<body class="text">
<?php
        if (isset($_GET['error_login'])) {
              echo "<b>Fel användarnamn eller lösenord, försök igen!</b>";  
              
            } 
?>
<div>
<p>Denna sida är avsedd för administratören.</p></div>
<form method="post" action="">

<div class="loginBox" id="login">
  <table summary="">
				
    <tr>
          <td class="login" style="width:80px; align: left;">Användarnamn</td>
          <td class="login" align="right"><input class="loginInput" type="text" name="f1"/></td>
    </tr>
    <tr>
          <td class="login" align="left">Lösenord</td>
          <td class="login" align="right"><input class="loginInput" type="password" name="f2" /></td>
    </tr>
    <tr>
          <td class="login" ></td>
				</tr>
    <tr>
      <td></td>
          <td class="login" align="right" ><input class="loginButton" type="submit" name="login" value="Anslut" /></td>
    </tr>
  </table>	
</div>
</form>
</body>
</html>

Där rad 49 är mellan if satsen och header:

    if (isset($_SESSION['sess_user'])){  
        
               header("Location: databas.php"); 
         }
136 ms totalt · 3 externa anrop · v20260731065814-full.b746b907
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)