kroekkete Skrevet 28. april 2004 Del Skrevet 28. april 2004 (endret) Trøste og bære, hvorfor hadde jeg så lyst til å lære php? Dette innlegget er fosåvidt en fortsettelse av dette: http://forum.sourcecode.no/index.php?showtopic=236924 , men det har vært en viss utvikling her, så jeg lager et nytt emne. Forresten, for en gangs skyld får jeg samme feilmelding og oppførsel både i Opera og IE! Ok, problemet: Jeg har to tilnærmet identiske sider, kreditorerdetalj.php og kreditorerdetaljediter.php Begge to viser data hentet fra en tabell i MySQL. Den eneste forskjellen på dem er at k~detalj.php viser dataene som ren tekst, mens k~detaljediter viser dataene med skjemaelementer, slik at tabelloppføringen kan endres. Når jeg skal inn i kreditorerdetaljediter.php får jeg følgende feilmelding: Fatal error: Call to undefined function: phpsession_start() in /home/blablabal/public_html/kreditorerdetaljediter.php on line 1 Her er gangen i det: Dette er valider.php, som sjekker om inntastet bnavn og passord er riktig. (Ser du noe kjent her, SirIce? ) <?php session_start(); $kr_passord =(crypt($_POST['passord'],"hemmelig nøkkel")); include ("pobasekopling.php"); $sjekk_passord="SELECT brukernavn,passord FROM brukere WHERE (brukernavn='{$_POST['brukernavn']}')"; $dbpassord=mysql_query($sjekk_passord); $hentet_passord=mysql_fetch_array($dbpassord); if (($_POST["brukernavn"] == $hentet_passord["brukernavn"]) and ($kr_passord == $hentet_passord["passord"])){ // If correct, sets session "true" $_SESSION["login"] = "true"; $_SESSION["brukernavn"] = $_POST["brukernavn"]; //and redirects to forsiden.php header("Location: http://inter.net/forsiden.php"); exit; } else { $_SESSION["error"] = "<font color=red>Beklager, men brukernavnet eller passordet var feil!</font>"; header("Location: http://inter.net/registrer.php"); } ?> $_SESSION["brukernavn"] = $_POST["brukernavn"]; Denne linjen er med fordi jeg trenger noe å knytte brukerne til dataene deres i databasen. Dette funker i IE men ikke i Opera, så hvis noen kan kjapt kan si hvordan jeg kommer rundt dét problemet utdeles det stor takknemlighet! -Flott, vi ble godkjent! Da ser forsiden.php slik ut (Sterkt forkortet!): <?php session_start(); if ($_SESSION["login"] != "true"){ header("Location: http://inter.net/registrer.php"); $_SESSION["error"] = "<font color=red>Nope....</font>"; exit; } ?> <HTML> Lenke til kreditorer.php, som lister opp radene i MySQL-tabellen Ok, vi ble godkjent igjen, både i Opera og IE, og vi følger lenken til kreditorer.php, som ser slik ut (igjen, sterkt forkortet): <?php session_start(); if ($_SESSION["login"] != "true"){ header("Location: http://inter.net/registrer.php"); $_SESSION["error"] = "<font color=red>Nope....</font>"; exit; } ?> <HTML> Blablaba <?php include ("pobasekopling.php"); if(!isset($start)) $start = 0; $sql1 = "SELECT indeks, kreditor_fakturanr, kreditor_fakturadato, kreditor_navn, kreditor_totalbelop, kreditor_forfallnaa FROM kreditorer WHERE brukernavn='{$brukernavn}' ORDER BY kreditor_forfallnaa DESC LIMIT " . $start . ", 5"; $sql_resultat=mysql_query($sql1); ?> //Det er det over Opera ikke forstår... Blablabla <?php echo "<a class='gammel' href=http://inter.net/kreditorerdetalj.php?indeks=".$arr["indeks"].">".$norskdato2."</a>"?> <?php echo "<a class='gammel' href=http://inter.net/kreditorerdetalj.php?indeks=".$arr["indeks"].">".$norskdato2."</a>"?> Linjen over blir en hyperlink til f.eks: http://inter.net/kreditorerdetalj.php?indeks=27 Jepp, da er vi inne og ser den tekstbaserte detaljversjonen av rad 27 i kreditortabellen (takket være sessionscriptet som er en gjenganger på alle sidene nå!)! MEN! Vi ser noe som er galt, så vi følger lenken i kreditorerdetalj.php til den editerbare versjonen av de samme dataene, nemlig http://inter.net/kreditorerdetaljediter.php?indeks=27 Lenken i kreditorerdetalj ser slik ut: <?php echo "<a href=http://www.inter.net/kreditorerdetaljediter.php?indeks=".$arr["indeks"].">Editér denne oppføringen</a>"; ?> Denne virker. Og her, endelig, er det problemet kommer. I stedet for å se den editerbare varianten får jeg ovennevnte fatale feilmelding... Hvorfor er jeg totalt forvirret? Jo, fordi sessionbiten er copy/paste, som det er alle andre steder hvor det VIRKER! Bare se: <?php session_start(); if ($_SESSION["login"] != "true"){ header("Location: http://inter.net/egistrer.php"); $_SESSION["error"] = "<font color=red>Nope....</font>"; exit; } ?> <HTML> Blablabla Jeg beklager at dette innlegget ble så langt, men jeg håper noen allikevel orker å kaste et blikk på det... Takk! Endret 28. april 2004 av primaxx Lenke til kommentar
Torbjørn Skrevet 28. april 2004 Del Skrevet 28. april 2004 gå inn i koden og sett en ordentlig linjeskift mellom "<?php" og "session_start();" som du ser, sier den at funksjonen phpsession_start() ikke er definert, den skiller ergo ikke mellom de to linjene, så et eller annet krøll har sneket seg inn der (typisk relatert til forskjellige linjeskift i windows og linux) Lenke til kommentar
kroekkete Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 Takk! Jeg bruker både Zend og Source Edit, men det hjalp ikke om jeg satte nytt linjeskift hverken i det ene eller andre programmet... Det som til slutt løste problemet var at jeg overførte filen i binary mode i stedet for Ascii(!) Må gjøre oppmerksom på at jeg benyttet Source Edits innebygde File Courier til å overføre filer... Takk! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå