login script/database aanmaken

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo,


Ik vond deze tutorial .


http://www.phpeasystep.com/workshopview.php?id=6



met dit voor aanmaken database:

CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

--
-- Dumping data for table `members`
--

INSERT INTO `members` VALUES (1, 'john', '1234');


vragen:

Hoe maak ik database aan , moet ik bovenstaande tekst gewoon in veld bij

Nieuwe database aanmaken
plakken ,

en is dit hierboven de laatse regel?? .. ) TYPE=MyISAM AUTO_INCREMENT=2 ;


Verder hoe maak ik dit aan:
INSERT INTO `members` VALUES (1, 'john', '1234');


er staat wel een uitleg maar de afbeeldingen worden niet weergegeven.

http://www.phpeasystep.com/mysqlview.php?id=2



ook zie ik als eerste pagina een login script , maar niet waar je je kunt registreren / code kunt aanvragen...die moet ik dus(vooraf ) in database zetten??


Bij voorbaat dank :)
 
Wat je daar hebt zijn queries die je uit moet voeren op je SQL databse. Instructies voor de database als het ware. Je zult dus éérst een SQL server nodig hebben. Je kunt rondkijken op je host of je ergens SQL (vaak MySQL) ziet staan. Meestal is er dan ook nog een database beheer applicatie zoals phpMyAdmin. Daar kun je rechstreeks je queries uitvoeren. Om php met je SQL database te laten samen werken moet je wel de inlog gegevens voor je database weten. Die kun je meestal ook op bij je host vinden.
 
database

bedankt voor antwoord

Ik werk nu gewoon lokaal met WAMPserver ...PHPmyAdmin


Maar begriip niet helemaal hoe database/tabel aan te maken volgens script


Heb intussen al wat ervering met php , maar wil deze uitbreiden met kennis van database, enz.
Dus leek me deze tutorial wel wat...



Ik heb intussen een database aangemaakt , genaamd; test


Nou moet ik een tabel aanmaken

moet ik onderstaande code plakken in veld naast:
Nieuwe tabel aanmaken in database ???
of moet hier aleen een naam met xx aantal velden??

CREATE TABLE `members` (
`id` int(4) NOT NULL auto_increment,
`username` varchar(65) NOT NULL default '',
`password` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;

--
-- Dumping data for table `members`
--

INSERT INTO `members` VALUES (1, 'john', '1234');


dan krijg ik een hoop velden:

veld type enz enz , wat moet hier ingevuld??
 
Laatst bewerkt:
Als je al een databse hebt kun je gewoon de query uitvoeren in phpMyAdmin. Je kunt ook het phpMyAdmin systeem gebruiken die de query voor je samen stelt, maar je hebt de query al. Ik weet niet precies hoe jouw versie van phpMyAdmin er uit ziet maar er staat meestal een redelijk groot rechthoekig blok (een etxtarea) waar je ene query in kunt typen/plakken. Dan staat er meestal een knop "execute", "run", of "uitvoeren" of iets dergelijks.
 
Laatst bewerkt:
ok begrijp dat het niet zo eenvoudig uit te leggen is:thumb:

de Query ,,zo ver ben ik al(hoop ik)


ik zit nou in de tabel members

met oa velden id username en password

ik probeer deze nu in ingevuld te krijgen , wil nog niet maar komt wel
 
Laatst bewerkt:
Ah ok, als je een tabel hebt kun je waardes gaan invoegen. in phpMyAdmin staat er meestal een knopje/link "Invoegen" of "Insert". Daarmee voeg je een rij toe aan de tabel.

De query komt er dan ongeveer zo uit te zien:
Code:
INSERT INTO `tabelnaam`(`veld1`, `veld2`) VALUE ('waarde1', 'waarde2'), ("nogmeer1", "nogmeer2")

Let op, alle namen van tabellen en kolommen staan tussen `. Dit zijn geen enkele quotes. De tekst-waardes staan tussen '. Dat wel zijn enkele quotes.
 
Ik heb nou een database test

met daarin een tabel genaamd members

id 1
username john
password 1234

maar krijg foutmelding bij inloggen:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\login\checklogin.php on line 9
cannot connect


checklogin.php

Code:
<?php
$host="localhost"; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$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 $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
 
Ik raad je allereerst aan om niet gebruik te maken van de mysql_ functies. Deze zijn oud en er is een veel beter alternatief. Zeker voor nieuwe projecten. Je kunt beter mysqli gebruiken.
http://ww.php.net/mysqli

Een connectie starten gaat ongeveer hetzelfde:
PHP:
$mysqli = new mysqli("$host", "$username", "$password", "$db_name");

en een query uitvoeren:
PHP:
$result = $mysqli->query($query);

$result is dan een MySQLi_Result object.


Maar goed, het probleem hier is de gebruikersnaam en wachtwoord. Die moet je wel opgeven:
PHP:
$username=""; // Mysql username 
$password=""; // Mysql password
 
bedankt , dit is nog iets te ver voor me op het moment..

probeer het dus nog wat op de oude manier

de melding blijft;;

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'john'@'localhost' (using password: YES) in C:\wamp\www\login\checklogin.php on line 9
cannot connect

is dit nou een voorbeeld van een in te loggen *lid...of moet ik ergens een naam en ww voor database aanmaken??


$username="john"; // Mysql username
$password="1234"; // Mysql password
 
Laatst bewerkt:
Je zult een username en wachtwoord moeten hebben voor de MySQL server, dus dit ging niet over het in te loggen lid (ik had iets duidelijker moeten zijn).

Er is altijd een account genaamd "root". Als je geen wachtwoord hebt in gesteld hiervoor dan heeft het als het goed is ook geen wachtwoord. Dus probeer maar user "root" en wachtwoord "". Als je server online staat moet je trouwens wel een wachtwoord instellen anders kan iedereen zo in loggen en queries draaien op je server.
 
Laatst bewerkt:
Je zult een username en wachtwoord moeten hebben voor de MySQL server, dus dit ging niet over het in te loggen lid (ik had iets duidelijker moeten zijn).

Er is altijd een account genaamd "root". Als je geen wachtwoord hebt in gesteld hiervoor dan heeft het als het goed is ook geen wachtwoord.

Dus probeer maar user "root" en wachtwoord "". Als je server online staat moet je trouwens wel een wachtwoord instellen anders kan iedereen zo in loggen en queries draaien op je server.



vandaar dat ik het vroeg

krijg nou dit
// Check if session is not registered , redirect back to main page. // Put this code in first line of web page. Login Successful

nou is het uiteraard?? de bedoeling dat een bezoeker , op een bepaalde website kan komen , ik neem aan dat het script hierin voorziet , zal wel met bovenstaande melding te maken hebben.

verder ....dus ik moet de personen die toegang verkrijgen eerst van een naam en paswoord voorzien en deze zelf in tabel invoegen?? het script heeft geen aanmeldings optie.
 
Let op, alle namen van tabellen en kolommen staan tussen `. Dit zijn geen enkele quotes. De tekst-waardes staan tussen '. Dat wel zijn enkele quotes.

Om tabelnamen horen geen backticks. :)
 
Het is zelfs gevaarlijk om het wel te doen. Je moet tabellen gewoon geen beschermde naam geven. Als je een keer vergeet om backticks te gebruiken, kun je alles kwijt zijn. Overigens is het wel typisch iets voor MySQL.

Anyway, voorbeeldje:

SELECT DELETE FROM table WHERE x = y

Of:

SELECT `DELETE` FROM table WHERE x = y

Dit is dan op een kolomnaam, maar het punt is wel duidelijk denk ik. Gewoon niet doen, dan heb je _nooit_ zulke problemen.

Hier staat het wat uitgebreider:
http://wiki.phpfreakz.nl/Backticks
 
Maar nou zeg je dat ze gevaarlijk zijn omdat je kunt vergeten ze te gebruiken. Als je het zo bekijkt zijn condooms ook gevaarlijk. Want tja, je kunt ze vergeten... Ik zou iedereen die een tabel of kolom `DELETE` noemt wel even een half uur durende preek geven maar het betekent niet dat backticks gevaarlijk zijn.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan