Hey, ik heb een probleempje met m'n editprofile script.

Waar mense zeg maar een profiel content kunne opmaken zoals leeftijd, content, origin enzoverder.

M'n view profile werkt perfect, die haalt alles van de database... Maar als ik edit profile doe, zegt ie succesvol gewijzigd, maar... er veranderd niks in de database ofzo.
Ik ben al dagen aan het kloten zeg maar... En ik vind het gewoonweg niet.
Hieronder m'n script toegevoegd.



<?php
include("headers.php");
include("menu.php");
?>
<?php
ob_start();
$passwordthatmustbesecret = "*****";
$hostthatmustbesecret = "localhost";
$usernamethatmustbesecret = "*****";
$databasethatmustbesecret = "******";
$tbl = "tz_members";
$data->login = ($_SESSION['usr']);


mysql_query(addslashes("UPDATE tz_members SET url, info, laand, age ={$data->url}, {$data->info}, {$data->laand}, {$data->age} WHERE login={$data->login}"));

print " <tr><td class=\"mainTxt\"><a href=\"profile.php?x={$data->login}\">Look at your profile</a></td></tr>\n";
if(isset($_POST['submit'])) {

$data->login = ($_SESSION['usr']);
$data->url = preg_replace('/\</','&#60;',$_POST['url']);
$data->info = preg_replace('/\</','&#60;',substr($_POST['info'],0,500000));
$data->laand = preg_replace('/\</','&#60;',substr($_POST['laand'],0,36));
$data->age = preg_replace('/\</','&#60;',$_POST['age']);
$data->url = htmlspecialchars($data->url);
$data->laand = htmlspecialchars($data->laand);
$data->age = htmlspecialchars($data->age);

print " <tr><td class=\"mainTxt\">You successfully updated your profile!</td></tr>\n";
exit;
}

$data->url = addslashes($data->url);
$data->info = addslashes($data->info);
$data->info = str_replace("\'","'",$data->info);
$data->laand = addslashes($data->laand);
$data->age = addslashes($data->age);


?>
<tr><td class="mainTxt">
<form method="post"><table align="center">
<tr><td width=100>Country:</td> <td><input type="text" name="{$data->laand}"></td></tr>
<tr><td width=100>Age:</td> <td><input type="text" name="{$data->age}"></td></tr>
<tr><td width=100>Avatar:</td> <td><input type="text" name="{$data->url}"></td></tr>
<tr><td width=100 valign="top">Profile content:<br><br>
<td><textarea name="{$data->info}" cols=30 rows=10></textarea></td></tr>
<tr><td></td> <td align="right"><input type="submit" name="submit" value="Update"></td></tr>
</table></form></td></tr></table>
Ik moet zeggen dat ik dit een heel creatieve query vind, maar deze syntax is echt helemaal nieuw voor mij:

UPDATE tz_members SET url, info, laand, age ={$data->url}, {$data->info}, {$data->laand}, {$data->age} WHERE login={$data->login}

Weet je zeker dat dit werkt?
Neej, dat is het net :p het werkt gwn ni xD
Maar ik heb al vanalles probere wijzige, tot zelfs gwn $url enz... maar werkt gwn ni xD

ervoor was het set url={data-url} etc.
Ik zou zeg maar in gewoon Nederlands (ABN) je vraag typen.
En ik zou zeg maar ook een gewone update query er van maken.
Ik mis zeg maar een foutafhandeling in je query.
Misschien al geprobeerd om te debuggen?
Nou het probleem is gewoon dat ik m'n profiel niet kan wijzigen met deze script.
Ik heb al heel veel geprobeerd. En ik heb m'n debug al geactiveerd, en krijg gwn enorm veel errors over m'n variables en dat hij geen verbinding kan maken met m'n database zeg maar.

Errors die ik te zien krijg :


Notice: Undefined variable: url in public_html/NL/editprofile.php on line 13

Notice: Undefined variable: info in public_html/NL/editprofile.php on line 13

Notice: Undefined variable: laand in public_html/NL/editprofile.php on line 13

Notice: Undefined variable: age in public_html/NL/editprofile.php on line 13

Warning: mysql_query() [function.mysql-query]: Access denied for user 'apache'@'localhost' (using password: NO) in public_html/NL/editprofile.php on line 13

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /public_html/NL/editprofile.php on line 13

Notice: Undefined variable: data in public_html/NL/editprofile.php on line 15

Notice: Trying to get property of non-object in public_html/NL/editprofile.php on line 15

Notice: Undefined variable: url in public_html/NL/editprofile.php on line 31

Notice: Undefined variable: info in public_html/NL/editprofile.php on line 32

Notice: Undefined variable: laand in public_html/NL/editprofile.php on line 34

Notice: Undefined variable: age in public_html/NL/editprofile.php on line 35

Ik geef toch duidelijk dat hij met een paswoord etc m'n database moet accesse?
Ik ben nog beetje newbie in PHP scripting. Als er iemand me kan helpen via MSN ofzo? Is misschien gemakkelijker.
Ik zou dit script gewoon weggooien en helemaal opnieuw beginnen. Dit script is een grote puinhoop. Lees eerst eens een paar basis tutorials door. Zie o.a. www.phptuts.nl
Waarom gaf je in je openingspost niet gewoon aan dat je al die errors krijgt?
Die errors zijn er niet voor niets. Die eerst dus oplossen.

Waarom op regel 4 in je script php afsluiten en direct daarna weer openen?
Gebruik een ob_start, maar programmeer gewoon goed.
Ik zie een tabel die 2x wordt afgesloten, maar nergens wordt gestart.
In je form mis je volgens mij een action.
Waarom maak je verbinding met je database?
$_POST['submit']) wordt sterk afgeraden.
Gebruik in php bij voorkeur ' en in html " --> scheelt een boel keer escapen, is overzichtelijker en kans op fouten is kleiner.
En zoals Erwin aangeeft; het is een heel creatieve manier om je query op te bouwen.

Dus: eerst netjes programmeren, fouten oplossen. Debug: controleer of er verbinding is met db, controleer of de query dat bevat dat je zou verwachten, etc. etc.

Edit: denk dat SanTHe gelijk heeft; is veel sneller/beter ;-)
Bedankt Obelix en Idefix.

Van de database connection ben ik al verlost. :p

Over die ($_POST['submit']), op de plek waar hij staat mag ik geen ' of " gebruiken, dan krijg ik een T_ fout :p

De fouten die ik nu krijg zijn


Notice: Undefined variable: data in /public_html/NL/editprofile.php on line 14

Notice: Trying to get property of non-object in /public_html/NL/editprofile.php on line 14
Kenneth De Cock op 10/12/2011 15:21:39

Notice: Undefined variable: data in /public_html/NL/editprofile.php on line 14

Notice: Trying to get property of non-object in /public_html/NL/editprofile.php on line 14


Dat slaat op deze regel.
$data->login = ($_SESSION['usr']);

Je wilt hier iets doen met een object dat niet bestaat. Verder vraag ik mij af waarom er haakjes staan om de session-var. Ook vraag ik mij af of de session wel bestaat omdat session_start() nergens te zien is.
Session start word in m'n headers.php al gestart :p

Die regel is nu aangepast en zet nu alle data-> login om naar de usernaam die de sessie gebruiker heeft.

Reageren