Avatar billede ohhelpme Nybegynder
09. august 2008 - 23:54 Der er 22 kommentarer og
1 løsning

hvad er der galtt med denne php kode

Hej,:)
hvad er der galt med denne php kode
___________________________________

</head><body>
<?php session_start();
$link = mysql_connect("mysql3.000webhost.com", "a1120621_admin", "bøh");
mysql_select_db("a1120621_talk", $link);
if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
header("location. ");
exit;
}
else
{
$user = mysql_real_escape_string($_POST['brugernavn']);
$pass = mysql_real_escape_string($_POST['kodeord']);
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='".$user."' AND kodeord = '".$pass."' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($query) == '1'))
{
$_SESSION['brugernavn'] = $_POST['brugernavn'];
header("location: indextjek_php_123456789987654321147852369951753456852___________________________________________________________________________________________________________tjek123456789987654321");
}
else
{
header("location. ");
exit;
}
}
?>
<?php $link = mysql_connect("mysql3.000webhost.com", "a1120621_admin", "bøh");
mysql_select_db("a1120621_talk", $link);
?><?php session_start();
$link = mysql_connect("mysql3.000webhost.com", "a1120621_admin", "bøh");
mysql_select_db("a1120621_talk", $link);
if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
header("location. ");
exit;
}
else
{
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
if(mysql_num_rows($query) == '1'))
{
$row = mysql_fetch_array($query);
if($row['kodeord'] == $_POST['kodeord'])
{
$_SESSION['brugernavn'] = $_POST['brugernavn'];
header("location: /mylogin/indextjek_php_123456789987654321147852369951753456852___________________________________________________________________________________________________________tjek123456789987654321.php");
}
else
{
header("location. ");
exit;
}
}
else
{
header("location. ");
exit;
}
}
?>
</body></html>
Avatar billede janpolsen Nybegynder
10. august 2008 - 00:14 #1
Tja... Hvor skal man starte? :)

1. Du burde i hvert fald nok ikke have postet login og password til din database
2. *Linjerne* (15 og 40) med "if(mysql_num_rows($query) == '1'))", har en slut-parentes for meget
3. Dine "header("location. ");" giver ingen mening. Korrekt anvendelse af header() er "header("Location: {$url}");", hvor $url så er den adresse der skal hoppes til.
4. Linje 18, hvor du næsten bruger header() korrekt, ser yderst spøjs ud. URLen du har angivet kan i hvert fald give problemer.

Det var bare lige til at starte med... Er der noget af det der løser dit problem?
Avatar billede ohhelpme Nybegynder
10. august 2008 - 01:08 #2
sorry, er ny til php, så hvon ser en "slut-parentes" ud? :)
Avatar billede cot Nybegynder
10. august 2008 - 09:12 #3
det er ikke bare det det hedder i php, hedder det også normalt, men en startparantes er: (

Og en slutparantes: )

dvs, at koden burde se sådan ud:
if(mysql_num_rows($query) == '1')

Altså i linje 15+40
Avatar billede dkfire Nybegynder
10. august 2008 - 11:16 #4
Du bør starte med at slå visning af fejlbeskeder til.
Så vil du se at du bestemt ikke kan have session_start() og header() der hvor du bruger dem.
Når du bruger de to funktioner må du under ingen omstændigheder have send noget til browseren. Dvs ingen html kode eller tomme linjer før.
Avatar billede ohhelpme Nybegynder
10. august 2008 - 22:04 #5
okey, er totalt lost,
så kunne være fedt, vis der var en der kuune forklare mig helt fra bunden, om hvodan man laver et sikkert log ind system.
gerne hvor brugerne selv kan, redigere deres profiltekster.
Avatar billede ohhelpme Nybegynder
10. august 2008 - 22:07 #6
sorry, skal stå profiler, i stedet for profiltekster.
Avatar billede olebole Juniormester
10. august 2008 - 22:54 #7
<ole>

Det lyder umiddelbart, somom du burde købe et par hæfter/bøger om PHP og lære det aller mest grundlæggende  ;o)

/mvh
</bole>
Avatar billede ohhelpme Nybegynder
11. august 2008 - 14:00 #8
hvor kan jeg nu ikke tilføje denne kode i MySQL koden:
______________________________________________________-

CREATE TABLE users (
id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
brugernavn varchar(16),
password varchar(16),
PRIMARY KEY (id)
)
Avatar billede w13 Novice
11. august 2008 - 14:03 #9
Fordi det er en SQL-sætning og den skal derfor indsættes som en sådan. Men du bør nok følge Oleboles råd.
Avatar billede ohhelpme Nybegynder
11. august 2008 - 14:13 #10
jeg har faktisk prøvet, at insætte den som du siger, men MySQL afviser den.
Avatar billede w13 Novice
11. august 2008 - 14:15 #11
Med hvilken fejl?
Avatar billede ohhelpme Nybegynder
11. august 2008 - 14:18 #12
den siger:

Error
SQL query:

CREATE TABLE users(

id int( 10 ) unsigned DEFAULT '0' NOT NULL AUTO_INCREMENT ,
brugernavn varchar( 16 ) ,
PASSWORD varchar( 16 ) ,
PRIMARY KEY ( id )
)

MySQL said: 

#1067 - Invalid default value for 'id'
Avatar billede w13 Novice
11. august 2008 - 14:19 #13
Så prøv at fjerne DEFAULT '0' som den siger.
Avatar billede w13 Novice
11. august 2008 - 14:22 #14
Et auto_increment-felt skal jo heller ikke have en default-værdi.
Avatar billede ohhelpme Nybegynder
11. august 2008 - 14:23 #15
sorry, mig der dum :)
Avatar billede w13 Novice
11. august 2008 - 14:23 #16
Fungerer det så? :)
Avatar billede ohhelpme Nybegynder
11. august 2008 - 14:38 #17
ja,
men nu kan den ikke kontakte MySQL, kan det være fordi MySQL og FTP ligger på 2 forskelige servre, med 2 forskelige URL´er?
Avatar billede w13 Novice
11. august 2008 - 14:50 #18
Kunne jeg godt forestille mig, men det er svært at sige.
Avatar billede ohhelpme Nybegynder
11. august 2008 - 15:18 #19
ok,
Avatar billede ohhelpme Nybegynder
21. august 2008 - 17:30 #20
hva' er der nu galt med denne kode:
_________________________________________

<?
mysql_connect("server", "brugernavn", "password"); mysql_select_db("databasenavn");
$result = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
?>
<html>
<head>
<title>opret-ok.php</title>
</head>
<body>
<br>
Velkommen du er logget ind!!
<br>
</body>
</html>
<br>
<?
print "Desværre brugernavnet er optaget";
} elseif ($brugernavn && $password) {
mysql_query("insert into users (brugernavn, password) values ('$brugernavn', '$password')")
or die(mysql_error());
} else {
print "Du skal udfylde alle felterne!!";
}
?>
Avatar billede w13 Novice
21. august 2008 - 17:44 #21
Det ved jeg ikke. Hvad sker der, når du prøver den?
Avatar billede ohhelpme Nybegynder
21. august 2008 - 18:00 #22
den siger:
Fatal error: Unknown: Failed opening required '/www/talk.net84.net/mylogin/=/opret_tjek.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in Unknown on line 0
Avatar billede ohhelpme Nybegynder
23. november 2008 - 19:54 #23
ryder op ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester