50
Tags:
php
Skrevet af
Bruger #1388
@ 03.06.2002
Brugersystem i PHP/MySQL
Indledning
Denne lille samling af 5 små scripts vil hjælpe dig med at få et lille login system op og køre. Scriptet tager brug at en lille tabel(users) i MySQL med to kolonner hhv. kalder "brugernavn" og "password". Det er meningen at man skal oprette sig først så ens brugernavn og kodeord bliver "installeret" i mysql-tabellen. Herefter logger man sig ind helt normalt i en html-form med to felter "brugernavn" og "password".
Som sagt består loginsystemet her af 5 forskellige filer. Det er opret.php, opret-ok.php, login.php, login-ok.php og config.php. Disse 5 php-scripts arbejder sammen. F.eks. er det meningen at man skal bruge opret.php for at "installere" rækken(eller en ny) i mysql-tabellen.
Men lad os starte med at kigge specifikt på de forskellige filer.
Vi kigger på opret.php
Opret.php er egentlig ikke andet end en helt normalt html-form. Den består at 2 INPUT felter og et SUBMIT-knap som man kan navngive til hvad som helst(men som her hedder "Opret".
<form action="javascript:void(0);" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="opret" value="Opret">
</form>
Selve html formen:
opret.php
<html><head></head><body>
<form action="opret-ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="opret" value="Opret">
</form></body></html>
Det som her udnyttes ved html-formen er at alle elementer med attributten "name" bliver sendt videre til php-scriptet oplyst i action-attributten.
Som man kan se i første linie sender formen data til opret-ok.php. Dvs. at opret-ok.php modtager 3 variabler med data fra formen. Dem kan vi nemt hente i php-scriptet(hvilket også er meningen). Som man kan se har knappen navnet "opret",
dvs. at en variabel kaldet $opret nu eksisterer til rådighed for opret-ok.php. Det viser så at man skal kalde den variabel via en superglobal servervariabel - lyder det lidt langhåret lader vi det ligge indtil videre.
Lad os bare sige at opret-ok.php nu har disse variabler til rådighed:
$brugernavn med tekststrengen man skriver i feltet "brugernavn".
$password med tekststrengen man skriver i feltet "password".
$opret med tekststrengen "Opret" hvis man kom til opret-ok.php via denne form, dvs. ikke tom.
Vi kigger på opret-ok.php
Opret-ok.php er det script som opretter dig i mysql-databasen. Den tilføjer simpelthen brugernavn og password du skriver i formen fra opret.php. Men den tjekker også om brugernavnet allerede eksisterer, og hvis det gør får du det at vide.
opret-ok.php
<?php // PHP script start.
require("config.php"); // Variabler til mysql hentes
$opret = &$HTTP_POST_VARS['opret'];
if(empty($opret)) {
print "Du skal aktivere dette script vha. formen i opret.php."
?>
<br><a href="opret.php">Klik her for at oprette bruger</a>
<?php
} else {
$brugernavn = &$HTTP_POST_VARS['brugernavn']; // Brugernavn fra form i opret.php.
$password = &$HTTP_POST_VARS['password']; // Password fra form i opret.php.
if(empty($brugernavn) OR empty($password)) { //Her tjekkes om ET af felterne er tomme.
echo 'Et af felterne er tomme';}
else {
// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.
$result = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
print 'Desværre brugernavnet er optaget';
} else {
mysql_query("insert into users (brugernavn, password) values ('$brugernavn', '$password')")
or die(mysql_error());
print "Brugernavn $brugernavn er oprettet!";
?>
<a href="login.php">Klik her for at logge ind</a>
<?php
}
}
}
?>
Her ses config.php:
config.php
<?php
// MySQL Variabler
$mysql_host = "localhost"; //her skriver du host til mysql.
$mysql_user = "root"; //skriv brugernavn til mysql, default root.
$mysql_pw = ""; //skriv dit password til mysql.
$mysql_db = ""; //skriv databasen du vil bruge her.
?>
Gennemgang af opret-ok.php
require("config.php"); // Variabler til mysql hentes
Det som sker allerførst er at scriptet henter de variabler den skal bruge for at kommunikere med mysql, de ligger i config.php. Det drejer sig som sædvanlig om host, username og password til at logge ind i mysql-serveren og database navnet. Disse 4 ting er nogle du bliver nødt til at skrive selv i config.php.
$opret = &$HTTP_POST_VARS['opret'];
Herefter kommer der en linie hvor variablen $opret oprettes ved at blive defineret vha. eller via $HTTP_POST_VARS['opret']. $HTTP_POST_VARS['opret'] er tekstrengen hentet fra formen i opret.php. Man sætter et "&" foran variablen hvis man vil oprette en ny variabel som er defineret vha. af en anden. $HTTP_POST_VARS['felt'] er en suberglobal variabel som henter data fra en form. Dette kan undgås hvis man roder lidt med en parametre for PHP-compileren, men lad os blot gøre som her.
if(empty($opret)) {
print "Du skal aktivere dette script vha. formen i opret.php."
?>
<br><a href="opret.php">Klik her for at oprette bruger</a>
<?php
} else {
Vi har her den første if...else-sætning. Denne sætning kontrollerer om vores nye variabel $opret er tom. Hvis den er har den ikke værdien "Opret" defineret i html-form, value-attributen, og altså er man kommet til opret.php af andre veje. Dette er en meget løs sikkerhed og kan nemt omgås ved at definere variablen som en parameter til scriptet, så måske skulle du prøve at omdøbe variablen til tal eller noget andet. If-sætningen skriver blot noget tekst ved condition TRUE, hvorimod ved condition FALSE resten af scriptet udføres istedet... Klammen som lukker else-sætning forekommer derfor helt tilsidst lige før ?>.
$brugernavn = &$HTTP_POST_VARS['brugernavn'];
$password = &$HTTP_POST_VARS['password'];
Her oprettes de 2 variabler $brugernavn og $password vha. af den suberglobale variabel fra før.
if(empty($brugernavn) OR empty($password)) {
echo 'Et af felterne er tomme';}
else {
Her starter endnu en if...else-sætning som tjecker om enten $brugernavn ELLER $password er tomme variabler. Hvis dette er tilfældet bliver man bedt om at skrive i begge felter, hvis de begge er udfyldte eksekveres resten af scriptet... Lukke-klammen til denne else-sætningen er altså den anden sidste i bunden af opret-ok.php.
// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.
Der åbnes for MySQL-serveren(og specifik database) med parameter-værdierne sat i config.php.
$result = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());
$number = mysql_num_rows($result);
Here comes the tricky part. Det synes jeg ihvertfald. Men egentlig ikke. Det der sker her er en forespørgsel til MySQL om at lave et resultatsæt fra bestemte steder med bestemte værdier. Her menes specifikt at mysql skal vælge kolonnen "brugernavn" i tabellen users, og kigge efter rækker hvor brugernavn = $brugernavn. Alle disse rækker skal mysql lave et resultatsæt af og kalde $result. Vi får jo kun en enkelt række da der kun kan være en enkelt bruger med samme navn. Derfor kan vi med funktionen mysql_num_rows($result); få oplyst hvor mange rækker der er i resultatsættet. Dette tal gemmes i $number. Der er en række hvis brugernavnet eksisterer($number = 1, også $number < 0), og nul rækker hvis brugernavnet ikke er oprettet endnu($number = 0). Den midterste linie definerer hvad der skal ske hvis man får en fejl fra mysql: scriptet stopper simpelthen.
if ($number > 0) {
print "Desværre brugernavnet $brugernavn er optaget";
} else {
mysql_query("insert into users (brugernavn, password) values ('$brugernavn', '$password')")
or die(mysql_error());
print "Brugernavn $brugernavn er oprettet!";
?>
<a href="login.php">Klik her for at logge ind</a>
<?php
}
}
}
?>
Endnu en if...else-sætning. Denne her tjecker om $number er større end nul. Hvis dette er tilfældet eksisterer brugernavnet jo allerede og man får en fejl meddelelse. Else-sætningen eksekveres hvis $number ikke er større end nul(altså nul i dette tilfælde). Dette betyder jo også at $brugernavn ikke fandtes i kolonnen brugernavn, og derfor kan denne oprettes. Linie 4 øverst er en besked til mysql om at indsætte $brugernavn og $password ind i tabellen users i hhv. kolonnerne brugernavn og password(egentlig skrevet omvendt end forespørgslen til mysgl)...
Her ses også at ved fejl stopper scriptet. Herefter skrives teksten: Brugernavn $brugernavn er oprettet!, og man får mindsandten et link videre til login.php.
Herefter kommer 3 lukke-klammer, den første til denne else-sætning, derefter til else-sætningen i toppen hvor scriptet blev eksekveret hvis begge felter var udfyldte. Den sidste klamme lukker den allerførste else-sætning hvor scriptet kun blev eksekveret hvis $opret ikke var tom.
Lad os gå videre til login.php.
Vi kigger på login.php
Login.php er faktisk af samme type som opret.php, men denne skal bruges til at logge eksisterende brugere ind med. Login.php består af en helt normalt html-form.
<form action="javascript:void(0);" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="login" value="Login">
</form>
Selve html formen:
login.php
<html><head></head><body>
<form action="login-ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="login" value="Login">
</form></body></html>
Her ses at den eneste forskel er hvilket php-script som modtager variabler, og så er variablen $opret ændret til $login. Den bruges på samme måde i login-ok.php.
Vi kigger på login-ok.php
Login-ok.php er ikke overraskende nok scriptet som tjecker om det skrevne brugernavn og password faktisk eksisterer i mysql-tabellen. Jeg vil gennemgå denne fil ligesom jeg gjorde det med opret-ok.php.
login-ok.php
<?php // PHP script start.
require("config.php"); // Variabler til mysql hentes
$login = &$HTTP_POST_VARS['login'];
if(empty($login)) {
echo 'Denne side kræver login adgang'; }
else {
$brugernavn = &$HTTP_POST_VARS['brugernavn']; // Brugernavn fra form i login.php.
$password = &$HTTP_POST_VARS['password']; // Password fra form i login.php.
if(empty($brugernavn) OR empty($password)) { //Her tjekkes om ET af felterne er tomme.
echo 'Et af felterne er tomme'; }
else { // Denne klamme starter alt script der udføres HVIS begge felter er udfyldte.
// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.
// Hvis brugernavn skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
// Hvis password skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_pw = mysql_query("select password from users where password = '$password'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
// Her sker det egentlige tjeck om brugernavn og password er dem som står i databasen.
// Der oprettes først et array med de data vi fik fra mysql før.
$array_user = mysql_fetch_array($result_user); // Først et med brugernavn.
$array_pw = mysql_fetch_array($result_pw); // Og et med password.
// Her tjeckes så om både array med brugernavn og password indeholder data
// magen til dem skrevet i felterne i html-formen
// PASSWORD KONTROL
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
echo 'korrekt password'; // Brugernavn og password passede!!
} // Her lukker vi condition TRUE fra password kontrol
else { // Her starter condition FALSE på password kontrol
echo 'forkert password';
} // Her lukkes condition FALSE på password kontrol.
} // Her lukker vi for condition FALSE på tomme-felter-tjek.
}
?>
Gennemgang af login-ok.php
require("config.php"); // Variabler til mysql hentes
$login = &$HTTP_POST_VARS['login'];
Her modtager scriptet de variabler den skal bruge til at åbne for mysql-serveren, og $login oprettes og defineres vha. af den superglobale variable der blev nævnt i gennemgang af opret-ok.php.
if(empty($login)) {
echo 'Denne side kræver login adgang'; }
else {
Vi benytter her $login og tjekker om denne er tom. Hvis den er kommer der en fejlmeddelelse og scriptet kommer ikke videre. Hvis $login ikke er tom får resten af scriptet lov til at køre(akkurat ligesom i opret-ok.php).
$brugernavn = &$HTTP_POST_VARS['brugernavn']; // Brugernavn fra form i login.php.
$password = &$HTTP_POST_VARS['password']; // Password fra form i login.php.
Variablerne $brugernavn og $password oprettes og defineres vha. af data fra formen...
if(empty($brugernavn) OR empty($password)) { //Her tjekkes om ET af felterne er tomme.
echo 'Et af felterne er tomme'; }
else { // Denne klamme starter alt script der udføres HVIS begge felter er udfyldte.
Her tjeckes igen om et af felterne er tomme. Hvis ja så kommer der en fejlmeddelelse, ellers får resten af scriptet lov til at køre.
// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.
// Hvis brugernavn skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
// Hvis password skrevet i feltet eksisterer i tabellen, hentes denne række ud.
$result_pw = mysql_query("select password from users where password = '$password'")
or die (mysql_error()); // Her stoppes scriptet ved fejl fra mysql-server.
Her åbnes allerførst for adgang til mysql-serveren og databasen. Herefter beder vi igen mysql om at oprette specifikke resultatsæt. Denne gang skal vi bruge 2 styks, en for brugernavn og en for password. $result_user er defineret som enkelt række men kun med data fra kolonnen "brugernavn", som er ligmed $brugernavn. Det er samme med $result_pw, blot er det istedet i kolonnen password, og rækken med data som er ligmed $password. Det forgår altsammen i tabellen users. Her stoppes scriptet også ved fejl fra mysql.
// Der oprettes først et array med de data vi fik fra mysql før.
$array_user = mysql_fetch_array($result_user); // Først et med brugernavn.
$array_pw = mysql_fetch_array($result_pw); // Og et med password.
Her oprettes så to arrays eller lister med brugernavn og password. Det skal forstås på den måde at hvergang man kalder f.eks. mysql_fetch_array($result_user);, så tildeles dette array nye værdier som måtte stå i næste række i resultatsættet $result_user. Der er så kun en enkelt række i $result_user(og $result_pw) men ideen er den samme. De 2 nye arrays vil fungere sådan at de får nogle keys med kolonnerne i resultatsættet, altså får $array_user en enkelt key ['brugernavn'] og $array_pw får ['password'].
// Her tjeckes så om både array med brugernavn og password indeholder data
// magen til dem skrevet i felterne i html-formen
// PASSWORD KONTROL
if($array_user['brugernavn'] == $brugernavn AND $array_pw['password'] == $password) {
echo 'korrekt password'; // Brugernavn og password passede!!
} // Her lukker vi condition TRUE fra password kontrol
else { // Her starter condition FALSE på password kontrol
echo 'forkert password';
} // Her lukkes condition FALSE på password kontrol.
} // Her lukker vi for condition FALSE på tomme-felter-tjek.
}
?>
Her bruger vi så de 2 arrays, hvor vi opstiller en if...else sætning som tjecker om både $brugernavn og $password er ligmed de data som står oplistet i det pågældende array. Der er sat et AND ind, hvilket jo betyder at begge logiske udsagn skal være sande for at condition TRUE eksekveres.
Efter dette komme else-sætningen som jo eksekveres hvis $brugernavn og $password ikke var og finde i mysql-tabellen. Tilsidst lukkes begge else-sætninger hvor den sidste tilhører den første hvor $login ikke måtte være tom for at resten(næsten det hele) af scriptet kunne eksekvere. Samme terminologi blev benyttet i opret-ok.php.
Installation af scripts
Jeg har ikke direkte mulighed for evt. at zippe filerne og lægge et link her. Det du gør istedet er at kopiere teksten fra boksene med de hele filer. Dette gøres med alle 5 filer. du navngiver disse filer og gemmer dem i et bibliotek for sig.
Herefter skal du have oprettet en tabel i en mysql database. Dette kan gøres på mange måder. Den jeg bruger selv er at paste følgende tekst ind i phpMyAdmin.
CREATE TABLE users (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
Dette opretter tabellen users, men du må så selv vælge hvilken database det sker i. Husk og skriv de relevante data i config.php, så kan det vist ikke gå helt galt.
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (46)
En fin artikel... Hjalp mig meget.. Jeg sad fast i 2 timer i det med superglobale servervariabler. Sidst jeg kodede php kunne man bare kalde en variabel med $variabelnavn
Fin artikel. thumbs up
det er en god artikkel men i mit bruger system vil jeg bruge session
har siddet i mange timer nu.. omkring 4 tror jeg.. har virkelig hjlupet mig videre.. thx!!
Udemærket skriv.
Dog vil jeg mene at login-ok er lidt for kringlet. Der er ingen grund til at udføre 2 SQL kald. Så vidt jeg kan se er username unikt, derfor et enkelt opslag med select *. Derved overføres både username samt pw til array.
Hm....er det ikke god skik at lukke for sin MySQL database så hurtigt som muligt efter brug? Det vil jeg mene din artikel mangler!
Ellers glimrende artikel
cool,nice,hardcore,sej,fin,dejlig,fantastic,great......
Denne artikel er kun værd at lære af hvis man er nybegynder på et lavt stadie..men LAD VÆRE med at hugge den direkte her fra fordi selv jeg kan bryde det der! Prøv at hugge det hele og lav en bruger ved navn hej og koden hej igen. Lav en ny bruger: dav kode: halløj. Prøv at bruge hej's kode= hej igen på brugeren dav. hovsa nu bruger alle brugere samme kode eller det kan de i hvert fald.
meget fed side men det er en god ide at have grundlæggende kendskab til php det fås hos www. webcafe.dk ellers en fed artikel
Jeg skrev denne artikel for snart - ja meget lang tid siden. Den er sjov at læse, men også lidt træls. Jeg har programmeret i PHP siden jeg skrev artiklen og mine metoder har udviklet sig meget siden... Men det lader til at artiklen stadig kan bruges af nybegyndere i PHP og det er jo godt.
Mvh Ole Buus
Jeg har lige et spørgsmål.
Jeg har læst den igennem, og må sige at den er let læseligt
Men... er der ikke en "fejl" når den kontrolleres efter password?
Så vidt jeg lige kan se, så skal brugernavn og password bare være i tabellen users, men ikke nødvendigvis passe sammen.
God artikel....den har hjulpet jeg mig meget, men en ting.... hvordan laver man den side der skal komme efter man har logget ind?
Rigtig god artikel, er ny i php så det var så nemt så det kunne være, så skal der bare fyldes noget mere loginsystem på, altå ligesom her på udvikleren.dk... Ikk rigtig nogen artikel om det ;\\
Hvorfor er Password ikke krypteret ?
kunne man ikke bare tjekke rækken hvor brugernavn =brugernavn AND password=password ?
God artikel hjalp mig meget... men den mangler bare lidt mere sikkerhed
men god artikel og den er nem at læse
Hmm.. En fin artikel hvis man vil lære lidt om hvordan man kan sammenkoble php og mysql, men det er absolut ikke et system jeg kan anbefale at bruge til andet end test. Der mangler meget sikkerhed... Bla. bliver passwords ikke krypteret, og brugernavn+password behøver ikke passe til hinanden (bruger1 kan logge ind med bruger2's password).
Som XyborX også skriver, så er det en fin artikel til, at lære lidt samspil mellem PHP og MySQL, men jeg synes det er vigtigt at understrege, at ovenstående KUN bør anvendes som en "øvelsesopgave", da der i høj grad mangler sikkerhed, heriblandt kryptering førend det vil kunne anvendes på ansvarlig vis i virkeligheden.
hey er det sådan at man skal godkende brugeren først?
for sådan kunne jeg måske godt tænke mig at have det..!
Artiklen var nem at forstå, og så virkede den bare i første forsøg... Det kunne ikke være bedre...
MVH Emilbp
Kanon artikel....en klar 5´er herfra!
Hvordan includer jeg den i mit design så den ikke går væk fra mit design når du trykker "Login" eller "Opret"?
MSN = Redtag@e-mail.dk
P.S. god Artikel = 5 ...
Det er jo ikke smart at man kan:
oprette to bruger ved navn hmm og asd
også ved hjælp af hmm's kode kan man logge ind på asd
Jaeh. Så længe man kan logge ind med brugernavn og adgangskode som ikke hører sammen, så er systemet ubrugeligt.
Går sådan, når du henter adgangskoden fra databasen:
mysql_query("SELECT password FROM tabel WHERE username='$username'");
Sammenlign derefter det hentede password med det indtastede.
God artikkel! du forklarer det hele grundigt, den får 4
2 tal herfra..... Du kan godt begynde at tænke i skikkerhed, man kan lave sql injection, og man skal sku næsten ikke trykke på nogle taster, før den er hacket! Addddd!
Skide god artikel gav den 5! den lærte mig en heldel!
Tak herfra!
Synes det er et godt script, men som nævnt skal man lige ændre lidt i det for at det fungerer helt optimalt.
4 herfra
Kan ikke få sql'en til at virke??
Den retunerer 'id'!!!!!!!!!!!
Hej med jer. Jeg kunne godt tænke mig at lave det brugersystem men det er ikke fordi at jeg er særlig god til alt det der HTML osv. Så jeg ville spørge om der var nogen som kunne sætte det ind på min side. I skal bare lige have koderne til administratorsiderne og så kan i sætte den ind.
For når jeg sætter det ind kopirer jeg kun og sætter ind og så trykker jeg gem. Men så kan jeg se at brugersystemet er der 2 gange og man kan oprette sig 2 gange men når jeg prøver at oprette mig selv skriver den ¨siden kan ikke vises¨. Og så må der også gerne være en side og nogle specielle ting som man kun kan hvis man er oprettet sig som bruger derinde.
MvH Habudu
Det er ikke for at ødelægge din mega gode artikkel som selv jeg kan finde ud af, men når jeg sætter MySQL ind i PHPmyAdmin så skriver den følgende:
Fejl
SQL-forespørgsel:
CREATE TABLE users(
id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)
MySQL returnerede:
#1067 - Invalid default value for 'id'
Jeg ved godt dette lyder mærkeligt men jeg kan stadig ikke finde ud af det. Jeg er os nybegynder
Meget godt system for nybegyndere...
Jeg fik det til at virke på første forsøg..
Sad oppe hele morgenen
Det er meget nemmere en et andet jeg har prøvet..
nu kan det godt være jeg er dum men det blev jeg ikke klog på hvor dan sætter man det ind og hvordan gør man det med koderne????
jeg faar foelgende fejl i phpmyadmin:
Fejl
SQL-forespørgsel:
CREATE TABLE users(
id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)
MySQL returnerede:
#1067 - Invalid default value for 'id'
jeg faar foelgende fejl i phpmyadmin:
Fejl
SQL-forespørgsel:
CREATE TABLE users(
id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)
MySQL returnerede:
#1067 - Invalid default value for 'id'
undskyld ^^^^
Fedest!
lige hvad jeg manglede
og så uden at det var på engelsk
det var genialt forklaret (jeg er helt ny og jeg tror faktisk jeg forstod alt det der PHP noget!!!)
5/5
MySQL returnerede:
#1067 - Invalid default value for 'id'
er der ikke nogle der gider fortælle os med problemer hvordan man ellers kan oprætte den tabel med de rækker???
---
CREATE TABLE users(
id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)
---
Commanden "auto_increment" er ændret i mysql nyere versioner så nu skal den defineres sådan her:
CREATE TABLE users(
id int( 10 ) unsigned NOT NULL PRIMARY KEY auto_increment,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
)
For når man tænker over det "man kan ikke multiplicere et 0"
Håber dette hjalp...
---
CREATE TABLE users(
id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)
---
Commanden "auto_increment" er ændret i mysql nyere versioner så nu skal den defineres sådan her:
CREATE TABLE users(
id int( 10 ) unsigned NOT NULL PRIMARY KEY auto_increment,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
)
For når man tænker over det "man kan ikke multiplicere et 0"
Håber dette hjalp...
Hej,
Hvor skal man skrive sin databse oplyniger, fx. navnet osv.
Hmm hvordan kan det være, når jeg laver en fil i php, fx eksempel.php, at man så kun kan dowenloade den?
Mankan jo ikke indsætte den på ens design?. hvis man vil have den ind på sin side, skal man jo til at lave hele sin hjemmeside forefra
Findes der ikke en nemmere måde? den her er jo monster svær at forstå ??
Mankan jo ikke indsætte den på ens design?. hvis man vil have den ind på sin side, skal man jo til at lave hele sin hjemmeside forefra
Hej kære,
komplimenter af dagen, håber jeg, Ur fint derovre, jeg vil gerne præsentere mig selv til dig, mit navn er Natasha fra Monrovia, det er mig en fornøjelse at skrive til dig efter at have set din profil i (www.udvikleren.dk), som virkelig interesserer mig i, at venskab med dig, hvis du har lyst til mig, så vi kan komme til at kende hinanden bedre og se, hvad der skete i future.i vil være meget glad, hvis du kan skrive mig via min e-mail for nemmeste kommunikation og til at fortælle dig mere om mig selv og sende dig mit billede, vil jeg være venter på at høre fra dig tak og har en god dag, din nye ven.
Natasha
Her er min e-mail, (natashajohnson@she.com)
_________
Hello My Dear,
compliments of the day, I hope Ur doing fine over there, I would like to introduce myself to you, my name is Natasha from Monrovia, it is my pleasure to write you after viewing your profile in(www.udvikleren.dk)which really interest me in, to friendship with you if you have the desire with me so we can get to know each other better and see what happened in future.i will be very glad if you can write me through my email for easiest communication and to tell you more about myself and send you my picture, I will be waiting to hear from you thanks and have a good day, your new friend.
Natasha
Here is my Email,(natashajohnson@she.com)
Du skal være
logget ind for at skrive en kommentar.