17. februar 2006 - 12:48
Der er
33 kommentarer og 1 løsning
sender videre til side som ligger i virabel via en header - how ?
Jeg har følgene kode $url = $row['link']; header("Location: $url"); hvorfor virker det ikke ?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
17. februar 2006 - 12:50
#1
Hvad står der i $url og hvilken fejl får du? header("Location: ".$url."");
17. februar 2006 - 12:53
#2
jamen jeg for ingen fejl, jeg for en "siden kan ikke vises".. det er fordi jeg kun har en sql forespørgsel udover den der header.. der står altså intet tekst.. hvis jeg bare skriver noget blablabla tekst så virker det fint - dog redirecter den stadig ikke. det virkede heller ikke
17. februar 2006 - 12:56
#3
Så er det vel bare den forkerte url. $url = $row['link']; echo $url; //header("Location: $url");
17. februar 2006 - 12:57
#4
prøv at udkommentere din header ( sæt // foran linien ) og så skriv echo $url; og skriv her hvad den skriver. hvis den ikke skriver noget er det dit udtræk af databasen det er galt med. Du har vel også noget kode der åbner databasen og vælger tabel osv. desuden skal du have ob_start(); øverst på siden, ellers kan du ikke bruge headers længere nede i koden
17. februar 2006 - 13:00
#5
Der fik fat i den rigtige ende michael :-)
min $row['link'] var tom.. ved dog ikke hvorfor..
linket til siden jeg kigger på er:
http://127.0.0.1/Mine%20filer/vis_link.php?id=1 og koden er:
<?php
include "mysql.php";
$id = mysql_real_escape_string($_GET['id']);
$query = mysql_query("SELECT * FROM links WHERE id = '$id'") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
$url = $row['link'];
}
$url = $row['link'];
echo $url;
?>
17. februar 2006 - 13:01
#6
Hvorfor skulle man ikke kunne det radion. Så længe man ikke udskriver noget til skærmen går det aldeles udemærket.
17. februar 2006 - 13:03
#7
ja, du kan snildt udskrive, men du kan ikke bruge header() da den skal kaldes først i dokumentet. det kan omgåes med ob_start(); så vidt jeg har forstået :)
17. februar 2006 - 13:04
#8
Så har du forstået forkert ;o)
17. februar 2006 - 13:05
#9
undskyld, jeg vrøvler :) har ikke læst hvad du skrev ordentligt åbenbart :) nej, så længe der ikke udskrives noget er det fint med headers.. beklager :)
17. februar 2006 - 13:09
#10
php_programmoer>> Går ud fra at der kun er en record med id 1. Så du behøver ikke at sætte din forespørgsel ind i en loop. <?php include "mysql.php"; $id = mysql_real_escape_string($_GET['id']); $query = mysql_query("SELECT * FROM links WHERE id = '$id'") or die(mysql_error()); $row = mysql_fetch_array($query); $url = $row['link']; $url = $row['link']; echo $url; ?> Så enten prøv at idskrive din $_GET variabel eller hårdkod et tal ind i din forespørgsel.
17. februar 2006 - 13:14
#11
jeg har lige lavet nogle udskrifter af både $id og $url ... begge indeholdte det de skulle. Jeg har også lige prøvet at slette while løkken men lige lidt hjalp det.
17. februar 2006 - 13:17
#12
Du har et mellemrum i Mine filer. Prøv at rette det med en underscore eller lign.
17. februar 2006 - 13:22
#13
det kan jeg desværre ikke. Så er der en helvedes masse filer som skal ændres :( men altså.. jeg har prøvet lidt med meta refresh.. problemet med det er jo bare at man kan kun kan bestemmet hvilken UNDERSIDE som den skal vidersende en til.. kan jeg ikke også bestemme hvilken side ? det jeg vil med scriptet er jo at redirecte til den side som $url indeholder
17. februar 2006 - 13:29
#14
Der er jo ikke noget i vejen med din header. Det er jo urlen den ikke kan finde i o m den siger siden kan ikke vises.
17. februar 2006 - 13:35
#15
forstod ikke helt den sidste sætning du skrev, men en anden ting jeg heller ikke forstår er hvordan vi dog skal løse dette problem? - synes jeg har prøvet alt.
17. februar 2006 - 13:40
#16
Det er jo ikke i headeren den fejler men i urlen. Da den siger "Siden kan ikke vises" redirecter den jo fint, men kan ikke finde siden. Ergo må det være urlen den er gal med.
17. februar 2006 - 13:50
#17
Ok, nu er jeg helt sikker på at urlen indeholder følgene:
www.lol.dk - har selv lige kigget i databasen plus at jeg har udskrevet det.
men jeg for stadig en siden kan ikke vises ?
17. februar 2006 - 13:52
#18
17. februar 2006 - 13:57
#20
Jeg har en funktion her der tilføjer http:// til urls, så kan du jo køre din $url gennem den først..
function addhttp($url){
//adds http:// prefix in incomplete url's
if (!strstr($url,'
http://' )==$url){
$url = "
http://" . $url;
}
return $url;
}
bruges så ved at:
$url=addhttp($url);
header("location:$url");
17. februar 2006 - 13:59
#21
Det virkede :-)
Perfekt!
Hvis jeg smider 15 oveni kan du så ikke lige også lave en IF sætning som tjekker om ens link er et gyldigt link ? altså om det indeholder
http://www.etellerandet.etellerandet skal bruge det i min fil tilfoej_link.php :-)
Og læg et svar mester
17. februar 2006 - 14:00
#22
hov. brug denne i stedet..
function addhttp($url){
//adds http:// prefix in incomplete url's
if (strpos($url,'
http://' )===false){
$url = "
http://" . $url;
}
return $url;
}
der er ingen grund til at bruge flere resourcer end højst nødvendigt :)
17. februar 2006 - 14:03
#23
nah, smid dem til michael_stim i stedet :) han har vist brugt mest tid i denne tråd :)
ang. det med validering af link, så prøv at checke her på eksperten, det er et spørgsmål der hyppigt er blevet besvaret :)
nå.. nu fandt jeg en til dig :) ( skal jeg jo ikke have point for..)
function linkcheck($urllen)
{
//godkender "
file://" , "
ftp://" , "
http://" , "
https://" , "
ldap://" if(ereg("^(file|ldap|http|https|ftp)+://(([a-z0-9]|\-)+\.)+([a-z]{2,6}|([a-z/]+[a-z/]{2,6}))$", $urllen))
{
echo "OK!";
} else {
echo "Ikke OK!";
}
}
tyvstjålet fra
http://www.eksperten.dk/spm/382336
17. februar 2006 - 14:12
#24
Din linkchecker virker ikke :-( og jeg kan desværre ikke selv rette det da jeg slet ikke ved noget om reg.exp Kan vi få et svar fra dig michael ? :-)
17. februar 2006 - 14:20
#25
Skulle lige spise frokost ;o) Jeg har nok point, tag du dem bare. Hovedsagen er at det virker.
17. februar 2006 - 14:24
#26
jamen det virker jo ikke :-P Tjek 14:12:08 (øverste del)
17. februar 2006 - 14:43
#27
Virker fint her.
linkcheck("
http://bla.bla" );//udskriver "OK!"
linkcheck("bla.bla");//udskriver "Ikke OK!"
17. februar 2006 - 14:53
#28
følgene virker ihvertfald ikke:
$link = mysql_real_escape_string($_POST['link']);
function linkcheck($link)
{
//godkender "
file://" , "
ftp://" , "
http://" , "
https://" , "
ldap://" if(ereg("^(file|ldap|http|https|ftp)+://(([a-z0-9]|\-)+\.)+([a-z]{2,6}|([a-z/]+[a-z/]{2,6}))$", $link))
{
echo " ";
}else{
echo "Ugyldigt link";
}
}
17. februar 2006 - 15:19
#29
$link = mysql_real_escape_string($_POST['link']);
function linkcheck('$link')
{
//godkender "
file://" , "
ftp://" , "
http://" , "
https://" , "
ldap://" if(ereg("^(file|ldap|http|https|ftp)+://(([a-z0-9]|\-)+\.)+([a-z]{2,6}|([a-z/]+[a-z/]{2,6}))$", $link))
{
echo " ";
}else{
echo "Ugyldigt link";
}
}
17. februar 2006 - 15:20
#30
Sikkert fordi du har mellemrum. Der skal også lige '' rundt om $link i din ereg()
17. februar 2006 - 15:29
#31
der fik jeg denne fejl: unexpected T_CONSTANT_ENCAPSED_STRING, expecting '&' or T_VARIABLE men kan jeg ikke bare bruge denne: if(!ereg('^https?\://[A-Za-z0-9\-]\.[A-Za-z0-9\.\-]+(/.+/?)?$',$link)) { echo "FEJL"; }
17. februar 2006 - 15:36
#32
Don't know. Kan intet om regular expressions.
17. februar 2006 - 15:39
#33
ok, nå ærgeligt du ikke ville have point - du hjalp mig ellers sammen med radion :-) Tak!
17. februar 2006 - 18:34
#34
det er jo en funktion.. så du kalder den ved at skrive linkcheck($link); og så skriver den "ugyldigt link" hvis det ikke er et link... prøv at lade være med at omskrive funktionen jeg skrev til dig... og bare brug den som den er. det har ingen betydning at der står $urllen i stedet for. du skal kalde den som jeg skrev øverst
Vi tilbyder markedets bedste kurser inden for webudvikling