webForumDet fria alternativet

login

9 svar · 1 513 visningar · startad av calle1

calle1Medlem sedan apr. 201025 inlägg
#1

Tja jag har en login script som funkar fin fint men när en användare loggar in så sickas de till /welcome.php jag vill där sicka vidare de till /test.php?id=1 altså till användarens id. Vi säger att user "Calle (id1), Eric (id2) o.s.v
då när user Calle loggar in så vill jag att han ska sickas till /test.php?id=1 som var hans id. Sen när user Eric loggar in så ska han sickas till /test.php?id=2.
Så här ser mitt /welcome.php script ut.

<?php 
error_reporting(0); 
@mysql_connect("localhost","root","") or die(mysql_error()); 
@mysql_select_db("test20") or die(mysql_error()); 

session_start(); // Alltid överst på sidan
 
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" 
  content="text/html; charset=iso-8859-1">
<title>V&auml;lkommen</title>
</head>
<body>
 
Välkommen <?php echo $_SESSION['sess_user']; ?><br>
<a href="index.php?logout=">Logga ut</a>

</script>
</body>
</html>

Jag har försökt med

 $sql = mysql_query("SELECT used FROM members WHERE id='".$_GET['id']."'"); 
echo "<a href="t.php?id=".$_GET['id']."</a>

Men får inte det att funka någon som vet vad jag gör för fel?
Väldigt tacksam för svar ;)
//Calle

AndersNMedlem sedan nov. 2000146 inlägg
#2
 $sql = mysql_query("SELECT used FROM members WHERE id='".$_GET['id']."'"); 
echo "<a href="t.php?id=".$_GET['id']."</a>

Du kan inte ha

echo "<a href="t.php?id=".$_GET['id']."</a>

Du måste tilldela en variabel ex:

 
$sql = mysql_query("SELECT used FROM members WHERE id='".$_GET['id']."'");
$rad=mysql_fetch_array($sql);

och sedan skriva ut med:

echo"<a href="t.php?id=$rad['id']">länk</a>";

Nu kanske jag har slarvat i koden (är på jobbet) men hoppas du förstår tankegången iaf.

/Anders

PeddaMedlem sedan juni 20006 032 inlägg
#3

Först, du ska inte skicka idnummret via GET ur säkerhetssynpunkt.
Om du vill skicka det med GET så se till att kontrollera uppgifterna ordentligt innan du använder variabeln.

Istället för att ändra i welcome.php är det bättre att du ändrar i filen som idag skickar användaren till welcome.php.
Ändra i den filen så användaren skickas till test.php

The_HulkMedlem sedan juni 20031 837 inlägg
#4

du verkar ha fått lite fel på dina strängavgränsare.
du får byta någon av dina " till '

Från

echo"<a href="t.php?id=$rad['id']">länk</a>";

mot

echo "<a href='t.php?id=" . $rad['id']. "'>länk</a>";

eller

echo '<a href="t.php?id=' . $rad['id']. '">länk</a>';
calle1Medlem sedan apr. 201025 inlägg
#5

Tack för all hjälp har kommit lite längre nu i det här problemet ska fortsätta försöka.
Det ser ut så här

Välkommen drr
Logga ut
$sql = mysql_query("SELECT used FROM members WHERE id='".$_GET['id']."'"); $rad=mysql_fetch_array($sql); { echo 'länk';
När man klickar på länken kommer man till http://localhost/login/t.php?id='%20.%20$rad['id'].%20'

Tack igen!
Om någon har något tips om vad som är fel så tar jag gärna imot de ;)

AndersNMedlem sedan nov. 2000146 inlägg
#6

Ja men hur ser din kod ut för länken då?
Använd gärna kodknappen när du skall posta kod, blir lättare att överskåda då.

calle1Medlem sedan apr. 201025 inlägg
#7

Varför ska jag använda kod knappen när det inte äns är en kod? Det är så där det ser ut när jag försöker öppna sidan i webläsaren. Och koden för länken ser ut så här

echo "<a href='t.php?id=" . $rad['id']. "'>länk</a>";

Tack för svaret:)

The_HulkMedlem sedan juni 20031 837 inlägg
#8

är du 100% säker på att det är den koden som genererar länken?
Om du ändrar lite i den bar aför att vara på säkra sidan.

echo "<a href='t2.php?id=" . $rad['id']. "'>länk</a>";

Försök visa lite mer kod runt omkring. Det skadar aldrig att visa oss lite mer eftersom det inte är säkert att felet ligger just där. Det kan vara ett följdfel från tidigare i koden.

AndersNMedlem sedan nov. 2000146 inlägg
#9
$sql = mysql_query("SELECT used FROM members WHERE id='".$_GET['id']."'");
echo "<a href='t2.php?id=" . $rad['id']. "'>länk</a>";

I första kodstycket hämtar du endast datan "used" från tabellen members.
Men du försöker skriva ut datan "id" som inte är hämtad.

Börja med att hämta allt från memebers och att skriva ut ev sql fel kan vara bra med för felsökning.

$sql = mysql_query("SELECT * FROM members WHERE id='".$_GET['id']."'") or die(mysql_error());
calle1Medlem sedan apr. 201025 inlägg
#10

Har löst det med <?php echo $_SESSION['sess_id']; ?><br>
Tack för alla svar!

137 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)