Probleem met PHP/MYSQL

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ken DC

Ken DC

10/12/2011 14:22:01
Quote Anchor link
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.



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
  include("headers.php");
  include("menu.php");
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?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>
 
PHP hulp

PHP hulp

24/12/2024 18:51:09
 
Erwin H

Erwin H

10/12/2011 14:46:00
Quote Anchor link
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?
 
Ken DC

Ken DC

10/12/2011 14:49:14
Quote Anchor link
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.
 
Obelix Idefix

Obelix Idefix

10/12/2011 14:57:57
Quote Anchor link
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?
 
Ken DC

Ken DC

10/12/2011 15:02:23
Quote Anchor link
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.
 
- SanThe -

- SanThe -

10/12/2011 15:07:57
Quote Anchor link
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
 
Obelix Idefix

Obelix Idefix

10/12/2011 15:13:48
Quote Anchor link
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 ;-)
Gewijzigd op 10/12/2011 15:14:21 door Obelix Idefix
 
Ken DC

Ken DC

10/12/2011 15:21:39
Quote Anchor link
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
 
- SanThe -

- SanThe -

10/12/2011 15:28:28
Quote Anchor link
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.
Gewijzigd op 10/12/2011 15:28:41 door - SanThe -
 
Ken DC

Ken DC

10/12/2011 15:34:19
Quote Anchor link
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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.