webForumDet fria alternativet

login

PHP

9 svar · 1 513 visningar · startad av calle1

Medlem sedan apr. 201025 inlägg
Frågan#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

Medlem 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

Medlem sedan juni 20006 031 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

Medlem 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>';
Medlem 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 ;)

Medlem 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å.

Medlem 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:)

Medlem 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.

Medlem 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());
Medlem sedan apr. 201025 inlägg
#10

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

261 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)