Hej, förlåt rubriken men jag kom verkligen inte på någon bra rubrik. Hmm, det fungerade inte heller som jag hade tänkt att det skulle göra. Så här?Eget felmeddelande som inte fungerar.
Men iaf, mitt problem är att jag har gjort ett eget felmeddelande som visas om sidan inte finns eller man skrivit in fel id-nummer eller liknande, (OBS, det är inget 404 meddelande).
Meddelandet ligger i en rad i en mysql databas och koden för att hämta ut det ser ut såhär (jag har redan öppnas databasen):
$sql = mysql_query("SELECT id FROM elmar_text");
while ($koll = mysql_fetch_array($sql))
{
if ($_GET['id'] == $koll['id'])
{
$id = $_GET['id'];
break;
}
else
{
$id = 0;
}
}
men när jag gör så så måste man skriva index.php?id=1 för att komma till startsidan annars om man bara skriver index.php så får man felmeddelandet..
Jag tänkte du att mam kunde lägga till en else if-sats som då skulle se ut såhär
else if ($HTTP_HOST == "index.php")
{
$id = 1;
}
men det fungerar ändå inte.. Är det någon som ser vart felet ligger eller är det någon som har en lösning på mitt problem?
MVH..
//PerSv: Eget felmeddelande som inte fungerar.
$id = 0;
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$res = mysql_query("SELECT COUNT(id) FROM elmar_text WHERE id={$_GET['id']}");
if(mysql_result($res, 0) > 0)
$id = $_GET['id';
}
Sv:Eget felmeddelande som inte fungerar.
Men det kanske berodde på att jag gav en för dålig förklaring..
Så jag skall se om jag kan förklara det bättre..
Jag har gjort så att jag har lagt in all text och alla länkar i en databas, när man sedan trycker på en länk så skickas man t.ex. till sidan index.php?id=1 som är startsidan..
om man däremot själv försöker skriva in något id så skall man skickas till sidan index.php?id=0
Att lösa detta är inga problem, det har jag lyckats med..
Men själva problemet liggeer i att när man skriver endast www.domän.se/index.php så finns det inget id i adressen och då skickas man till index.php?id=0
Nu undrar jag om det finns något kommando som gör att man kan kolla själva adressen som står adressfältet (där man skriver in www....) alltså att om det endast står index.php så skall man skickas till index.php?id=1 står det något annat som inte är en "giltlig" länk så skall man skickas till felmeddelandet..
$sql = mysql_query("SELECT id FROM elmar_text");
while ($koll = mysql_fetch_array($sql))
{
if ($_GET['id'] == $koll['id'])//Denna ifsatsen kollar om id't i adressfältet är lika med något av dem som finns i databasen.
{
$id = $_GET['id'];//Om det är det så tilldelas variabeln id det nummer som finns i adressfältet
break;//Avslutar så att den inte skall behöva lopa igenom alla nummer i databasen när den har funnit rätt..
}
else//Finns det inget i databasen som stämmer över ens med det som står i adressfältet så görs detta..
{
$id = 0;//När id sätts till noll så skickas man lite senare i koden till index.php?id=0 som är där som felmeddelandet skrivs ut..
}
}
Hoppas det blev lite tydligare nu..
MVH..
//Per
Sv: Eget felmeddelande som inte fungerar.
$id = 0;
if(isset($_GET['id']) && is_numeric($_GET['id'])) {
$res = mysql_query("SELECT COUNT(id) FROM elmar_text WHERE id={$_GET['id']}");
if(mysql_result($res, 0) > 0)
$id = $_GET['id';
else
$id = 0;
}
else {
$id = 1;
}