php onthoud geen variabelen...:S

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Tjerk Vroon

Tjerk Vroon

02/01/2006 13:35:00
Quote Anchor link
Kan iemand vertellen wat ik fout heb in het volgende script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?

require("config.php");

// Verwijder deze comment en de onderstaande regel als je een eigen stylesheet gebruikt...
echo "<link rel=\"stylesheet\" content=\"text/css\" href=\"style.css\">";

if(!$_POST['submit']){
?>

Velden met een * zijn verplicht...
<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $PHP_SELF ?>
">
<input type="hidden" name="submit" value="1">
Naam:<br>
<input type="text" name="naam" size="30"> *<br>
Email adres:<br>
<input type="text" name="email" size="30"> *<br>
Homepage:<br>
<input type="text" name="homepage" size="30" value="http://"><br>
Woonplaats:<br>
<input type="text" name="woonplaats" size="30"><br>
Geboortedatum ( dd-mm-jjjj ):<br>
<input type="text" name="geb1" size="2" maxlength="2"> -
<input type="text" name="geb2" size="2" maxlength="2"> -
<input type="text" name="geb3" size="4" maxlength="4"><br>
Hobby's:<br>
<textarea name="hobbys" rows="3"></textarea><br>
Favo drankje(s):<br>
<input type="text" name="drank"><br>
Favo artiest(en):<br>
<input type="text" name="artiest"><br>
Favo film:<br>
<input type="text" name="film"><br>
Geslacht:<br>
<select size="1" name="geslacht">
<option value="Man">Man</option>
<option value="Vrouw">Vrouw</option>
<option value="Weet ik niet">Weet ik niet</option>
</select><br>
Relatie:<br>
<select size="1" name="relatie">
<option value="1">Ja</option>
<option value="0">Nee</option>
</select><br>
Privé- berichten:<br>
<select size="1" name="pm">
<option value="1">Aan</option>
<option value="0">Uit</option>
</select><br>
<br>
Gewenste gebruikersnaam:<br>
<input type="text" name="gebruikersnaam" size="25"> *<br>
Wachtwoord:<br>
<input type="password" name="wachtwoord" size="12" maxlength="12"> *<br>
Wachtwoord [ bevestig ]:<br>
<input type="password" name="wachtwoord2" size="12" maxlength="12"> *<br>
<input type="submit" value="Aanmelden"> <input type="reset" value="Wis velden"></p>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
}
else{
$query = mysql_query("SELECT * FROM members WHERE gebruikersnaam = '$gebruikersnaam'");
$result = mysql_num_rows($query);

if($result){

?>


Deze gebruikersnaam is al in gebruik<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?
}
else{
if($naam AND $email AND $gebruikersnaam AND $wachtwoord){

if($wachtwoord!=$wachtwoord2){
echo "De wachtwoorden zijn niet gelijkt aan elkaar";
}

else{
$geboortedatum = "$geb1-$geb2-$geb3";

$tekens=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$activeringscode;
for($c = 0; $c < 12; $c++){
srand((double)microtime() * 100000000000000);
$pass = $tekens[rand(0, 62)];
$activeringscode=$activeringscode.$pass;
}


if($actmail=="1"){
$activeringscode = 0;
}

elseif($actmail=="2"){
$activeringscode = 1;
}


mysql_query("INSERT INTO members (gebruikersnaam,wachtwoord,naam,email,homepage,geboortedatum,woonplaats,favodrankje,favoartiest,favofilm,hobbys,geslacht,relatie,geactiveerd,pm) VALUES ('$gebruikersnaam','$wachtwoord','$naam','$email','$homepage','$geboortedatum','$woonplaats', '$drank', '$artiest','$film','$hobbys','$geslacht','$relatie','$activeringscode','$pm')") or die(mysql_error());

$bericht = "Via onze website heb jij (als het goed is) een aanmeldingsformulier ingevuld waarmee je een lid van onze
website wordt, als dit niet het geval is kun je dit mailtje het beste verwijderen.\n\nAls je je wel wilt aanmelden voor een
account op onze website moet je op de onderstaande url klikken om je account te activeren:\n\n
<a href=\"$script_url/activeer.php?activate=$activeringscode\">$script_url/activeer.php?activate=$activeringscode</a>\n\nMet vriendelijke groet
Webmaster $webmaster_url"
;

if($actmail=="1"){
mail("$webmaster_email","Activeer nu je account $naam !","$bericht");
echo "De aanmelding is succesvol gelukt, er word nu een mailtje verstuurd aan <b>$email</b> waarin de activerings url staat...";
}

elseif($actmail=="2"){
echo "Je account is geactiveerd, je kunt nu inloggen...";
}

else{
echo "De aanmelding is gelukt, het is nu aan de webmaster om te beslissen of hij/zij je accepteerd als member van deze website...";
}
}
}

else{

print 'Je hebt niet alle verplichte velden ingevuld...<br><br>
<a href="javascript:history.go(-1)">Ga terug</a>'
;

}
}
}

print "<br><br><a href='index.php'>Terug</a>";
?>



Dit script word uitgevoerd op http://mail.dhawis.nl/aanmelden.php
 
PHP hulp

PHP hulp

29/04/2024 07:25:58
 
Pieter Boussaer

Pieter Boussaer

02/01/2006 13:38:00
Quote Anchor link
Welke foutmelding geeft hij?
 

02/01/2006 13:40:00
Quote Anchor link
helemaal geen, dat is het probleem
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2006 13:40:00
Quote Anchor link
Wat is nou je probleem? ik zit hier niet 24/7 om voor iedereen scriptjes te debuggen die ze niet zelf gemaakt hebben...

Wat gebeurd er als je error reporting op all zet?
 

02/01/2006 13:42:00
Quote Anchor link
error report staat al op all, en hij geen geen error terug, zoals je kan zien als je de pagina bekijkt.

http://mail.dhawis.nl/aanmelden.php
 
Pieter Boussaer

Pieter Boussaer

02/01/2006 13:43:00
Quote Anchor link
je zegt dat je een probleem hebt met dit script maar je zegt er niet bij welk probleem.
Wij hebben niet altijd zoveel tijd om heel je script na te kijken op fouten.

als je zegt wat je probleem is kunnen we het sneller vinden.
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2006 13:44:00
Quote Anchor link
Je kan items uit een formulier niet simpelweg aanroepen met '$gebruikersnaam'.

Dat moet zijn: $_POST['gebruikersnaam'];
Gewijzigd op 02/01/2006 14:02:00 door Arjan Kapteijn
 
Pieter Boussaer

Pieter Boussaer

02/01/2006 13:44:00
Quote Anchor link
aa

hij zegt dat je niet alle verplichte velden hebt ingevuld. Maar ik heb alle velden met een * ingevuld.

Dus daar zit het probleem
 

02/01/2006 13:45:00
Quote Anchor link
zodra ik het form heb ingevuld, op submit druk,
heeft het script de waarden niet meer in de variabelen staan. hierdoor kan het niet doorgestuurd worden naar de db
op het moment dat je alles invult, dan geeft hij aan dat het niet het geval is.

helaas kan ik het niet duidelijker omschrijven
 
Erik Rijk

Erik Rijk

02/01/2006 13:45:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$_SERVER['PHP_SELF'] ?>


zo zijn er allemaal kleine dingetjes die wel beter kunnen
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2006 13:50:00
Quote Anchor link
En die variabelen staan er niet, omdat die er nooit gestaan hebben..

Je kan items uit een formulier niet simpelweg aanroepen met '$gebruikersnaam'.

Dat moet zijn: $_POST['gebruikersnaam'];
Gewijzigd op 02/01/2006 14:01:00 door Arjan Kapteijn
 
Robert Deiman

Robert Deiman

02/01/2006 13:50:00
Quote Anchor link
Arjan:
Je kan items uit een formulier niet simpelweg aanroepen met '$gebruikersnaam'.

Dat moet zijn: $_POST['$gebruikersnaam'];


Dit al geprobeerd dan?
 
Pieter Boussaer

Pieter Boussaer

02/01/2006 13:52:00
Quote Anchor link
moet het niet zo zijn

<input type="text" name="gebruikersnaam" size="25">

$_POST['gebruikersnaam'];
 
Robert Deiman

Robert Deiman

02/01/2006 13:58:00
Quote Anchor link
@Pieter, je bent te laat :P Haha, Arjan was eerst.. :)
 
Pieter Boussaer

Pieter Boussaer

02/01/2006 14:00:00
Quote Anchor link
ja maar arjan had denk ik een typ fout

hij had
$_POST['$gebruikersnaam'];

en die $ moet er niet staan denk ik
 
Robert Deiman

Robert Deiman

02/01/2006 14:07:00
Quote Anchor link
Oké, niet goed gelezen.. Sorrysorrysorry :P, maar je hebt gelijk ;)
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2006 14:09:00
Quote Anchor link
Pieter heeft overigens gelijk hoor, heb de var gekopierd en er POST voor gezet, en vergeten de $ weg te halen.

Maargoed, punt lijkt me duidelijk :).
 
Tjerk Vroon

Tjerk Vroon

02/01/2006 14:10:00
Quote Anchor link
Geprobeer en niks opgeleverd, hij stuurt nog steeds niks door...
 
Arjan Kapteijn

Arjan Kapteijn

02/01/2006 14:17:00
Quote Anchor link
Je moet het wel overal aanpassen ey... niet enkel die gebruikersnaam...

Je heb het ook over een $actmail, ik weet nite wat dat is... maar ik ga er van uit dat er ergens nog een mail() moet staan.
 
Frank -

Frank -

02/01/2006 14:19:00
Quote Anchor link
error_reporting(E_ALL); had dit probleem met superglobals al lang moeten aangeven. Wanneer $gebruikersnaam niet bestaat, krijg je daar keurig een notice van. Het kan zijn dat de hostingprovider de instellingen heeft aangepast zodat E_ALL niet werkt, maar daar is ook een functie voor:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 1 = aan, 0 = uit
error_reporting(E_ALL);

echo $var; // Hier krijg je een notice van
?>


error_reporting() hoort altijd bovenaan je script te staan.
 
Tjerk Vroon

Tjerk Vroon

02/01/2006 14:28:00
Quote Anchor link
Frank: Ik host zelf, en ik heb juist E_ALL aanstaan in mijn php.ini

Arjan: het klopt dat er in een ander bestand nog een mail() staat, maar die functie heb ik niet ingeschakeld staan. Dus die doet niet ter zake.

Ik ga wel ff kijken of ik een ander script kan vinden wat het wel doet, want volgens mij heb ik iets in de instellingen verkeerd staan.
 

Pagina: 1 2 volgende »



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.