Gå til innhold

Kode ser ikke ut til å skrive ut noe?


Anbefalte innlegg

Har snekret sammen litt kode i ettermiddag, men får det rett og slett ikke til å fungere, det ser ikke ut som at koden vil skrive noe til dokumentet, selv om det har fungert før (har også andre prosjekter på samme serveren, disse fungere utmerket)

 

Koden:

 

index.php:

<?php
session_start();
?>

<html>

<head>
<style type="text/css">
	#table_background{
		background-color:#633;
		margin:30%;
		margin-left:35%;
		margin-top:15%;
		border-radius:15px;
		-moz-border-radius:15px;
	}
	#tables{
		padding-top:100px;
		padding-bottom:100px;
		padding:25%;
		padding-right:15%;
		padding-left:30%;
		color:#FFF;
	}
	td {
		color:#FFF;
	}
</style>
</head>
<body>
<?php
$con = mysql_connect("localhost", "mittBrukernavn", "Mittpassord");
if(!$con)
die("Could not connect: " . mysql_error());
mysql_select_db("minDatabase", $con);

$users = mysql_query("SELECT * FROM ForumUsers");
$isLoggedIn = false;

while($row == mysql_fetch_array($users)){
if($row["Email"] == $session["emaiL"] && $row["Passord"] == $session["passord"])
	$isLoggedIn = True;
}

if($isLoggedIn){
echo "Logged in!";
} else {
echo '<form method="post" action="login.php">
	<input type="text" name="email" />
	<input type="password" name="password" />
	<input type="submit" value="Log in" />
	</form> ';
}


echo "it works!";
?>
</body>
</html>

 

login.php

<html>
<body>
<?php
$con = mysql_connect("localhost", "mittBrukernavn", "mittPassord");
if(!$con)
die("Could not connect: " . mysql_error());

mysql_select_db("minDatabase", $con);

$users = mysql_query("SELECT * FROM ForumUsers");

while($row == mysql_fetch_array($users)){
if($row["Email"] == $_POST["email"] && $row["Passord"] == md5($_POST["password"])){
	$_session["email"] = $_POST["email"];
	$_session["password"] = $_POST["password"];
	echo "Logged in!";
} else if ($row["Email"] == $_POST["email"] && $row["Passord"] != $_POST["password"]){
	echo "Wrong password!";
} else if ($row["Email"] != $_POST["email"] && $row["Passord"]  == $_POST["password"]){
	echo "Wrong username!";
} else {
	echo "Log in failed!";
}
}
?>
</body>
</html>

 

 

Er alstå i login.php det ikke skjer noe, hadde problemer med index.php først, men fikk fikset det på en eller annen måte...

Endret av HeloLars
Lenke til kommentar
Videoannonse
Annonse

Har du løst problemet? Vær mer presis. Fjern all unødvendig kode som ikke er relevant for problemet. Da blir det lettere både for deg selv og andre å debugge koden. Bruk echo'er for å både sjekke at koden kommer dit den skal, og at variablene inneholder de verdiene du forventer.

Lenke til kommentar

For å utdype hvorfor svaret over løser problemet ditt:

 

while($row == mysql_fetch_array($users))

Koden evaluerer om objektet som pekes til i variabelen $row tilsvarer objektet som returneres av funksjonen mysql_fetch_array. Variabelen $row peker antageligvis ikke til noe som helst, mens mysql_fetch_array gir ut en array med innholdet fra databasen. Disse to er følgelig ikke like, og løkken kjøres dermed ikke! Hvis har på feilrapportering vil jeg tro at du får en relevant advarsel om bruk av en variabel som ikke er initialisert.

 

while($row = mysql_fetch_array($users))

Her initialiserer du først $row ved å tildele den et objekt (eller en verdi om du vil). I andre omgang evalueres $row i seg selv på samme måte som dersom du hadde skrevet "if($row)". Siden $row nå peker til en array er den ikke usann i PHP sine øyne, og koden i løkken kjøres. mysql_fetch_array leser hver gang fra listen med data gitt i ressursobjektet fra databasen (det du ba databasen om å gi deg); hver gang du kaller på denne funksjonen vil den returnere neste sett med data fra listen lagret i $users. Når $user er "tom" for nye data vil mysql_fetch_array returnere en verdi slik at $row evalueres som usann, og løkken stopper.

 

Dette visste du kanskje fra før, eller kanskje ikke engang trengte å vite det. Tenkte bare jeg skulle legge igjen en liten forklaring her, fordi jeg husker at jeg selv lurte på tankegangen bak akkurat dette da jeg først begynte å styre med PHP for noen få år tilbake. :blush:

Lenke til kommentar

Fikk dette til å fungere, men fant ut av jeg skulle integerer det inn i Wordpress, så endret koden til dette:

 

<?php
require('http://augustuen.com/wp-blog-header.php');

if($_GET["action"] == "login"){
if(!user_pass_ok($_POST["email"], $_POST["password"]))
	//$_COOKIE["isLoggedIn"] = True;
	echo "logged in!";
else
	//$_COOKIE["isLoggedIn"] = False;
	echo "Not Logged in!";                            

//header("Location: index.php");
} else {
echo "unknown action";
}?>

 

Men nå ser ikke denne ut til å fungere heller...

Endret av HeloLars
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...