• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

parse error, unexpected T_ELSE

Status
Für weitere Antworten geschlossen.

dennis684

Neues Mitglied
hallo^^
ich habe ein kleines problem...^^
hier der code:
PHP:
<?php
  $name = $_POST["name"];
  $pw = $_POST["pw"];
$abfrage = "SELECT ".$name." FROM accounts";
$ergebnis = mysql_query($abfrage);
if($ergebnis == "$name");
{
echo "Diesen namen gibt es berreits bitte wähle einen anderen!";
}
else
{
$eintrag = "INSERT INTO accounts (name, password) VALUES ('$_POST['name']', '$_POST['pw']')";
$eintragen = mysql_query($eintrag);
echo "dein name und dein passwort wurden gespeichert! du kannst dich nun einloggen;)";
}
?>
beim aufrufen der seite kommt dan folgender fehler:
PHP:
Parse error:  parse error, unexpected T_ELSE in /homepages/9/d26680264/htdocs/mein neuer testordner/anmeldung1.php on line 33
ich habe jetzt das formular was in den zeilen davor ist weggelasen;)
 
Du musst deine Daten erst in einen Array packen, bevor du abfragst, ob $name schon vorhanden ist:
PHP:
<?php
  $name = $_POST["name"];
  $pw = $_POST["pw"];
$abfrage = "SELECT ".$name." FROM accounts";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis)) 
if(in_array($name, $row)
{
echo "Dein Benutzername ist schon vergeben!";
} else {
 
okayO.o
danke^^

-edit-
hab das mal so geändert^^
jetzt kommt dieser fehler:

Parse error: parse error, unexpected '{' in /homepages/9/d26680264/htdocs/mein neuer testordner/anmeldung1.php on line 31

der code jetzt:
PHP:
<?php
  $name = $_POST["name"];
  $pw = $_POST["pw"];
$abfrage = "SELECT ".$name." FROM accounts";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_array($ergebnis))
if(in_array($name, $row)
{
echo "Dein Benutzername ist schon vergeben!";
} else { 
$eintrag = "INSERT INTO accounts (name, password) VALUES ('$_POST['name']', '$_POST['pw']')";
$eintragen = mysql_query($eintrag);
echo "dein name und dein passwort wurden gespeichert! du kannst dich nun einloggen;)";
}
?>
 
Logisch!
Das muss man nicht so abprüfen, sondern mit mysql_num_rows().
So:
PHP:
<?php
$name = $_POST["name"];
$pw = $_POST["pw"];

$abfrage = "SELECT name FROM accounts WHERE Name = '".$name."'"; // So muss das aussehen.
$ergebnis = mysql_query($abfrage) OR die(mysql_error());

if($ergebnis < mysql_num_rows($ergebnis)); // Prüfen, ob der Name existiert.
{
// Wenn ja, meldung geben:
echo "Dieser Name existiert bereits. Bitte wähle einen anderen Namen.";
}
else // Wenn nein
{
// Eintragen
$eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
$eintragen = mysql_query($eintrag) OR die(mysql_error()); // Immer OR die() verwenden, damit du bei Fehlern weisst, wo dass der ist.
echo "dein Name und dein Passwort wurden gespeichert! Du kannst dich nun einloggen. ;)";
}
?>
MfG, matibaski

edit:
@ The Shadow, wieso so kompliziert?
 
Na ja, ich verstehe deine Lösung nicht ganz.
Meins war ja auch nur ein Ansatz, wie man es machen kann, aber wenn deins auch funktioniert natürlich einfacher.;)
 
habe jetzt mal den code übernommen...
jetzt kommt wieder dieser fehler:

Parse error: parse error, unexpected T_ELSE in /homepages/9/d26680264/htdocs/mein neuer testordner/anmeldung1.php on line 35
 
Poste mal den gesamten Code, mit Formular.
Hast du nur diesen PHP Code drin, oder nich noch andere?


MfG, matibaski
 
PHP:
<html>



hallo liebe user!
hier könnt ihr euch nun endlich auch anmelden!
aber bitte beachtet das diese anmeldung von mir geschrieben wurde und noch im aufbau ist!
deshalb nutzt fehler bitte nicht aus sondern schickt diese an [email protected]!
danke!
<br>
<br>
<br>


<form action="anmeldung2.php" method="post">
name:<input type="text" size="17" name="name">
<br>
passwort:<input type="text" size="17" name="passwort">
<br>
<center><input type="submit" value="OK"></center>
</form>


      <?php
$name = $_POST["name"];
$pw = $_POST["pw"];

$abfrage = "SELECT name FROM accounts WHERE Name = '".$name."'";
$ergebnis = mysql_query($abfrage) OR die(mysql_error());

if($ergebnis < mysql_num_rows($ergebnis));
{
echo "Dieser Name existiert bereits. Bitte wähle einen anderen Namen.";
}
else
{

$eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
$eintragen = mysql_query($eintrag) OR die(mysql_error());
echo "dein Name und dein Passwort wurden gespeichert! Du kannst dich nun einloggen. ;)";
}
?> 





</html>
 
PHP:
<html><!--Doctype angeben-->
<head>
<title>Blabla</title>
</head>

<body>
<?php
if(!isset($_POST['register'])) // Prüfen, ob schon das Formular abgeschickt wurde
{
// Wenn nicht, Formular ausgeben
echo' 
hallo liebe user!
hier könnt ihr euch nun endlich auch anmelden!
aber bitte beachtet das diese anmeldung von mir geschrieben wurde und noch im aufbau ist!
deshalb nutzt fehler bitte nicht aus sondern schickt diese an [email protected]!
danke!
<br />
<br />
<form action="anmeldung2.php" method="post" name="register">
name:<input type="text" size="17" name="name">
<br>
passwort:<input type="text" size="17" name="passwort">
<br>
<input type="submit" value="OK" name="register">
</form>
';
}
elseif(!isset($_POST['name']) || !isset($_POST['passwort'])) // Wenn doch was mit Formular geschickt worden ist, prüfen ob beide Felder ausgefüllt worden sind.
{
 // Wenn nicht, error ausgeben.
 die("Bitte füllen Sie beide Felder aus");
}
else
{
 $name = $_POST["name"];
 $pw = $_POST["pw"];

 $abfrage = "SELECT name FROM accounts WHERE Name = '".$name."'";
 $ergebnis = mysql_query($abfrage) OR die(mysql_error());

 if($ergebnis < mysql_num_rows($ergebnis));
 {
  echo "Dieser Name existiert bereits. Bitte wähle einen anderen Namen.";
 }
 else
 {
  $eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
  $eintragen = mysql_query($eintrag) OR die(mysql_error());
  echo "dein Name und dein Passwort wurden gespeichert! Du kannst dich nun einloggen. ;)";
 }
?>
</body>
</html>
So muss das aussehen.
PHP kann doch nix eintragen, wenn nix geschickt worden ist.
Ich habe dir noch eine Überprüfung gemacht, ob beide Felder ausgefüllt worden sind.


MfG, matibaski
 
es kommt wieder:

Parse error: parse error, unexpected T_ELSE in /homepages/9/d26680264/htdocs/mein neuer testordner/anmeldung1.php on line 45

:(
 
LoL, ein leichtisinnigkeitsfehler von dir, und von mir nicht gesehen worden:
PHP:
 if($ergebnis < mysql_num_rows($ergebnis)) // Hier war ein ;
MfG, matibaski
 
ok der fehler ist gelöst doch jetzt komt wieder einer...:


Parse error: parse error, unexpected $ in /homepages/9/d26680264/htdocs/mein neuer testordner/anmeldung1.php on line 53
 
Der Error gibt aus, dass du eine nicht geschlossene oder nicht bestimmte Variable hast.
Ich finde aber keine.

Vielleicht findet sie jemand anders.


MfG, matibaski

edit:
Wir sind sowieso nicht da, um dir alles zu machen.
Probiere mal aus! Du bekommst nicht alles im Leben einfach so vor die Füsse gelegt !
 
Also einmal wurde else nicht schlossen!

PHP:
 if($ergebnis < mysql_num_rows($ergebnis));
 {
  echo "Dieser Name existiert bereits. Bitte wähle einen anderen Namen.";
 }
 else
 {
  $eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
  $eintragen = mysql_query($eintrag) OR die(mysql_error());
   // ...
   //wird nicht geschlossen
Sorry wenn ich mich täusche aber des dürfte der Fehler sein
MfG
BodyAndSoul
 
else ist aber geschloßen^^
nach
PHP:
$eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
  $eintragen = mysql_query($eintrag) OR die(mysql_error());

kommt noch
PHP:
  echo "dein Name und dein Passwort wurden gespeichert! Du kannst dich nun einloggen.";
}
^^
 
So wie ich das sehe hat bodyandsoul Recht.
Du öffnest hier
PHP:
{
$name = $_POST["name"];
$pw = $_POST["pw"];
ein else und schliesst es nicht, denn
PHP:
echo "dein Name und dein Passwort wurden gespeichert! Du kannst dich nun einloggen.";
}
schliesst dieses else:
PHP:
 else
{
  $eintrag = "INSERT INTO accounts (name, password) VALUES ('".$name."', '".$pw."')";
  $eintragen = mysql_query($eintrag) OR die(mysql_error());
Also fehlt dir ein } am Ende des Scripts.
 
Hab nicht alles gelesen, aber wie wäre es einfach so:

PHP:
if ($res = mysql_query("SELECT `id` FROM `_user` WHERE `name` = ".$name.";")) {

  echo "Diesen Namen gibt es bereits.";

}
else {

  echo "Der Name kann verwendet werden.";

}

matibaski schrieb:
<html><!--Doctype angeben-->
<head>
<title>Blabla</title>
</head>

Matibaski, der Doctype muss vor <html>!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben