Precis som koden skriver finns det en } för mycket
while ($variable = mysql_fetch_array($result)){
$oldpass = $variable['pass'];
}} else { // HÄR!
$error = 1;
}
14 svar · 369 visningar · startad av FunTrix
tja...
någon som hittar felet i phpkoden nedan...
får nämlingen upp följande fel...
Parse error: syntax error, unexpected '{' in d:\webhosting\upload\options\index.php on line 110
rad 110 är denna: If(($_POST['newpass'] == $_POST['newpass2']) && ($_POST['oldpass'] == $oldpass){
skickar med hela phpkoden ifall att det hjälper, tror nämligen att det möjligtvis kan finnas fler fel i koden så vore schysst om ni kolla igenom den...
<?php
session_start(); // Alltid överst på sidan
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])) {
header("Location: ../index.php");
exit;
}
// ta fram user information.
$user = $_SESSION['sess_user'];
include "../conn.php"; // Databasanslutningen
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<p><span class="style6">
<?
$pass = md5($_POST['pass']);
$sql = "SELECT * FROM `uploadmembers` WHERE user='{$user}'";
$result = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($result) == 0){
while ($variable = mysql_fetch_array($result)){
$oldpass = $variable['pass'];
}} else {
$error = 1;
}
If(($_POST['newpass'] == $_POST['newpass2']) && ($_POST['oldpass'] == $oldpass){
$sql = "UPDATE uploadmembers SET pass='{$pass}' WHERE user='{$user}'";
$result = mysql_query($sql) or die(mysql_error());
$error = 0;
} else {
If ($_POST['newpass'] <> $_POST['newpass2']) {
$error = 2;
}
If ($_POST['oldpass'] <> $oldpass) {
$error = 3;
}
}
switch($error){
case 0:
$echo 'Lösenordet har bytts.';
break;
case 1:
$echo 'Du försöker exploita systemet och ladda upp med någon annans användare, fy skäms.';
break;
case 2:
$echo 'Ditt nya lösenord överstämmer inte med varandra.';
break;
case 3:
$echo 'Ditt gamla lösenord som du angett är fel';
break;
}
?>
</span> </p>
<form name="form1" method="post" action="index.php">
<table width="61%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Byt lösenord </td>
</tr>
<tr>
<td><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><br>
Ditt gamla lösenord: <br>
<input name="oldpass" type="password" id="oldpass"></td>
</tr>
<tr>
<td>Ditt nya lösenord: </td>
</tr>
<tr>
<td><input name="newpass1" type="text" id="newpass1"></td>
</tr>
<tr>
<td>Ditt nya lösenord igen: <br>
<input name="newpass2" type="text" id="newpass2"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Byt lösenord"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
Precis som koden skriver finns det en } för mycket
while ($variable = mysql_fetch_array($result)){
$oldpass = $variable['pass'];
}} else { // HÄR!
$error = 1;
}
Såg nu att det även här står fel
If($_POST['newpass'] == $_POST['newpass2'] && $_POST['oldpass'] == $oldpass){
Och på raden du får felmeddelande så saknas en )
Ska vara:
If(($_POST['newpass'] == $_POST['newpass2']) && ($_POST['oldpass'] == $oldpass)) {
får då upp Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in d:\webhosting\upload\options\index.php on line 125
i switchen här:
$echo 'Lösenordet har bytts.';
Varför har du $ framför echo?
här kommer hela switchen:
switch($error){
case 0:
$echo 'Lösenordet har bytts.';
break;
case 1:
$echo 'Du försöker exploita systemet och ladda upp med någon annans användare, fy skäms.';
break;
case 2:
$echo 'Ditt nya lösenord överstämmer inte med varandra.';
break;
case 3:
$echo 'Ditt gamla lösenord som du angett är fel';
break;
}
red/ glöm detta om du läste det, det var jag som läste din kod fel ;)
Melea skrev:
Precis som koden skriver finns det en } för mycket
while ($variable = mysql_fetch_array($result)){ $oldpass = $variable['pass']; }} else { // HÄR! $error = 1; }
Nej, den andra hakparentesen tillhör ju if-satsen, så den ska vara kvar.
hehe, okej... men han inte läsa vad du hade skrivit...
FunTrix skrev:
här kommer hela switchen:
Ta bort $ framför dina echo i switchen, annars gör du ju en varibel av echo.
men även om jag låter hakparantesen vara kvar så har jag fortfarande felet på rad 125 i switchen med bytt lösenord.
FunTrix skrev:
hehe, okej... men han inte läsa vad du hade skrivit...
Jag läste lika fel som Melea.
Du bör nog skriva din kod lite tydligar, så är den lättare att läsa, även för dig själv.
t.ex
if (mysql_num_rows($result) == 0) {
while ($variable = mysql_fetch_array($result)) {
$oldpass = $variable['pass'];
}
} else {
$error = 1;
}
tack... tror att det ska fungera nu.. .ska bara fixa lite med några sessioner först, nu får jag inga error på sidan iaf :)
FunTrix skrev:
men även om jag låter hakparantesen vara kvar så har jag fortfarande felet på rad 125 i switchen med bytt lösenord.
Har du tagit bort dollartecknet framför echo?