Ik heb dit gemaakt zodat ik voor mijn vrienden/familie een email adres kan aanmaken, echter krijg ik nog een foutmelding;

Parse error: syntax error, unexpected T_ELSE in D:\wamp\www\beta\index.php on line 22



<html>
<head>
  <title>Aanvraag email V1.0</title>
</head>
<body>
<font size="3"><b><i>Aanvraag email Beta:</i></b></font><BR><BR>
<?php
mysql_connect("localhost", "", "") or die(mysql_error());
mysql_select_db("messenger") or die(mysql_error());

$opslaan="INSERT INTO `gegevens` ( `` , `$emailadres` , `$password` )";
$emailadres=$_POST['emailadres'];
$password=$_POST['password'];
$submit=$_POST['submit'];
if(isset($submit)&& $emailadres !="" and $password !=""){
   if ($opslaan){
           echo 'Bezig met aanmelden<BR><BR>Klik <a href="">hier</a> om verder te gaan.';
   }
   else{
           echo 'Kan niet aanmelden, probeer het opnieuw.';
}
else{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table>
<TR><TD>E-mailadres:</TD><TD><input type="text" name="emailadres">*</TD></TR>
<TR><TD>Password:</TD><TD><input type="password" name="password">*</TD></TR>
<TR><TD></TD><TD><input type="submit" name="submit" value="Aanmelden"></TD></TR>
</table>
</form>
<?php
}
?>



</body>
</html>


zou dit zo kunnen, wat is er verkeerd aan?

databast tabellen heb ik:
id, emailadres, password
(password niet gecodeerd anders valt het niet te zien om email aan te maken.)
Wat in elk geval verkeerd is, is het gebruik van backtics ` in je queries. Gooi die zooi er eerst eens even uit.

De isset($submit) zal in jouw code altijd een TRUE opleveren omdat je de regel daarvoor de variabele $submit hebt aangemaakt... Regels 12 t/m 14 (aanmaken variabelen) is onverstandig en zinloos: Het kost extra geheugen, voegt niets toe en levert je nu een bug op.

Nu het probleem:
Tussen regel 21 en 22 hoort nog een extra } te staan. Wanneer je op de juiste manier zou inspringen, had je dit kunnen zien.
oke na dit weg gewerkt te hebben, weet je hoe ik dit kan oplossen;


   if (INSERT INTO gegevens VALUES (  , $_POST['emailadres'] , $_POST['password'] );){


de strings.
Wat valt er op te lossen? Wat is het probleem? En waarom staan de php-code en SQL lukraak door elkaar?

mysql_query("INSERT INTO

        tabel

            SET

        iets = '".$iets."',
        nogiets = '".$nogiets."'

") or trigger_error(mysql_errori()):


zat een klein foutje in

GR. mebus

<?php
mysql_connect("localhost", "", "") or die(mysql_error());
mysql_select_db("messenger") or die(mysql_error());

if(isset($_POST['submit'])&& $_POST['emailadres'] !="" and $_POST['password'] !=""){
   if (INSERT INTO gegevens VALUES (  , $_POST['emailadres'] , $_POST['password'] );){
           echo 'Bezig met aanmelden<BR><BR>Klik <a href="">hier</a> om verder te gaan.';
   }
   else{
           echo 'Kan niet aanmelden, probeer het opnieuw.';
           }
   }
else{
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table>
<TR><TD>E-mailadres:</TD><TD><input type="text" name="emailadres">*</TD></TR>
<TR><TD>Password:</TD><TD><input type="password" name="password">*</TD></TR>
<TR><TD></TD><TD><input type="submit" name="submit" value="Aanmelden"></TD></TR>
</table>
</form>
<?php
}
?>


zo is het nu, hoe moet ik het dan doen, niet met een variabel ofzo.!?
(INSERT INTO gegevens VALUES ( , $_POST['emailadres'] , $_POST['password'] );)

Hoe had je dit in gedachten dan, die insert query is MySQL, ga je daar eens in verdiepen, dit kan NOOIT op deze manier.
Robert schreef op 01.10.2006 16:46
(INSERT INTO gegevens VALUES ( , $_POST['emailadres'] , $_POST['password'] );)

Hoe had je dit in gedachten dan, die insert query is MySQL, ga je daar eens in verdiepen, dit kan NOOIT op deze manier.


anders had ik ook geen foutmelding gehad, als het wel kon, ik moest niet met variabelen werken werd er gezegd, dus hoe moet het nu wel?

das de vraag?
Basiskennis SQL: Een string moet tussen quotes staan.

Vraagje: Waar zijn jouw quotes?
Antwoord: vergeten...

Vraagje: Waar voer je de query uit?
Antwoord: nergens...

Oplossing: Zie de tutorials en ga je verdiepen in het gebruik van een database.

Edit: Zie http://www.phphulp.nl/php/tutorials/3/52/

Dit is echt basiskennis, dat ga ik niet nogmaals uitleggen, het staat uitstekend beschreven in de diverse tutorials en de handleiding van PHP op www.php.net
Daarom zeg ik ook dat je je eerst in MySQL moet gaan verdiepen..

--> Heb je wel beschikking over een MySQL database?
Zo ja:
--> Is er wel verbinding gemaakt met je database? (ik zie daar nergens wat van terug)
--> Het werkt zo:

<?php
// eerst maak je de verbinding

// vervolgens ga je de query in een variabele zetten (rechtstreeks uitvoeren kan ook, maar niet zo netjes)
$query="INSERT INTO gegevens VALUES ('' , '".$_POST['emailadres']."' , '".$_POST['password']."' )";
// en om de query uit te voeren: (hier kan je eventueel die if die daar staat ook omheen zetten)
mysql_query($query);
?>

Reageren