Avatar billede slein Juniormester
11. februar 2018 - 14:25 Der er 7 kommentarer

link

når jeg henter en link fra en database så kan jeg ikke starte den op i browser
jeg kan skrive linken ud med

echo $url;

men kan ikke starte den op med

header("location: $url");

jeg kører PHP 5.6
Avatar billede michael_stim Ekspert
11. februar 2018 - 18:45 #1
Sörg for IKKE at have nogle enters, whitespaces osv för din header.

Pröv evt at sätte:
error_reporting(E_ALL); ini_set('display_errors', 'On');
i toppen af din kode.
Avatar billede slein Juniormester
13. februar 2018 - 10:56 #2
her er min kode og den kommer godt nok med den rigtige webadresse hvis jeg skriver echo $url men den kan ikke starte linken op, det har virket tidligere men det er en nyere PHP version nu.
når jeg sætter din linie ind så skriver den
"Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead "

<?
include ("config.php");
$id = $_REQUEST['id'];
$sql = mysql_query("select * from links where id=$id") or die(mysql_error());
mysql_query("UPDATE links SET hits = hits+1 WHERE id=$id") or die(mysql_error());
$links = mysql_fetch_array($sql);
extract($links);
header('location: $url');
?>
Avatar billede michael_stim Ekspert
13. februar 2018 - 11:20 #3
Skift til MySQLi. Problemet er at når du bruger header, så må der hverken väre whitespace, enter, skrives til skärmen osv. Og den advarsel med deprecated er som at skrive til skärmen.

Et workaround er selvfölgelig at smide urlen ind i et html-tag (echo "<a href="'. $url .'"...), men det er ikke at anbefale da du formodentlig bare får problem når du opdaterer PHP igen.
Avatar billede slein Juniormester
13. februar 2018 - 11:33 #4
jeg har rodet lidt med det og ændret til MySQLi men nu skriver den at header er startet  så den kan ikke starte igen
Avatar billede michael_stim Ekspert
13. februar 2018 - 11:37 #5
Hvis du har overholdt det jeg allerede har skrevet med whitespace, enter osv, så kig efter BOM:
https://www.w3.org/International/questions/qa-byte-order-mark
Avatar billede slein Juniormester
19. februar 2018 - 08:11 #6
hej nu har jeg brugt Notepad++ og fjernet  BOM, nu melder den ikke fejl men den vil ikke starte programmet med header(location: $url);, hvis jeg sætter Echo $url; så viser den godt nok www.adresse.dk
Avatar billede slein Juniormester
19. februar 2018 - 08:29 #7
min kode er her:
<?
error_reporting(E_ALL); ini_set('display_errors', 'On');
include ("config.php");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQLi: " . mysqli_connect_error();
  }

$id = $_REQUEST['id'];
$sql = mysqli_query($con,"select * from links where id=$id");
$links = mysqli_fetch_array($sql);
mysqli_query($con,"UPDATE links SET hits = hits+1 WHERE id=$id");
extract($links);
header('location: $url');
?>
kaldes fra <a target='_blank' href='link.php?id=16'>OwnersCabin</a>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester