Archief - php login probleemken

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Ezzio

Legacy Member
Ik heb net een list gemaakt die alleen maar toont als je ingelogd bent. Ik heb het al toegepast op een andere website maar op de deze werkt et gwn niet.

Hieronder de code voor de login na te kijken:
Code:
<?php
ob_start();
require_once('connection.php');

// Define username and password 
$voornaam=$_POST['voornaam']; 
$achternaam=$_POST['achternaam'];
$pwd=$_POST['pwd'];

//Query results
$sql="SELECT * FROM ledenlijst WHERE Voornaam='$voornaam' AND Familienaam='$achternaam' AND pwd='$pwd'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $voornaam, $achternaam, $pwd and redirect to file "login_success.php"
session_register("voornaam");
session_register("achternaam");
header("location:../index.php");
}
else { header("location:../login_fail.php");}
ob_end_flush();
?>

En hier de lijst die aangepast wordt na de login:

Code:
<?php
session_start();

if(isset($_SESSION['voornaam']) && isset($_SESSION['voornaam'])){
	echo "
	 	<ul>
		   <li>lijst ingelogd</li>
	        </ul>
            
		 ";} 

else { echo "
			<ul>
			<li>lijst niet ingelogd</li>
			</ul>" ;}
?>

Er is een connectie met de database, dat heb ik al getest. Hij loopt door de code en gaat uiteindelijk naar de index-pagina zoals in php wordt gezegd maar de lijst wordt niet aangepast.
Ik hoop dat iemand de fout ziet want ik ben er al 2 dagen aan bezig :lol:
Al bedankt op voorhand

MorGo7h

Legacy Member
Ge hebt waarschijnlijk $result nog niet gedumpt he? :p
Ge hebt uw string niet onderbroken om uw variablen er tussen te zetten.
Verder is die count overbodig want je kunt gewoon doen if($result), maar het is niet fout.
En $_SESSION['key'] >>> session_register('key'). Allé, verkeerd is het niet wat je doet, maar $_SESSION wordt meer gebruikt.

Bekijk en probeer deze code eens, hiermee zou het moeten werken.
Code:
<?php
ob_start();
require_once('connection.php');

// Define username and password
$voornaam=$_POST['voornaam'];
$achternaam=$_POST['achternaam'];
$pwd=$_POST['pwd'];

//Query results
$sql="SELECT * FROM ledenlijst WHERE Voornaam='" . $voornaam . "' AND Familienaam='" . $achternaam . "' AND pwd='$pwd'";
$result=mysql_query($sql);

if($result){
	// Register $voornaam, $achternaam, $pwd and redirect to file "login_success.php"
	$_SESSION['voornaam'] = $voornaam;
	$_SESSION['achternaam'] = $achternaam;
	header("location:../index.php");
}
else { header("location:../login_fail.php");
}
ob_end_flush();
?>

Ezzio

Legacy Member
Heb et is getest en et werkt helaas niet. Het rare is, als ik de site local test dan werkt hij met de originele code. Tis als ie online staat dat hij niet werkt

MorGo7h

Legacy Member
En welke versie van php draait uw server lokaal en online? Kunt ge eens $result dumpen
var_dump($result); voor uw if statement zetten.

Ezzio

Legacy Member
Online versie is de 5.2 en de local is de 5.2.17
Ik ga juist nog is zien met de invoeging van het dumpen van de variabele

etl_mx

Legacy Member
Ik weet niet of je dit nog moet doen, maar zorg dat je je input variabele voornaam, familienaam en die paswoord sanitized.

Escapes special characters in the unescaped_string, taking into account the current character set of the connection so that it is safe to place it in a mysql_query(). If binary data is to be inserted, this function must be used.

Code:
string mysql_real_escape_string ( string $unescaped_string )

Ezzio

Legacy Member
Heb de var_dump der is bijgeschreven en het werkt ook niet

Ezzio

Legacy Member
Had der ook al aan gedacht. Heb et is toegepast maar nog altijd geen verschil.

Ezzio

Legacy Member
En het is gelukt! Ik heb et script gebruikt van jullie 2 en daarbij session_start(); gezet en de list past zich aan. Alletwee bedankt voor de hulp!

etl_mx

Legacy Member
Het is echt aangeraden om die mysql_real_escape_string te gebruiken voor beveiligingsredenen. Met de code die je hier nu staan hebt, geraak je met gemak binnen op je site zonder login gegevens te kennen.

Btw: als je de code van MorGo7h gebruikt, dan moet je in het begin wel nog session_start() doen. In jouw eerste code is dit niet nodig omdat je session_register gebruikt en dit doet een automatische call daarnaar toe.

Maar ik ben eigenlijk niet zo goed mee met je probleem.
Je logt dus in en je wordt doorverwezen naar de index pagina? (wil zeggen dat je query lukt en dat dit deel van je code goed zit). Maar op die index pagina staat er die "lijst niet ingelogd"?

Zou dus idd MorGo7h zijn code gebruiken + session_start() in het begin.
Als dit nog niet lukt, moet je dan toch eens uitleggen wat er mis loopt op die index.php pagina en wat er zou moeten staan, want ik ben hier niet zo goed mee.

etl_mx

Legacy Member
Ezzio zei:
En het is gelukt! Ik heb et script gebruikt van jullie 2 en daarbij session_start(); gezet en de list past zich aan. Alletwee bedankt voor de hulp!

Juist te laat dus :)

nog veel plezier

Ezzio

Legacy Member
Dat was idd het probleem. De login lukte (het loginscript) maar bij doorverwijzing naar de index-pagina paste de lijst zich niet aan. Dermee datik et echt raar vond.

Nog is bedankt voor de hulp :)

MorGo7h

Legacy Member
Ezzio zei:
En het is gelukt! Ik heb et script gebruikt van jullie 2 en daarbij session_start(); gezet en de list past zich aan. Alletwee bedankt voor de hulp!

Ahja, session_start() :sop: :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan