Script negeert !=

Status
Niet open voor verdere reacties.

Jorryt

Gebruiker
Lid geworden
19 dec 2010
Berichten
246
Heey,

Ik heb een probleempje met een script dat een groot aantal gegevens verwerkt in mijn database. Het gaat mis bij het wachtwoord (de rest doet het). Ik controleer namelijk of het wachtwoord echt wel is wat de gebruiker denkt dat het is. Dus die waardes moeten uit de while loop gehaald worden en apart behandeld worden. Hier is het script, ik ben er 100% zeker van dat de names in mijn html gelijk zijn aan de kolomnamen (alleen niet voor wachtwoordnieuw - maar dan hoeft ook niet geupdate te worden)

De foutmelding die ik krijg is als volgt:
Unknown column 'wachtwoordnieuw' in 'field list'

PHP:
<?php 
//Sessie's gebruiken
session_start();

//verbinding maken met de database
include "connectie.php";

//Naam ophalen uit de huidige sessie
if(isset($_SESSION["naam"])) { 
$naam = $_SESSION["naam"]; }
else {
  header( "refresh:5; url=$homepage" );
  echo "Je was niet ingelogd. Je gaat nu naar de homepagae zo niet, klik <a href=".$homepage.">hier</a>.";
}

//Waardes toevoegen aan de databse
while (list($parameter,$inhoud) = each($_POST))	{											//Alle waardes doorlopen $parameter = kolomnaam = name(html)
if((!empty($inhoud)) && ($paramter!="wachtwoord") && ($paramter!="wachtwoordnieuw")) {																//Kijken of de inhoud niet leeg is
	$query = "UPDATE gegevens SET $parameter = '$inhoud' WHERE naam = '$naam';";			//De inhoud toevoegen aan de kolom (met de naam $parameter)
	mysql_query($query,$connectie) or die ($foutmelding.mysql_error()."1");						//Querry uitvoeren
}
if((!empty($inhoud)) && ($paramter == "wachtwoordnieuw")) { $wachtwoordnieuw = "$inhoud"; }	//wachtwoord check maken als die niet leeg is
if((!empty($inhoud)) && ($paramter == "wachtwoord")) { $wachtwoord = "$inhoud"; }			//Same voor het eigenljke nieuwe wachtwoord
}

//Wachtwoord updaten
if((isset($wachtwoord)) && (!isset($wachtwoordnieuw))) { header("location: alfaf2.html"); }	//Foutmelding voor als de check niet is ingevuld
if((!isset($wachtwoord)) && (isset($wachtwoordnieuw))) { header("location: alfaf2.html"); }	//Foutmelding voor als alleen de check is ingevuld
if((isset($wachtwoord)) && (isset($wachtwoordnieuw))) {										//kijken of ze beiden aangemaakt zijn (oftewel zijn ze gevuld)
	if ( $wachtwoord == $wachtwoordnieuw ) {												//De wachtwoorden moeten wel overeenkomen dan mag je vullen
	$query = "UPDATE gegevens SET wachtwoord = ".$wachtwoord." WHERE naam = ".$naam.";";	//Querry maken - het wachtwoord toevoegen aan de tabel wachtwoord
	mysql_query($query,$connectie) or die ($foutmelding.mysql_error()."2");						//Querry uitvoeren
	session_unset();																		//Sessies opnieuw gaan instellen
	$_SESSION["wachtwoord"] = $wachtwoord;													//Het nieuwe wachtwoord invoeren
	$_SESSION["naam"] = $naam;																//Natuurlijk moet ook de naam niet vergeten worden.
	}	
	else { header("location: alfaf.html"); }	//Komen de wachtwoorden niet overeen? ga dan naar die foutmeldpagina
}

//Database afsluiten
mysql_close($connectie) or die ($foutmelding.mysql_error());

//Teruggaan naar de pagina
header("location: ../pagina.php");
?>

Ik haal dus wachtwoordnieuw uit de lijst, met if parameter!=wachtwoordnieuw. maar dat slaat die over. Ook haalt die de sessions overhoop zodra ik probeer in te loggen nadat ik het allemaal vernieuwd heb.

Alvast bedankt!
 
In een query moet je aanhalingstekens zetten om tekst values die je meegeeft, anders gaat SQL er van uit dat het kolomnamen zijn :)

Dus niet zo:
[sql]
SELECT * FROM een_tabel WHERE veld = tekst_waarde
[/sql]

Maar zo:
[sql]
SELECT * FROM een_tabel WHERE veld = 'tekst_waarde'
[/sql]
 
Het zal ongetwijveld aan mij liggen, maar ik heb toch ' links en rechts van mijn variables staan?
 
Laatst bewerkt:
Niet bij deze:

$query = "UPDATE gegevens SET wachtwoord = ".$wachtwoord." WHERE naam = ".$naam.";"

Die aanhalingstekens die daar staan sluiten de string af die de query opbouwt, maar er komen geen aanhalingstekens in de query terecht. Echo die $query variabele maar eens, dan kun je het zien :)
 
Klopt ja, ik ging het testen met deze opstelling en dat ging even goed fout. Ik heb het verholpen in mijn script maar de foutmelding ligt al bij de eerste querry die misgaat.
 
Laatst bewerkt:
Je heb een typo gemaakt!
$paramter!="wachtwoordnieuw" dat moet parameter zijn!

Of $parameter in de query moet $paramter worden ;)
 
Laatst bewerkt:
OOH ontzettend bedankt, dit is echt het meest frustrerende aan al het coderen.
 
)}; en typo's kunnen je helemaal gek maken!!!

Ik weet er alles van!!!
 
gelukkig dat php je tenminste helpt met het zoeken naar de fout. Het is niet perfect, maar hij verteld tenminste waar je ongeveer moet zoeken!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan