Fout in query

Status
Niet open voor verdere reacties.

wouter54321

Gebruiker
Lid geworden
24 mei 2008
Berichten
218
Hallo,

In volgende script geeft hij geen errors en zegt hij connectie maken met mysql ok, database selecteren ok en tabel aanmaken ok.Maar als ik naar phpmyadmin ga dan zie ik dat er geen tabellen zijn bijgekomen.
Wat is de fout?
De scripts zijn als volgt:
PHP:
<?php 

//variabelen administratie 

$sitenaam = $_POST['sitenaam']; 
$siteadres = $_POST['adressite']; 
$admin = $_POST['user']; 
$wadmin = $_POST['pasuser']; 


//variabelen mySQL 

$host = $_POST['mysqlhost']; 
$mysqluser = $_POST['mysqluser']; 
$mysqlpas = $_POST['mysqlpas']; 
$db = $_POST['mysqldb']; 

if ( mysql_connect($host, $mysqluser, $mysqlpas ) == true ) { 

echo "Connectie maken met mysql OK !" . '<br>'; 

} else { 

print "Connectie mislukt !"; 

} if ( mysql_select_db( $db ) == true ) { 

echo "Database selecteren OK !" . '<br>'; 
$con = mysql_connect($host, $mysqluser, $mysqlpas); 

$sql1 = 'DROP TABLE IF EXISTS `leden`'; 
mysql_query( $sql1, $con ); 

$sql2 = 'CREATE TABLE `leden` ( 
        `gebruikersnaam` VARCHAR( 100 ) NOT NULL, 
        `wachtwoord` VARCHAR( 100 ) NOT NULL, 
        `email` VARCHAR( 150 ) NOT NULL, 
       )'; 

mysql_query(' $sql2 , $conn '); 

echo "Tabel aanmaken OK !"; 

} else { 

print "Kan niet verbinden met database !"; 

} 

?>
 
Hallo,

In volgende script geeft hij geen errors en zegt hij connectie maken met mysql ok, database selecteren ok en tabel aanmaken ok.Maar als ik naar phpmyadmin ga dan zie ik dat er geen tabellen zijn bijgekomen.
Wat is de fout?
De scripts zijn als volgt:
PHP:
<?php 

//variabelen administratie 

$sitenaam = $_POST['sitenaam']; 
$siteadres = $_POST['adressite']; 
$admin = $_POST['user']; 
$wadmin = $_POST['pasuser']; 


//variabelen mySQL 

$host = $_POST['mysqlhost']; 
$mysqluser = $_POST['mysqluser']; 
$mysqlpas = $_POST['mysqlpas']; 
$db = $_POST['mysqldb']; 

if ( mysql_connect($host, $mysqluser, $mysqlpas ) == true ) { 

echo "Connectie maken met mysql OK !" . '<br>'; 

} else { 

print "Connectie mislukt !"; 

} if ( mysql_select_db( $db ) == true ) { 

echo "Database selecteren OK !" . '<br>'; 
$con = mysql_connect($host, $mysqluser, $mysqlpas); 

$sql1 = 'DROP TABLE IF EXISTS `leden`'; 
mysql_query( $sql1, $con ); 

$sql2 = 'CREATE TABLE `leden` ( 
        `gebruikersnaam` VARCHAR( 100 ) NOT NULL, 
        `wachtwoord` VARCHAR( 100 ) NOT NULL, 
        `email` VARCHAR( 150 ) NOT NULL, 
       )'; 

mysql_query(' $sql2 , $conn '); 

echo "Tabel aanmaken OK !"; 

} else { 

print "Kan niet verbinden met database !"; 

} 

?>

Je echoed zomaar "Tabel aanmaken OK" zonder te controleren of dit klopt.

Deze regel:

PHP:
mysql_query(' $sql2 , $conn ');

Moet denk ik zijn:

PHP:
mysql_query($sql2, $con);
 
Het vorige is opgelost.
Hoe maak ik het inlog script?
Kan er iemand een voorbeeldje geven(script)?


config.php
PHP:
<?php

$siteadmin = "";
$adminpas = "";

$mysqlhost = "localhost";
$mysqluser = "";
$mysqlpas = "";
$db = "membersysteem";

?>

login.php
PHP:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="" method="post" action=""> 
Naam: <br><input name="Naam" type="text" value""> 
<br> 
Wachtwoord: <br><input name="Wachtwoord" type="text" value=""> 
<br> 
<input type="submit" name="Submit" value="Login"> 
</form>
 </body>
</html>

registreer.php
PHP:
<html>
<head>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form name="registreren" method="post" action="regverwerk.php"> 
Naam: <br><input name="naam" type="text" value""> 
<br> 
Wachtwoord: <br><input name="wachtwoord" type="password" value=""> 
<br> 
E-mail: <br><input name="email" type="text" value=""> 
<br> 
<input type="submit" name="submit" value="Verzenden"> 
</form>
</body>
</html>
regverwerk.php
PHP:
<?php	   
include('config.php');

$naam = $_POST['naam'];
$wachtwoord = $_POST['wachtwoord'];
$email = $_POST['email'];

if ( $naam == "" ) {

echo "U hebt geen naam ingevuld !";

} elseif ($wachtwoord == "" ) {

echo "U hebt geen wachtwoord ingevuld !";

} elseif ($email == "" ) {

echo "U hebt geen e-mail ingevuld !" ; 

} else {


$sql="INSERT INTO leden (gebruikersnaam, wachtwoord, email)
VALUES
('$_POST['naam']','$_POST['wachtwoord']','$_POST['email']')";

mysql_connect($mysqlhost, $mysqluser, $mysqlpas);  
mysql_select_db($db);
mysql_query($sql);

}

?>
 
Laatst bewerkt:
Als ik straks tijd heb, zal ik er even naar kijken. Ik ben op dit moment voor een klant een tamelijk grootschalig project aan het maken, dus ik hoop dat je begrijpt dat dat even voorgaat.
 
Volgens mij heb je deze vraag ook in een ander topic gesteld en heb ik hem daar net beantwoord.
 
Hoe doe je nu dat als je ingelogd bent dat je doorgestuurd word naar index.php?
 
Ik weet niet precies hoe jij controleert of iemand ingelogd is, maar stel dat je een $_SESSION gebruikt en:

PHP:
$_SESSION['login'] = true;

als iemand is ingelogd,

dan kun je bijvoorbeeld:

PHP:
if($_SESSION['login']){
 header('Location: index.php');
 exit;
}
 
Dit is nu mijn code, zou je het erin willen voegen?

PHP:
<?php

session_start(); 

if ($_POST['gebruikersnaam'] == "Gebruikersnaam") { // veranderen!!! 
if ($_POST['wachtwoord'] == "Wachtwoord") { //veranderen!!! 

echo "paswoord OK !"; 

$_SESSION['gebruikersnaam']=$_POST['gebruikersnaam']; 

} else { 

echo "Wachtwoord niet juist probeer opnieuw"; 

} 
}

include('config.php'); 
if($connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpas)){ 
 // do nothing 
} else { 
 echo "Er was een probleem met het verbinden met de MySQL-server"; 
} 

if($select = mysql_select_db($db, $connection)){ 
 // do nothing 
} else { 
 echo "Er was een probleem bij het selecteren van de database"; 
} 

$sql = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam = '" . mysql_real_escape_string($_POST['Naam']) . "' AND wachtwoord = '" . mysql_real_escape_string($_POST['Wachtwoord']) . "'"; 

$result = mysql_query($sql, $connection); 
$count = mysql_num_rows($result); 
if($count > 0){ 
 session_start(); 
 $_SESSION['registered'] = true; 
 $_SESSION['username'] = $_POST['Naam']; 
} else { 
 echo "Je hebt geen juiste gegevens ingevuld."; 
 echo "<br /><a href=\"login.php\">Probeer het nog een maal</a>"; 
}  
?>
 
PHP:
if ($_POST['gebruikersnaam'] == "Gebruikersnaam") { // veranderen!!! 
if ($_POST['wachtwoord'] == "Wachtwoord") { //veranderen!!! 

echo "paswoord OK !"; 

$_SESSION['gebruikersnaam']=$_POST['gebruikersnaam']; 

} else { 

echo "Wachtwoord niet juist probeer opnieuw"; 

} 
}

Wat doet die bovenstaande code, die kijkt alleen maar naar 1 statische gebruiker, je hebt nu als het ware 2 inlogscripts in elkaar, één kijkt naar gebruikers in de database en de andere zet je hardcoded in je script? Ik zou dat eerste stuk weghalen.

Dan heb je slechts dit over:

PHP:
session_start();
include('config.php'); 
if($connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpas)){ 
 // do nothing 
} else { 
 echo "Er was een probleem met het verbinden met de MySQL-server"; 
} 

if($select = mysql_select_db($db, $connection)){ 
 // do nothing 
} else { 
 echo "Er was een probleem bij het selecteren van de database"; 
} 

$sql = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam = '" . mysql_real_escape_string($_POST['Naam']) . "' AND wachtwoord = '" . mysql_real_escape_string($_POST['Wachtwoord']) . "'"; 

$result = mysql_query($sql, $connection); 
$count = mysql_num_rows($result); 
if($count > 0){ 
 session_start(); 
 $_SESSION['registered'] = true; 
 $_SESSION['username'] = $_POST['Naam'];  
 header('Location: index.php');
} else { 
 echo "Je hebt geen juiste gegevens ingevuld."; 
 echo "<br /><a href=\"login.php\">Probeer het nog een maal</a>"; 
}  
?>
 
Je hebt me nu login_verwerking.php gegeven met sessions.
Wat moet ik bovenaan de pagina index.php plaatsen voor hem te beveiligen?
 
PHP:
session_start();
if($_SESSION['registered'] !== true){
 header('Location: login.php');
 exit;
}
 
Laatst bewerkt:
Dit werkt niet bij mij.
Ligt het aan het scriptje uitloggen.php dat ontbreekt?
Zou je dit effe willen maken?
 
Wat werkt er precies niet?

Heb je het inlog-script precies zo gebruikt als het hierboven staat? Zo dus:

PHP:
session_start();
include('config.php'); 
if($connection = mysql_connect($mysqlhost, $mysqluser, $mysqlpas)){ 
 // do nothing 
} else { 
 echo "Er was een probleem met het verbinden met de MySQL-server"; 
} 

if($select = mysql_select_db($db, $connection)){ 
 // do nothing 
} else { 
 echo "Er was een probleem bij het selecteren van de database"; 
} 

$sql = "SELECT gebruikersnaam, wachtwoord FROM leden WHERE gebruikersnaam = '" . mysql_real_escape_string($_POST['Naam']) . "' AND wachtwoord = '" . mysql_real_escape_string($_POST['Wachtwoord']) . "'"; 

$result = mysql_query($sql, $connection); 
$count = mysql_num_rows($result); 
if($count > 0){ 
 session_start(); 
 $_SESSION['registered'] = true; 
 $_SESSION['username'] = $_POST['Naam'];  
 header('Location: index.php');
} else { 
 echo "Je hebt geen juiste gegevens ingevuld."; 
 echo "<br /><a href=\"login.php\">Probeer het nog een maal</a>"; 
}  
?>

Als je dan met de goede gegevens inlogt, wordt de sessie-variabele 'registered' op true gezet. Bovenaan de pagina die je wilt beveiligen kijk je dan of $_SESSION['registered'] inderdaad true is.

Ik kan je wel een uitlogpagina maken, maar dat maakt als het goed is niet uit.

PHP:
// uitloggen.php
session_start();
session_destroy();

Kun je even iets specifieker aangeven wat niet werkt?
 
Bedoel je een lijst met gebruikers, die mogen inloggen? Je had toch al een pagina waar gebruikers zich kunnen registreren?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan