$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
13 svar · 325 visningar · startad av jiggan
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
$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
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']."'";
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.
mysql_close() är väl fel och klaga på, skall det vara rätt så skall det vara rätt :)
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);
?>
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.
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?
min sql sats är precis som dem ni skrivit ovan...
men jag får meddelande om rad 16 ju...
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?
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...
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. ;)
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.
Ett fel är raden
header("Location: index.php);
Den ska vara
header("Location: index.php");
D.v.s du glömde avsluta strängen. :)