webForumDet fria alternativet

Kan någon hitta felet?

PHP

13 svar · 325 visningar · startad av jiggan

Medlem sedan juni 2003175 inlägg
Frågan#1

detta felet kommer upp när man registrerat sig och försöker logga in...

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\apache\htdocs\check_login.php on line 6

koden ser ut så här:

<?php
session_start();

$link = mysql_connect ("127.0.0.1", "root", "");
mysql_select_db("test", $link);
$sql="SELECT user FROM users WHERE user=$_POST['user'] AND pass1=$_POST['pass']
$resultat = mysql_query($sql, $link);

if(mysql_num_rows($resultat)==0)
{
header("Location: index.php);
exit;
}
else
{
$_SESSION['status'] = "online";
$_SESSION['userid'] = $resultat['userid'];

header("Location: user_index.php");
}

?>
<?php
mysql_close ($link);
?>

någon som kan se felet?

mvh
/
jiggan

Medlem sedan aug. 2001153 inlägg
#2

$sql="SELECT user FROM users WHERE user=$_POST['user'] AND pass1=$_POST['pass']

Saknas "; på slutet

dvs

$sql="SELECT user FROM users WHERE user=$_POST['user'] AND pass1=$_POST['pass']";

Och använd [php]... snälla? :bire

Medlem sedan okt. 20023 030 inlägg
#3

Raden

$sql="SELECT user FROM users WHERE user=$_POST['user'] AND pass1=$_POST['pass']

ska vara

$sql="SELECT user FROM users WHERE user='".$_POST['user']."' AND pass1='".$_POST['pass']."'";
Medlem sedan sep. 20021 655 inlägg
#4

Du avslutar aldrig SQL-satsen. Dessutom måste du i SQL-satsen visa att POST-variablerna är strängar. Sedan är det onödigt att använda mysql_close()

<?php 
session_start(); 

$link = mysql_connect ("127.0.0.1", "root", ""); 
mysql_select_db("test", $link); 
$sql="SELECT user FROM users WHERE user='".$_POST['user']."' AND pass1='".$_POST['pass']."'";
$resultat = mysql_query($sql, $link); 

if(mysql_num_rows($resultat)==0) 
{ 
header("Location: index.php); 
exit; 
} 
else 
{ 
$_SESSION['status'] = "online"; 
$_SESSION['userid'] = $resultat['userid']; 

header("Location: user_index.php"); 
} 

?>

EDIT:
Massor av folk (två) hade redan hunnit svara ser jag.

Medlem sedan aug. 2001153 inlägg
#5

mysql_close() är väl fel och klaga på, skall det vara rätt så skall det vara rätt :)

Medlem sedan juni 2003175 inlägg
#6

Nexus86:s exempel fungerade "bäst"...jag fick nämligen ett annat meddelande nu ;)

Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\apache\htdocs\check_login.php on line 16

nu ser koden ut så här:

<?php
session_start();

$link = mysql_connect ("127.0.0.1", "root", "");
mysql_select_db("test", $link);
$sql="SELECT user FROM users WHERE user='".$_POST['user']."' AND pass1='".$_POST['pass'];
$resultat = mysql_query($sql, $link);

if(mysql_num_rows($resultat)==0)
{
header("Location: index.php);
exit;
}
else
{
$_SESSION['status'] = "online";
$_SESSION['userid'] = $resultat['userid'];

header("Location: user_index.php");
}

?>
<?php
mysql_close ($link);
?>

Medlem sedan sep. 20021 655 inlägg
#7

mysql_close() gör ju ingen skada, men som sagt är det onödigt att ha med.

Raden med SQL-satsen är fortfarande inte helt rätt:

$sql="SELECT user FROM users WHERE user='".$_POST['user']."' AND pass1='".$_POST['pass']."'";

Sen undrar jag vad $resultat['userid'] ska ge för något.

Medlem sedan mars 20025 907 inlägg
#8

jiggan skrev:

Nexus86:s exempel fungerade "bäst"

Varför kör du inte på hans kod då? Du har fortfarande en felaktig sql-sats.

$sql="SELECT user FROM users WHERE user='".$_POST['user']."' AND pass1='".$_POST['pass']."'";

Vilken är rad 16?

Medlem sedan juni 2003175 inlägg
#9

min sql sats är precis som dem ni skrivit ovan...
men jag får meddelande om rad 16 ju...

Medlem sedan sep. 20021 655 inlägg
#10

Nä, de ser inte exakt likadana ut.
Nexus86 råkade skriva fel först, och redigerade sitt inlägg, så därför har du fortfarande fel.

Raderna skiljer sig åt i slutet.

EDIT: Eller... det är nog $resultat['user_id'] som gör felet.
Som jag tidigare frågade: vad är det tänkt att du ska få ut ifrån det?

Medlem sedan juni 2003175 inlägg
#11

jag ska slänga in det i databasen och använda för att få unika sidor för användarna...ska fixa till det...

Medlem sedan mars 20032 667 inlägg
#12

jiggan skrev:

jag ska slänga in det i databasen och använda för att få unika sidor för användarna...ska fixa till det...

Jo, men du hämtar aldrig värdet i sql-frågan. Du hämtar bara user. ;)

Medlem sedan sep. 20021 655 inlägg
#13

För det första hämtar du aldrig userid ifrån tabellen, och för det andra försöker du ändå hämta värdet på fel sätt. $resultat innehåller mysql-svaret, och sedan måste du använda någon funktion (t ex mysql_fetch_array()) för att hämta information ifrån mysql-svaret.

Medlem sedan okt. 20023 030 inlägg
#14

Ett fel är raden

header("Location: index.php);

Den ska vara

header("Location: index.php");

D.v.s du glömde avsluta strängen. :)

266 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)