webForumDet fria alternativet

Fungerar hos en ISP, inte hos en annan. (Fsdata/Cliche)

PHP

9 svar · 2 164 visningar · startad av F_I_C

Medlem sedan jan. 200293 inlägg
Frågan#1

Har använt mig av samma script till många olika sidor men de har alla varit hostade av Fsdata.
Nu har jag en sida hos cliche men scriptet vill inte alls fungera där och det har något att göra med hur jag länkar.

När man väljer att tex. editera en nyhet har jag gjort en lista med en länk till varje nyhet i stil med edit.php?id=34. Därefter öppnas ju respektive nyhet beroende på vilket id.

    $read = "SELECT \* FROM nyheter WHERE id=$id";

Men när jag gör det hos cliche får inte $id något värde, varpå ingen nyhet öppnas. (såklart).

Gjorde ett enkelt test.
<body>
<?=$testar?>
</body>
Laddade upp den på båda isperna och gick in på test.php?testar=blabla

Samma där, visar texten som jag skriver in efter = hos fsdata men inte hos cliche. Vad göra?

Medlem sedan aug. 20068 090 inlägg
#2

Kolla versionen på php.

Medlem sedan juni 20006 031 inlägg
#3

Är shorttags on eller off på servern?

Öppnar du php kod med <? så ändrar du överallt till <?php och använder $_POST och $_GET på rätt sätt.

Medlem sedan jan. 200293 inlägg
#4

Version: PHP Version 5.2.17
short_open_tag On On

Hur man använder GET och POST korrekt vet jag tyvärr inte men använder GET i mitt lilla test och fick då det att fungera.
Hur gör jag lättast för att hämta info från en "shorttag".?
Tidigare har jag bara kört <?=$variabel?> men som jag förstår de så ligger felet där i nu?

Medlem sedan mars 2006296 inlägg
#5

Låter som om ditt förra webbhotell hade register_globals = on. Det är inte en bra grej.
http://php.net/manual/en/security.globals.php

Medlem sedan sep. 201046 inlägg
#6

Lär dig en regel att aldrig använda short_tags oavsett om det är aktiverat eller enklare att använda. Det är inte att rekommendera då short_tags kan skapa stora onödiga problem (i speciellt stora projekt med flera användningsområden) i framtiden exempelvis om du byter host/server/isp/etc.

Att använda GET 'korrekt' är enkelt: (sen för övrigt finns det lite 'finare' metoder såsom PDO istället för mysql(i) för databas och bättre sätt att skicka felmeddelanden till användaren.)

$id = $_GET['id'];
// Kolla om användaren skrev in en giltig siffra, lita aldrig på användaren!
if (!is_int($id)) {
    echo "Nepp, inget giltigt nummer, bye bye!";
    die;
} else {
    $read = "SELECT * FROM nyheter WHERE id=$id";
}

Sen över till html-koden borde se ut nått såhär, skippa short_tags!:

<body>
<?php echo $testar; ?>
</body>
Medlem sedan jan. 200293 inlägg
#7

Tack för svaret! Det gjorde att jag fick rätt på inläsningen av databasen.
Dock använder jag

if (isset($Submit)) {

för att koppla in databasen och lägga in information i den. Dock vill det inte heller fungera. Förmodar att det har något med $_GET att göra så gjorde ett försök med:

if (isset($_GET['Submit'])) {

Tyvärr ville inte de heller fungera, kan någon leda mig in på rätt väg?

Medlem sedan mars 2006296 inlägg
#8

Använder du method post eller get i formuläret? Gissar på att du har post vilket är vanligast. Prova:

if (isset($_POST['submit'])) {
Medlem sedan jan. 200293 inlägg
#9

Tack för hjälpen! Nu har jag förhoppningsvis löst allting! :)

Finns det någon vettig (gärna svensk) länk där man kan läsa skillnaden mellan GET och POST!

Medlem sedan juni 20006 031 inlägg
#10

F_I_C skrev:

Tack för hjälpen! Nu har jag förhoppningsvis löst allting! :)

Finns det någon vettig (gärna svensk) länk där man kan läsa skillnaden mellan GET och POST!

http://www.webforum.nu/showthread.php?t=158652

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)