Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  5 838
Jeg har mange sider med php koder som skulle bli en medlemsbasert side. De sidene ser ut til å funke,men installasjonsfilen virker ikke. Jeg får kontakt med databasen, men ingenting blir installert.
når jeg trykker på linken så kommer dette opp:

Sjekk Database konfigurasjonene: Database: **** Db Brukernavn: -æææææ Db Passord: ppppp Db HOST : ****** --> Nytt tabellnavn blir: Brukere Sjekk Admin konfigurasjonene (lagres i tabellen som Admin bruker): Administrator brukernavn: sssss Administrator epost: ssssss Administrator passord: ***** [ Installer ]
Vis hele sitatet...

når jeg trykker på install ingenting skjer...jeg vil vise dere konfigurasjonskodene og installer kodene,kanskje dere finner noe som er galt og er årsaken til at dette skjer.....

installer.php :

Kode

<?php 

if(file_exists("innstillinger/konfigurasjon.php")) 
{ 
require("innstillinger/konfigurasjon.php"); 
} 
else 
{ 
echo <<<__HTML_END
 
<span style="color:#ff0000"><b>Konfigurasjonsfilen 
"innstillinger/konfigurasjon.php" finnes 
ikke</b></span> 

Legg filen "konfigurasjon.php" under en mappe som du 
kaller "innstillinger", ett nivå over filene: 

login.php, registrer.php og installer.php 

Husk å endre nødvendige data i konfigurasjonsfilen før 
du fortsetter! 

<a href="installer.php">[ Prøv igjen ]</a> 

__HTML_END;
exit(); 
} 

// opprett tabell for brukere dersom den ikke finnes 
if('$_GET[install]'=="1") 
{ 
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE 
'".$tabell_brukere."'"))==0) 
{ 
$opprett = mysql_query("CREATE TABLE `$tabell_brukere` 
( 
`id` int(11) NOT NULL AUTO_INCREMENT, 
`status` int(11) NOT NULL, 
`login_key` varchar(32) NOT NULL, 
`login_tid` varchar(25) NOT NULL, 
`brukernavn` varchar(50) NOT NULL, 
`epost` varchar(50) NOT NULL, 
`passord` varchar(32) NOT NULL, 
`dato_registrert` timestamp(8) NOT NULL, 
`count` int(11) default '0', 
PRIMARY KEY (`id`) 
) TYPE=MyISAM AUTO_INCREMENT=1"); 

if($opprett) 
{ 
$admin_md_passord = md5($admin_passord); 
$opprett_ny = mysql_query("insert into $tabell_brukere 
(status, brukernavn, epost, passord, dato_registrert) 
values ( 1, '$admin_brukernavn', '$admin_epost', 
'$admin_md_passord', NOW())"); 

echo <<<__HTML_END

Databasetabellen <b>$tabell_brukere</b> ble opprettet.. 

<span style="color:#ff0000"><b>Du må nå slette filen 
"installer.php" fra systemet ditt!!!</b></span> 

Administrator brukernavn: $admin_brukernavn 

Administrator epost: $admin_epost 

Administrator passord: $admin_passord 

<a href="login.php">[ Logg inn ]</a> 

<a href="registrer.php">[ Registrer flere brukere ]</a> 

__HTML_END;
} 
else 
{ 
echo <<<__HTML_END

<span style="color:#ff0000"><b>Feil under oppretting av 
databasetabell --> $tabell_brukere</b></span> 

Sjekk at konfigurasjonene til databasen er korrekte og 
prøv igjen 

<a href="installer.php?install=1">[ REFRESH ]</a> 

__HTML_END;
} 
} 
else 
{ 
print "Tabellen $tabell_brukere finnes allerede..."; 
} 
} 
else 
{ 
echo <<<__HTML_END

<u>Sjekk Database konfigurasjonene:</u> 

Database: $db 

Db Brukernavn: $dbuser 

Db Passord: $dbpassword 

Db HOST : $dbhostname 

--> Nytt tabellnavn blir: $tabell_brukere 


<u>Sjekk Admin konfigurasjonene (lagres i tabellen som 
Admin bruker):</u> 


Administrator brukernavn: $admin_brukernavn 

Administrator epost: $admin_epost 

Administrator passord: $admin_passord 


<a href="installer.php?install=1">[ Installer ]</a> 


__HTML_END;
} 
?>

konfigurasjon.php

Kode

<?php 

// MySql database konfigurasjon 
// endre følgende 4 linjer med dine data mellom " " 
$dbhostname = "*****"; 
$dbuser = "*****"; 
$dbpassword = "****"; 
$db = "****"; 

// koble til database 
$tilkobling = mysql_connect($dbhostname, $dbuser, 
$dbpassword) or die("Umulig å få kontakt med databasen 
- sjekk konfigurasjonene"); 
$velg_db = mysql_select_db($db) or die("Umulig å få 
kontakt med gjeldende database - sjekk 
konfigurasjonene"); 

// admin brukerdata,  
// registreres i databasen ved installasjon 
// endre til ønsket brukernavn, passord og epost 
$admin_brukernavn = "****"; 
$admin_passord = "****"; 
$admin_epost = "********"; 

// nettsted info, endre til ønsket 
$nettsted_navn = "**********"; 
$nettsted_epost = "a************"; 

// lukket eller åpen bruker-registrering 
// sett til "0" og alle kan registrere seg uten 
// bruk av kode 
$lukket_registrering = "0"; // krever kode 

// registreringskode hvis lukket registrering = "0" 
$registrerings_kode = "123456"; 

// bestem hvilket navn brukertabellen skal ha 
$tabell_brukere = "Brukere"; 
?>
Kan dere se om dere finner en løsning?
Vel, personen som har skrevet dette burde vel strengt tatt blitt henrettet på steder.

Kode

if('$_GET[install]'=="1")
Burde i alle fall omskrives til noe lignende som

Kode

if( (int)$_GET['install'] == 1 )
Sleng på en ?install=1 på adressen til filen igjennom browseren og se om den snapper opp installasjonen.
Sist endret av m0b; 5. september 2007 kl. 01:03.
Sitat av |d13m0b
Vel, personen som har skrevet dette burde vel strengt tatt blitt henrettet på steder.

Kode

if('$_GET[install]'=="1")
Burde i alle fall omskrives til noe lignende som

Kode

if( (int)$_GET['install'] == 1 )
Sleng på en ?install=1 på adressen til filen igjennom browseren og se om den snapper opp installasjonen.
Vis hele sitatet...

Tusen takk...Det var riktig sagt av deg!Takk for hjelpen...

hva med denne?kan noen fikse denne?

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /web/www/frac/users/s/students/katalog/brukere/login.php:2) in *********** on line 13


Kode

<?php 

if($_GET['loggut']=="1") 
{ 
session_start(); 
session_destroy(); 
header("Location: medlem.php"); 
exit(); 
} 
else 
{ 
session_start(); 
} 

require("innstillinger/konfigurasjon.php"); 

if(file_exists("installer.php")) 
{ 
echo <<<__HTML_END
exit(); 
} 

if(!empty('$_SESSION[b_brukernavn]') && 
!empty('$_SESSION[b_login_key]')) 
{ 
$b_brukernavn = '$_SESSION[b_brukernavn]'; 
$b_login_key = '$_SESSION[b_login_key]'; 

$sql = mysql_query("select * from $tabell_brukere where 
brukernavn = '$b_brukernavn' AND login_key = 
'$b_login_key' AND status <> '0'"); 

$antall_funnet = mysql_num_rows($sql); 

if($antall_funnet==1) 
{ 
header("Location: medlem.php"); 
exit(); 
} 
} 

if(isset($_POST[logginn])) 
{ 
foreach( $_POST as $key => $value ) 
{ 
 ${$key} = htmlspecialchars($value, ENT_QUOTES); 
} 
if(!empty($brukernavn) && !empty($passord)) 
{ 
$md_passord = md5($passord); 

$sjekk_bruker = mysql_query("select id from 
$tabell_brukere where passord='$md_passord' and 
brukernavn='$brukernavn'"); 
$funnet=mysql_num_rows($sjekk_bruker); 

if($funnet<>1) 
{ 
sleep(3); 
print "Beklager, gyldig bruker ble ikke funnet"; 
} 
else 
{ 
function tilfeldig_key($lengde) 
{ 
$utvalg = 
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr 
stuvwxyz"; 
for($i=0;$i<$lengde;$i++) 
{ 
$streng .= $utvalg{rand(0,35)}; 
} 
return $streng; 
} 
$tidspunkt = date("d-m-Y H:i:s"); 
$login_session_kode = date("YmdHis").tilfeldig_key(15); 
$login_session_md_kode = md5($login_session_kode); 

$oppdater_db = mysql_query("update $tabell_brukere set 
login_key='$login_session_md_kode', 
login_tid='$tidspunkt', count=count+1 where 
brukernavn='$brukernavn' AND passord='$md_passord'"); 

if($oppdater_db) 
{ 
'$_SESSION[b_brukernavn]'= $brukernavn; 
'$_SESSION[b_login_key]'= $login_session_md_kode; 

header("Location: medlem.php"); 
print "Innlogging vellykket, <a href='$brukerside'>Gå 
videre til medlemsområdet --></a>"; 
exit(); 
} 
else 
{ 
print "Innlogging ikke mulig, prøv igjen"; 
} 
} 
} 
else 
{ 
print "Både brukernavn og passord må fylles ut"; 
} 
} 

// start logg inn skjema 
echo <<<__HTML_END
<form action="login.php" method="post"> 

Brukernavn 

<input type="text" name="brukernavn" 
value="$brukernavn" size="30" /> 

Passord 

<input type="password" name="passord" value="" 
size="30" /> 

<input type="submit" name="logginn" value="Logg inn" /> 

</form> 

<a href="glemt_pass.php">Glemt passord ?</a> 


__HTML_END;
}
?>
Sist endret av arash; 5. september 2007 kl. 01:40.
Vel, ikke så veldig godt å si men problemet ligger klart i echo <<<__HTML_END og det som er gjort med dette. Jeg vil anbefale deg å heller legge dette inn i en streng og printe den ut isteden.

Men... Jeg vil anbefale deg å holde deg langt unna alt som har med denne koden å gjøre. Skal vel sies at dette er tett på noe av det verste og styggeste jeg har sett av kode i php så langt.

Good going!

Edit: Du endret spørsmålet ja. Når den snakker om "headers already sent", betyr det at scriptet har prøvdt å f.eks starte session, kjørt header() eller ligndende etter at det er skrevet ut noe på siden. Slike ting må derfor komme før noe som helst annet printes ut på siden. Dette gjelder også "space" og lignende characters.
Sist endret av m0b; 5. september 2007 kl. 01:45.
Bare på peke at Heredoc String (<<<EOT) også er en streng Selv bruker jeg denne ofte når det enkelte gang er en del html som skal ut
Ok..takk. Nå har jeg fjernet space o etc. og det ser ut at feilmld er borte....men jeg får bare fram en hvis side uten noe i:S?

http://students.frac.dk/katalog/brukere/login.php

og hvor er det blitt av brukernavn og passord ?

Her er den nye koden:

Kode

<?php

if($_GET['loggut']=="1")
{
session_start();
session_destroy();
header("Location: medlem.php");
exit();
}
else
{
session_start();
}

require("innstillinger/konfigurasjon.php");

if(file_exists("installer.php"))
{ 
echo <<<__HTML_END
exit();
} 

if(!empty('$_SESSION[b_brukernavn]') && 
!empty('$_SESSION[b_login_key]')) 
{ 
$b_brukernavn = '$_SESSION[b_brukernavn]'; 
$b_login_key = '$_SESSION[b_login_key]'; 

$sql = mysql_query("select * from $tabell_brukere where 
brukernavn = '$b_brukernavn' AND login_key = 
'$b_login_key' AND status <> '0'"); 

$antall_funnet = mysql_num_rows($sql); 

if($antall_funnet==1) 
{ 
header("Location: medlem.php"); 
exit(); 
} 
} 

if(isset($_POST[logginn])) 
{ 
foreach( $_POST as $key => $value ) 
{ 
 ${$key} = htmlspecialchars($value, ENT_QUOTES); 
} 
if(!empty($brukernavn) && !empty($passord)) 
{ 
$md_passord = md5($passord); 

$sjekk_bruker = mysql_query("select id from 
$tabell_brukere where passord='$md_passord' and 
brukernavn='$brukernavn'"); 
$funnet=mysql_num_rows($sjekk_bruker); 

if($funnet<>1) 
{ 
sleep(3); 
print "Beklager, gyldig bruker ble ikke funnet"; 
} 
else 
{ 
function tilfeldig_key($lengde) 
{ 
$utvalg = 
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr 
stuvwxyz"; 
for($i=0;$i<$lengde;$i++) 
{ 
$streng .= $utvalg{rand(0,35)}; 
} 
return $streng; 
} 
$tidspunkt = date("d-m-Y H:i:s"); 
$login_session_kode = date("YmdHis").tilfeldig_key(15); 
$login_session_md_kode = md5($login_session_kode); 

$oppdater_db = mysql_query("update $tabell_brukere set 
login_key='$login_session_md_kode', 
login_tid='$tidspunkt', count=count+1 where 
brukernavn='$brukernavn' AND passord='$md_passord'"); 

if($oppdater_db) 
{ 
'$_SESSION[b_brukernavn]'= $brukernavn; 
'$_SESSION[b_login_key]'= $login_session_md_kode; 

header("Location: medlem.php"); 
print "Innlogging vellykket, <a href='$brukerside'>Gå 
videre til medlemsområdet --></a>"; 
exit(); 
} 
else 
{ 
print "Innlogging ikke mulig, prøv igjen"; 
} 
} 
} 
else 
{ 
print "Både brukernavn og passord må fylles ut"; 
} 
} 

// start logg inn skjema 
echo <<<__HTML_END
<form action="login.php" method="post"> 

Brukernavn 

<input type="text" name="brukernavn" 
value="$brukernavn" size="30" /> 

Passord 

<input type="password" name="passord" value="" 
size="30" /> 

<input type="submit" name="logginn" value="Logg inn" /> 

</form> 

<a href="glemt_pass.php">Glemt passord ?</a> 


__HTML_END;
}
?>
Noen forslag?!