/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
spot fejlen
Fra : zlug
Vist : 761 gange
170 point
Dato : 09-07-05 21:01

Kode
<html>
<head>
</head>
<body>
<?php
print "
<form action=\"tjek.php?handling=nybruger\" method=\"post\">
name:<br />
<input type=\"text\" name=\"navn\" /><br />
kodeord:<br />
<input type=\"password\" name=\"pass\" /><br />
<input name=\"submit\" type=\"submit\" value=\"opret\" />
</form>";
?>
</body>
</html>


Kode
<?php
$db = mysql_connect("localhost", "", "");
mysql_select_db("thegame",$db);

switch ($_GET[handling]) {

case "updatemap":
$result = mysql_query("UPDATE map$_GET[map] SET type='$type', mode='$mode', special='$special' WHERE id='$_GET[red]'",$db);
header("Location:mapdesigner.php?map=$_GET[map]");
break;

case "nybruger":
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('$_POST[navn]', password('$_POST[pass]'), 'map0010910')",$db);
header("Location:ny_bruger.php");
break;
}

?>


hvad sker der så... well jeg ryger tilbare til ny_bruger.php (hvilket jo også er meningen) men der sker intet i databasen.....

det er ved at drive mig til vanvid

 
 
Kommentar
Fra : funbreak


Dato : 12-07-05 10:26

Opbygning af SWITCH var forkert,
her er en redigeret udgave af din kode.
Kode
<?php
$db = mysql_connect("localhost", "", "");
mysql_select_db("thegame",$db);

switch ($_GET[handling]) {

case "updatemap" :
{
$result = mysql_query("UPDATE map$_GET[map] SET type='$type', mode='$mode', special='$special' WHERE id='$_GET[red]'",$db);
header("Location:mapdesigner.php?map=$_GET[map]");
break;
}
case "nybruger" :
{
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('$_POST[navn]', password('$_POST[pass]'), 'map0010910')",$db);
header("Location:ny_bruger.php");
break;
}
default: {}
}

?>


Kommentar
Fra : zlug


Dato : 12-07-05 11:30

nope.. det hjalp ikke... der sker stadig ikke noget i databasen

Kommentar
Fra : funbreak


Dato : 12-07-05 14:36

Kode
<?php
$db = mysql_connect("localhost", "", "");
mysql_select_db("thegame",$db);

switch ($_GET[handling]) {

case "updatemap" :
{
$map_get=$_GET['map'];
$mapType = "map".$map_get;
$result = mysql_query("UPDATE $mapType SET type='$type', mode='$mode', special='$special' WHERE id='".$_GET['red']."'");
header("Location:mapdesigner.php?map=$map_get");
break;
}
case "nybruger" :
{
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('".$_POST['navn']."', password('".$_POST['pass']."'), 'map0010910')");
header("Location:ny_bruger.php");
break;
}
default: {}
}
?>



Kommentar
Fra : zlug


Dato : 12-07-05 18:43

stadig ingen efekt

Kommentar
Fra : funbreak


Dato : 13-07-05 10:38

Du mangler at overfør variablen $_GET['map']

til det her script
Kode
<?php
$db = mysql_connect("localhost", "", "");
mysql_select_db("thegame",$db);

switch ($_GET[handling]) {

case "updatemap" :
{
$map_get=$_GET['map'];
$mapType = "map".$map_get;
$result = mysql_query("UPDATE $mapType SET type='$type', mode='$mode', special='$special' WHERE id='".$_GET['red']."'");
header("Location:mapdesigner.php?map=$map_get");
break;
}
case "nybruger" :
{
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('".$_POST['navn']."', password('".$_POST['pass']."'), 'map0010910')");
header("Location:ny_bruger.php");
break;
}
default: {}
}
?>


Kommentar
Fra : funbreak


Dato : 13-07-05 10:45

Ups!, der ligger jo en mega fejl i den mysql_query
Kode
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('".$_POST['navn']."', password('".$_POST['pass']."'), 'map0010910')");


Ændre den til det her

Kode
$navn = $_POST['navn'];
$pass = $_POST['pass'];
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('$navn', '$pass', 'map0010910')");


Kommentar
Fra : zlug


Dato : 13-07-05 12:32

den øverste kode (map) fungere fint (og har hele tiden gjort det) så det vil være hulv i hovedet at endre det og hvad den nederste andgår har jeg i en anden samenhend brugt:
Kode
$sql =mysql_query("INSERT INTO login (nick, pass) VALUES ('$_POST[nick]', password('$_POST[pass]'))",$db);

og dengang fungerede det også fint... så det kan heller ikke være problemet

Kommentar
Fra : funbreak


Dato : 13-07-05 12:51

Her ligger du jo bare mysql_query ind i en variable, så sker der ikke mere med den.
Kode
$result =mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('$navn', '$pass', 'map0010910')");

1. udfør noget på $result
2. udfør en direkte mysql kald (fjern '$result=')
Kode
direkte mysql kald
mysql_query("INSERT INTO char (navn, pass, kordinater) VALUES ('$navn', '$pass', 'map0010910')");



Kommentar
Fra : zlug


Dato : 13-07-05 13:01

som ilustrer i map koden oven for (og i alle andre database realateret koder jeg har lavet) så sker det også direkte selvom det står i en variabel..

men for ikke at virke modstridne har jeg testet dit forslag..... stadig intet

Accepteret svar
Fra : funbreak

Modtaget 170 point
Dato : 13-07-05 14:01

Ja, vi har jo vær sin måde at stykke kode sammen.

Glem alt det forgående kode & info.

HER DIN FEJL 'char',
'char' er en funktion i mysql og det betyder at du ikke må bruge den i et tabel navn,
ændre navn tabelen 'char' til noget andet
Citat
11.4.1. The CHAR and VARCHAR Types
The CHAR and VARCHAR types are similar, but differ in the way they are stored and retrieved. As of MySQL 5.0.3, they also differ in maximum length and in whether trailing spaces are retained.

The CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters. (Before MySQL 4.1, the length is interpreted as number of bytes.)

http://dev.mysql.com/doc/mysql/en/char.html


Jeg satte begge script & mysql tabel op og sat min REAL-TIME php debugger til køre,
der kom en fejl-melding tilbage fra mysql-serveren (ERROR 1064).

Godkendelse af svar
Fra : zlug


Dato : 13-07-05 16:22

det virkede....

efter så mange dage (og så mange folk der har gloet på det uden at komme med svar) kan jeg næsten ikke takke dig nok

derfor forhøjede jeg lige med 20 proing før jeg accepterede dit svar og giver dig 5 stjerner

Kommentar
Fra : funbreak


Dato : 13-07-05 16:34

Tak

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407848
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste