Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: "unexpected $"

makeuu [31.10.2004 08:34:36]

#

Tuli tässä sellainen ongelma että koodini antaa kokoajan virheilmoituksen

Parse error: parse error, unexpected $ in /home/eekauppa/public_html/rekisteroi.php on line 48

Ja tätä kyseistä riviä ei ole, mutta sitä edellinen on, joten vika on {} merkeissä. Olen tätä yrittänyt puia jo jotain tunnin verran mutta vikaa ei löydy.

P.S. Elkää valittako mysql syntakseista tms. koska ne on phpmyadminin mukaisia.

rekisteroi.php

<?php
$dbh=mysql_connect ("localhost", "*", "*") or die (mysql_error());
mysql_select_db("salattu_kanta :P") or die (mysql_error());

if (isset($_POST["tunnus"])) {
		$kysely1 = "SELECT * FROM `kayttajat`";
		$query = mysql_num_rows(mysql_query($kysely1, $dbh)) or die (mysql_error());

		$kyssari = "SELECT * FROM `kayttajat` WHERE 1 AND `username` LIKE '".$_POST['tunnus']."'";
		$query2 = mysql_query($kyssari, $dbh) or die(mysql_error());
		$maara = mysql_num_rows($query2);

		if ($maara>0) {
			echo "Tunnus on jo käytössä";
		}
		else {
			if ($_POST['salasana'] != $_POST['salasana2']) {
				echo "Salasanat eivät ole samanlaisia!";
			}
			else {
			    if (strlen($_POST['tunnus']) <= 5) {
					echo "Tunnuksen on oltava pitempi kuin 5 merkkiä!";
				}
				else {
					if (strlen($_POST['salasana']) <= 6) {
						echo "Salasanan on oltava 6 merkkiä tai pitempi!";
					}
					else {
						$id = $query + 1;
						$kysely1 = "SELECT * FROM `kayttajat`";
						$query = mysql_query($kysely1, $dbh) or die (mysql_error());

						$query2 = "INSERT INTO `kayttajat` ( `id` , `username` , `password` , `email` , `osoite` , `toimipaikka` , postinumero` , `puh` , `nimi`, `kuvaus` )
						VALUES (
						'".$id."', '".$_POST['tunnus']."', '".md5($salasana)."', '".$_POST['email']."', '".$_POST['katuos']."', ".$_POST['asuinp']."', '".$_POST['postinro']."', '".$_POST['gsm']."', '".$_POST['kokonimi']."', ".$_POST['kuvaus'].'
						);";
						mysql_query($query2, $dbh) or die(mysql_error());
						setcookie("tunnus", $tunnari);
						setcookie("ip", $_SERVER['REMOTE_ADDR']);
						{
							header("Location: index.php");
						}
					}
				}
			}
		}
	}
}
else {
	header("Location: index.php");
}
?>

Edit: Tietääkö kukaan hyvää systeemiä millä saisi Edit+ 2:seen hyvän php-värityksen, tai jotain hyvää ohjelmaa millä voisi yksinkertaisesti tarkistaa nämä {} merkit?

jrantala [31.10.2004 08:59:40]

#

Joopa joo, koodi oli todella vaikealukuista, joten en hirveästi jaksanut etsiä virheitä.

Onkos '-merkit jossain kohdissa tahalleen `-merkkejä?

Crimson Editorissa on mm. php-koodiväritys ja sillä pystyy aika helposti tarkistamaan aaltosulkeet yms.

makeuu [31.10.2004 09:07:41]

#

Okei.. kokeilen sitä :D
Edit: ei ole tahallaan..

kenkku [31.10.2004 09:47:08]

#

<?php
$dbh=mysql_connect ("localhost", "*", "*") or die (mysql_error());
mysql_select_db("salattu_kanta :P") or die (mysql_error());

if (isset($_POST["tunnus"])) {
        $kysely1 = "SELECT * FROM `kayttajat`";
        $query = mysql_num_rows(mysql_query($kysely1, $dbh)) or die (mysql_error());

        $kyssari = "SELECT * FROM `kayttajat` WHERE 1 AND `username` LIKE '".$_POST['tunnus']."'";
        $query2 = mysql_query($kyssari, $dbh) or die(mysql_error());
        $maara = mysql_num_rows($query2);

        if ($maara>0)
            echo "Tunnus on jo käytössä";
        }
        else {
            if ($_POST['salasana'] != $_POST['salasana2'])
                echo "Salasanat eivät ole samanlaisia!";
            }
            else {
                if (strlen($_POST['tunnus']) <= 5)
                    echo "Tunnuksen on oltava pitempi kuin 5 merkkiä!";
                }
                else {
                    if (strlen($_POST['salasana']) <= 6)
                        echo "Salasanan on oltava 6 merkkiä tai pitempi!";
                    }
                    else {
                        $id = $query + 1;
                        $kysely1 = "SELECT * FROM `kayttajat`";
                        $query = mysql_query($kysely1, $dbh) or die (mysql_error());

                        $query2 = "INSERT INTO `kayttajat` ( `id` , `username` , `password` , `email` , `osoite` , `toimipaikka` , postinumero` , `puh` , `nimi`, `kuvaus` )
                        VALUES (
                        '".$id."', '".$_POST['tunnus']."', '".md5($salasana)."', '".$_POST['email']."', '".$_POST['katuos']."', ".$_POST['asuinp']."', '".$_POST['postinro']."', '".$_POST['gsm']."', '".$_POST['kokonimi']."', ".$_POST['kuvaus'].'
                        );";
                        mysql_query($query2, $dbh) or die(mysql_error());
                        setcookie("tunnus", $tunnari);
                        setcookie("ip", $_SERVER['REMOTE_ADDR']);
                        {                               // tässä on nyt jotain mätää,
                            header("Location: index.php");
                                                        //aaltosulut mutta ei ifiä? en tiedä
                                                        //mitä laittaa, mieti sitä itse
                        }
                    }
                }
else {
    header("Location: index.php");
}
?>

Korjattu koodi tässä, paitsi yhdeltä osin (katso kommentti)

makeuu [31.10.2004 10:50:21]

#

Tuo valitti ilman noitakin, mutta kokeilen tota :P

Metabolix [31.10.2004 16:43:37]

#

Eikö tuota helpottaisi, jos koko systeemin tekisi elseif-lauseilla? Muutenkaan useimpia noista aaltosuluista ei edes tarvita, kun koodia on aina vain yksi rivi (echo)

makeuu [31.10.2004 19:02:53]

#

Toteutin tämän nyt tuolla kertovalla tavallasi.
Koodi on seuraava:

<?php
$dbh = mysql_connect("localhost", "*", "*") or die (mysql_error());
mysql_select_db("*") or die (mysql_error());

if (isset($_POST["tunnus"])) {
	$tunnus = $_POST['tunnus'];
	$salasana = $_POST['salasana'];
	$salasana2 = $_POST['salasana2'];

	$kysely1 = "SELECT * FROM `kayttajat`";
	$query = mysql_num_rows(mysql_query($kysely1, $dbh)) or die (mysql_error());

	$kyssari = "SELECT * FROM `kayttajat` WHERE 1 AND `username` LIKE '".$_POST['tunnus']."'";
	$query2 = mysql_query($kyssari, $dbh) or die(mysql_error());
    $maara = mysql_num_rows($query2) or die(mysql_error());

	if($maara==0)
		echo "Tunnus on jo olemassa!";
	elseif($_POST['tunnus']<4)
		echo "Tunnuksen on oltava pitempi. (Kuin 4 merkkiä)!";
	elseif($_POST['salasana']<6)
		echo "Salasanan on oltava pitempi. (Kuin 6 merkkiä)!";
	elseif($_POST['salasana'] != $_POST['salasana2'])
		echo "Salasanat eivät ole samanlaisia!";
	else {
		$id = $query + 1;
		$kysely1 = "SELECT * FROM `kayttajat`";
		$query = mysql_query($kysely1, $dbh) or die (mysql_error());

		$query2 = "INSERT INTO `kayttajat` ( `id` , `username` , `password` , `email` , `osoite` , `toimipaikka` , postinumero` , `puh` , nimi`, `kuvaus` )
		VALUES (
		'".$id."', '".$_POST['tunnus']."', '".md5($salasana)."', '".$_POST['email']."', '".$_POST['katuos']."', ".$_POST['asuinp']."', '".$_POST['postinro']."', '".$_POST['gsm']."', '".$_POST['kokonimi']."', ".strip_tags($_POST['kuvaus'], '<i><b>').'
		);";
		mysql_query($query2, $dbh) or die("Ongelmia rekisteröinnissä (".mysql_error()."), ilmoita ylläpitäjälle!");
		header("Location: index.php");
}
else {
	header("Location: index.php");
}
?>

Mutta siltikään ei toimi :(
Edit: Samaa "Parse error: parse error, unexpected $ in /*.php on line 42" virhettä tulee..

Edit2: Sain toimii :)))) jeee

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta