/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Problemer med redirect
Fra : Henrik Pedersen


Dato : 20-06-02 11:17

Hej NG!

Jeg har en Tagwall som tidligere kørte på en selvstændig side, men nu har
jeg lagt den ind som en include fil på i min defaulte side.

Mit problem er så bare, når en bruger tilføjer et tag og der trykkes send,
så skal han sendes tilbage til tagwall'en - det har jo normalt gjort
således:

header("Location: $url_to_start/default.php?site=tagwall");
exit;

Men den komme op med fejlen, at headeren allerede er sendt - og siden kan
derfor ikke vises. Tag'et bliver godt nok tilføjet, så jeg mangler bare en
måde at sende brugeren tilbage på. Kan man f.eks. skifte "header" i
ovenstående kode ud med noget andet? Eller findes der en anden nem måde at
ordne det på?

Hvis du/I har brug for mere kode så sig til. Håber på svar...takker


*/Henrik Pedersen



 
 
Jakob Møbjerg Nielse~ (20-06-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 20-06-02 11:36

Henrik Pedersen wrote:
> header("Location: $url_to_start/default.php?site=tagwall");
> exit;
>
> Men den komme op med fejlen, at headeren allerede er sendt

Du må ikke skrive noget ud til browseren inden headeren skal sendes.
Dette gælder også tomme linjer i starten af scriptet.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man


Henrik Pedersen (20-06-2002)
Kommentar
Fra : Henrik Pedersen


Dato : 20-06-02 12:13

> > Men den komme op med fejlen, at headeren allerede er sendt
>
> Du må ikke skrive noget ud til browseren inden headeren skal sendes.
> Dette gælder også tomme linjer i starten af scriptet.

I know - men jeg bliver jo nødt til at lave selve scriptet først. Jeg skal
jo redirecte efter brugeren har tilføjet sit tag. Kan man ikke komme ad sted
med det uden den bruger denne header? Kan man ikke redirecte på en anden
måde?

*/Henrik Pedersen



Jakob Møbjerg Nielse~ (20-06-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 20-06-02 12:21

Henrik Pedersen wrote:
> I know - men jeg bliver jo nødt til at lave selve scriptet først.

Niks. Det har man *aldrig* brug for.

> Jeg skal jo redirecte efter brugeren har tilføjet sit tag. Kan man
> ikke komme ad sted med det uden den bruger denne header? Kan man ikke
> redirecte på en anden måde?

Ikke pænt. Hvorfor vil du skrive noget ud, før at brugeren har tilføjet
et tag? Hvis du poster lidt kode, skal jeg nok rette det til, så det
virker med headeren.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man


Henrik Pedersen (20-06-2002)
Kommentar
Fra : Henrik Pedersen


Dato : 20-06-02 12:27

> > I know - men jeg bliver jo nødt til at lave selve scriptet først.
>
> Niks. Det har man *aldrig* brug for.
>
> > Jeg skal jo redirecte efter brugeren har tilføjet sit tag. Kan man
> > ikke komme ad sted med det uden den bruger denne header? Kan man ikke
> > redirecte på en anden måde?
>
> Ikke pænt. Hvorfor vil du skrive noget ud, før at brugeren har tilføjet
> et tag? Hvis du poster lidt kode, skal jeg nok rette det til, så det
> virker med headeren.
>

OK. Du får her delen der smider det ind i databsen m.m. Du må meget gerne
lige beskrive hvad du gør og evt. hvorfor.

******* Code *********
$add_date = time();
$in = strip_array($in);
$in['message'] = encode_msg($in['message']); // Add SQL compatibilty &
Smilie Convert
$in['http'] = str_replace("http://", "", $in['http']); // Remove
http://from URLs

if ($in['icq'] != "" && ($in['icq'] < 1000 || $in['icq'] > 999999999))
{
died("Non-valid ICQ entry, if you do not have an icq account please leave
blank.");
}

if
(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",
$in['email']) && $in['email'] != "") { died("Non-valid Email entry, please
enter your correct e-mail address or if you don't have one leave it
blank.");
}

if (strlen($in['message']) < $limit["0"] || strlen($in['message']) >
$limit["1"]) { died("Sorry, your message has to be between $limit[0] and
$limit[1] characters.");
}

if ($in['email'] == "") { $in['email'] = "none"; }
if ($in['icq'] == "") { $in['icq'] = 0; }
if ($in['http'] == "") { $in['http'] = "none"; }
if ($in['location'] == "0") { $in['location'] = "none"; }

$in['browser'] = $HTTP_USER_AGENT;

mysql_db_query($database, "INSERT INTO guestbook (name, email, http, icq,
message, timestamp, ip, location, browser)
VALUES('$in[name]',
'$in[email]','$in[http]','$in[icq]','$in[message]','$add_date',
'$REMOTE_ADDR','$in[location]','$in[browser]')")
or died("Database Query Error");

if ($gb_notify)
{
@mail("$gb_notify","$in[name] har skrevt på TagWall'en","Ny TagWall-entry
fra $in[name]\n\n".censor_msg($in[message]),"From: $gb_notify2");
}

mysql_close();
header("Location: $PHP_SELF $url_to_start/default.php?site=tagwall");
exit;
}
****** Code end *********

*/Henrik Pedersen



Henrik Pedersen (20-06-2002)
Kommentar
Fra : Henrik Pedersen


Dato : 20-06-02 12:31


"Henrik Pedersen" <hp@beone.dk> wrote in message
news:3d11bbe7$0$258$edfadb0f@dspool01.news.tele.dk...
> > > I know - men jeg bliver jo nødt til at lave selve scriptet først.
> >
> > Niks. Det har man *aldrig* brug for.
> >
> > > Jeg skal jo redirecte efter brugeren har tilføjet sit tag. Kan man
> > > ikke komme ad sted med det uden den bruger denne header? Kan man ikke
> > > redirecte på en anden måde?
> >
> > Ikke pænt. Hvorfor vil du skrive noget ud, før at brugeren har tilføjet
> > et tag? Hvis du poster lidt kode, skal jeg nok rette det til, så det
> > virker med headeren.
> >
>
> OK. Du får her delen der smider det ind i databsen m.m. Du må meget gerne
> lige beskrive hvad du gør og evt. hvorfor.
>
> ******* Code *********
> $add_date = time();
> $in = strip_array($in);
> $in['message'] = encode_msg($in['message']); // Add SQL compatibilty &
> Smilie Convert
> $in['http'] = str_replace("http://", "", $in['http']); // Remove
> http://from URLs
>
> if ($in['icq'] != "" && ($in['icq'] < 1000 || $in['icq'] > 999999999))
> {
> died("Non-valid ICQ entry, if you do not have an icq account please leave
> blank.");
> }
>
> if
>
(!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",
> $in['email']) && $in['email'] != "") { died("Non-valid Email entry, please
> enter your correct e-mail address or if you don't have one leave it
> blank.");
> }
>
> if (strlen($in['message']) < $limit["0"] || strlen($in['message']) >
> $limit["1"]) { died("Sorry, your message has to be between $limit[0] and
> $limit[1] characters.");
> }
>
> if ($in['email'] == "") { $in['email'] = "none"; }
> if ($in['icq'] == "") { $in['icq'] = 0; }
> if ($in['http'] == "") { $in['http'] = "none"; }
> if ($in['location'] == "0") { $in['location'] = "none"; }
>
> $in['browser'] = $HTTP_USER_AGENT;
>
> mysql_db_query($database, "INSERT INTO guestbook (name, email, http, icq,
> message, timestamp, ip, location, browser)
> VALUES('$in[name]',
> '$in[email]','$in[http]','$in[icq]','$in[message]','$add_date',
> '$REMOTE_ADDR','$in[location]','$in[browser]')")
> or died("Database Query Error");
>
> if ($gb_notify)
> {
> @mail("$gb_notify","$in[name] har skrevt på TagWall'en","Ny TagWall-entry
> fra $in[name]\n\n".censor_msg($in[message]),"From: $gb_notify2");
> }
>
> mysql_close();
> header("Location: $PHP_SELF $url_to_start/default.php?site=tagwall");
> exit;
> }
> ****** Code end *********
>

Lavede lige en lille fjel - var lige ved at lege lidt. $PHP_SELF er normalt
ikke med i headerlinien tilsidst.

*/Henrik Pedersen



Jakob Møbjerg Nielse~ (20-06-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 20-06-02 13:38

Henrik Pedersen wrote:
> ******* Code *********
> $add_date = time();

Hvor er dine <?php ?> tags? Er det en side du inkluderer et andet sted?

> if ($in['icq'] != "" && ($in['icq'] < 1000 || $in['icq'] > 999999999))
> {
> died("Non-valid ICQ entry, if you do not have an icq account please
> leave blank.");

Denne funktion kender jeg ikke. Mener du die()?

> mysql_close();
> header("Location: $PHP_SELF $url_to_start/default.php?site=tagwall");
> exit;

Hertil ser det jo ganske fornufitgt ud. Mit bud er at du inkluderer den
i en anden fil efter at have skrevet noget ud.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man


Henrik Pedersen (20-06-2002)
Kommentar
Fra : Henrik Pedersen


Dato : 20-06-02 14:02

> > ******* Code *********
> > $add_date = time();
>
> Hvor er dine <?php ?> tags? Er det en side du inkluderer et andet sted?

Dette er en include fil, men eftersom dette kun er et udpluk af scriptet, så
ser du ikke mine tags. De er i toppen og bunden af scriptet.

> > if ($in['icq'] != "" && ($in['icq'] < 1000 || $in['icq'] > 999999999))
> > {
> > died("Non-valid ICQ entry, if you do not have an icq account please
> > leave blank.");
>
> Denne funktion kender jeg ikke. Mener du die()?

Yep - det er die funktionen.....

> > mysql_close();
> > header("Location: $PHP_SELF $url_to_start/default.php?site=tagwall");
> > exit;
>
> Hertil ser det jo ganske fornufitgt ud. Mit bud er at du inkluderer den
> i en anden fil efter at have skrevet noget ud.

Måden det sker på er som følger:
Jeg har en side der hedder "default.php" - dette er siden hvor jeg har mine
rammer osv. I denne includer jeg så de filer der skal placeres forskellige
steder på siden. F.eks. har jeg default-siden hvor jeg includer min tagwall.
Ønsker man så at indsætte et tag, trykker man på et link, og den skifter til
en anden side, som igen består af min defaulte side hvor "tilføj tag" siden
er included.

Min defaulte side har headeren (der hvor jeg laver mine META tags, sidens
titel m.m.) - og det er jo derfor den allerede har loadet headeren, når den
kommer ned til linien i scriptet.

Håber du forstår....

*/Henrik Pedersen



Jakob Møbjerg Nielse~ (20-06-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 20-06-02 14:16

Henrik Pedersen wrote:
> Min defaulte side har headeren (der hvor jeg laver mine META tags,
> sidens titel m.m.) - og det er jo derfor den allerede har loadet
> headeren, når den kommer ned til linien i scriptet.
>
> Håber du forstår....


Det tror jeg. Det kode du postede her, skal inkluderes i toppen af
filen. Det skulle kunne gøre det.

--
Jakob Møbjerg Nielsen | "Five exclamation marks, the
jakob@dataloger.dk | sure sign of an insane mind."
| -- Terry Pratchett, Reaper Man


Søg
Reklame
Statistik
Spørgsmål : 177520
Tips : 31968
Nyheder : 719565
Indlæg : 6408661
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste