Hoi,
Nu ik verdienlocatie 99% heb afgerond wil ik weer even verder gaan met 123portfolio, maar er is een foutje met het login systeem dat ik niet vind.
Als ik inlog dan maakt die geen session / cookie aan. Als ik een 2e keer inlog doet hij dit wel en werkt het gewoon.
Stukje header.php
En het login gedeelte :PHP Code:
<?php
/* Voor het login systeem */
$IP = $_SERVER['REMOTE_ADDR'];
$code = rand(100000,999999);
$tUpd1 = time();
$q1 = mysql_query("SELECT * FROM onthoud WHERE ip = '". $_SERVER['REMOTE_ADDR'] ."' AND tijd > ". $tUpd1 ." ORDER BY id DESC LIMIT 1");
if(mysql_num_rows($q1))
{
$klogin = mysql_fetch_assoc($q1);
$_SESSION['login'] = htmlspecialchars(mysql_real_escape_string(trim(stripslashes($klogin['username']))));
$_SESSION['port'] = $klogin['portfolionaam'];
echo '<meta http-equiv="refresh" content="0;URL=$domein/account/" />';
}
?>
Weet jij wat hier de oplossing van is, ik zit al sinds gisteren te zoeken.PHP Code:
<?php
if(!isset($_POST['submit']))
{
?>
<p>Log-in op je account om je portfolio te wijzigen</p>
<form action="" method="post">
<table border="0">
<tr><td>Gebruikersnaam:</td><td><input type="text" class="box" name="username" /></td></tr>
<tr><td>Wachtwoord:</td><td><input type="password" class="box" name="password" /></td></tr>
<tr><td>Onthoud mij <a href="#" onclick="alert('Hier word je ip adres 2 weken in onze database opgeslagen. Dit is op geen enkele manier te veranderen en als je in deze twee weken op login klikt zul je automatisch worden ingelogd!');">?</a></td><td><input type="checkbox" name="koekje" /></td></tr>
<tr><td> </td><td><input type="submit" name="submit" class="button" value="" /></td></tr>
</table>
<a href="/pwvergeten/" title="Wachtwoord vergeten">Wachtwoord vergeten?</a><br />
<a href="/registreer/" title="Registreren">Nog geen account? Maak er hier een aan!</a>
</form>
<?php
}
else
{
$username = htmlspecialchars(mysql_real_escape_string(trim($_POST['username'])));
$password = htmlspecialchars(mysql_real_escape_string(md5($_POST['password'])));
$querya = mysql_query("SELECT activated FROM users WHERE username = '". $username ."' AND password = '". $password ."' LIMIT 1") or die(Mysql_error());
$activated = mysql_fetch_object($querya);
$query['select']['valide'] = mysql_query("SELECT * FROM users WHERE username = '". $username ."' AND password = '". $password ."' LIMIT 1") or die(Mysql_error());
if(Mysql_num_rows($query['select']['valide'])) {
$query['select']['ban'] = mysql_query("SELECT * FROM users WHERE username = '". $username ."' AND password = '". $password ."' AND actief = '0' LIMIT 1") or die(Mysql_error());
if(mysql_num_rows($query['select']['ban']) > 0)
{
echo '<h2>Account uitgeschakeld</h2>
<p>De beheerder heeft er voor gekozen dit account (permanent) te blokkeren. Je kunt niet meer inloggen.</p>';
echo '<br />';
}
elseif($activated->activated == 0) {
echo '<h2>Account niet geactiveerd</h2>
<p>Jouw account is nog niet geactiveerd, je dient je account eerst te activeren voordat je kunt inloggen.</p>';
}
else {
// Ingelogd...
$_SESSION['login'] = $username;
if(@ $_POST['koekje'])
{
$q11 = mysql_query("SELECT * FROM onthoud WHERE ip = '". $_SERVER['REMOTE_ADDR'] ."' AND username = '". $username ."' ORDER BY id DESC LIMIT 1");
$xtijdnieuw = time() + 3600*24*14; // 2 weken (de laatste 2 cijfers zijn het aantal dagen)
if(mysql_num_rows($q11))
{
mysql_query("UPDATE onthoud SET tijd=tijd+".$xtijdnieuw." WHERE ip = '". $_SERVER['REMOTE_ADDR'] ."' AND username = '". $username ."'") or die(Mysql_error());
}
else
{
mysql_query("INSERT INTO onthoud (username, ip, tijd) VALUES ('". $username ."','". $_SERVER['REMOTE_ADDR'] ."','". $xtijdnieuw ."')");
echo '<script>alert("Beste '. $username .',\n\nU heeft de functie \'onthoud mij\' ingeschakeld. Met deze functie blijft u 2 weken ingelogd, op basis van ip-adres. U kunt uw cookies dus verwijderen zonder dat er problemen optreden.\n\nDit bericht verschijnt slechts eenmalig.\n\n123Portfolio.nl");</script>';
}
}
echo '<p>U bent ingelogd! Een moment geduld a.u.b.</p>';
}
}
else
{
echo '<p>Er zijn foute inloggegevens ontvangen. Probeert u het opnieuw.<br />Klik <a href="../login/">hier</a>.<br /><br /></p>';
}
}?>
Robin
- php login probleem
-
13-07-2010, 17:50 #1
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
php login probleem
Laatst aangepast door Robin C : 13-07-2010 om 18:19
-
-
13-07-2010, 17:58 #2
- Berichten
- 492
- Lid sinds
- 16 Jaar
Niemand die gaat kijken als alles op 1 regel staat.
-
13-07-2010, 18:19 #3
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
nu staat het goed ;)
had [ code ] ipv [ php ]
-
13-07-2010, 19:10 #4
- Berichten
- 587
- Lid sinds
- 16 Jaar
Heb je zelf geprobeerd te debuggen?
- Dan komt de bug er vanzelf wel uit ;-)
-
13-07-2010, 19:14 #5
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
Dit systeem heeft eerder altijd gewerkt, alleen na het vernieuwen werkt het niet meer, daarom vraag ik hier als jullie de bug zien.
-
13-07-2010, 22:10 #6
- Berichten
- 587
- Lid sinds
- 16 Jaar
@ Robin, wat is er dan vernieuwd?
- En heb je zelf al je code bekeken & doorzocht op fouten
-
13-07-2010, 22:22 #7
- Berichten
- 61
- Lid sinds
- 17 Jaar
Ik denk dat het door het doorsturen komt. Als je inlogt op
http://sitenaam.nl
en die stuurt je door naar:
http://www.sitenaam.nl
Dan gelden de sessions en cookies en alles niet meer, omdat 'www.' wordt gezien als subdomein. Dus ik denk dat dat het is.
-
13-07-2010, 22:30 #8
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
@Dries, ik zit al sinds gistermiddag te zoeken, nog niets gevonden. Ik heb alleen de layout veranderd, meer niet. Ik zie nu net wel dat session_start(0); stond, zou dit het kunnen zijn? heb hem nu op session_start(); gezet.
Misschien willen jullie kijken als je in 1 keer kan inloggen op 123portfolio.nl met demo / demo
@m otten,
Dit probleem lijkt me vrijwel onmogelijk aangezien je door htaccess automatisch word doorgestuurd naar www
Robin
-
13-07-2010, 22:42 #9
- Berichten
- 750
- Lid sinds
- 15 Jaar
Op safari iPhone os 4 gaat wel goed met inloggen. Met welke browser test je dit?
-
13-07-2010, 22:43 #10
- Berichten
- 460
- Lid sinds
- 18 Jaar
Maak een .htaccess bestand aan en zet het volgende erin.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^123portfolio.nl
RewriteRule (.*) http://www.123portfolio.nl/$1 [R=301,L]
Elke keer als een gebruiker op je site komt dan maakt de htacces er www.123portfolio.nl van, zo heb je nooit het probleem wat je hierboven aangeeft.
Edit: Sorry las net dat Dhr Otten al deze suggestie had voorgesteld, excuseer.Laatst aangepast door Kai van Rijswijk : 13-07-2010 om 22:50
-
13-07-2010, 22:50 #11
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
Hij werkt helaas nog niet, als ik inlog dan krijg ik u bent succesvol ingelogd en word doorgestuurd naar de volgende pagina.
Dan stuurt die me door naar de accountpagina en dan krijg ik Error ! jij bent niet ingelogd.
Maar als ik een 2e keer inlog werkt die wel gek genoeg?
-
13-07-2010, 23:03 #12
- Berichten
- 750
- Lid sinds
- 15 Jaar
Nogmaal welke browser gebruik je kan een cache fout wezen, safari iPhone kan ik gewoon inloggen paar minuten geleden nog getest.
-
13-07-2010, 23:15 #13
- Berichten
- 277
- Lid sinds
- 17 Jaar
Kijk even of je sessie id's wel overeen komen. echo session_id();
-
14-07-2010, 11:38 #14
- Berichten
- 2.202
- Lid sinds
- 16 Jaar
@Raymond, ik heb dit geprobeert met FireFox en Internet Explorer 8
@lennart, ik doe zo zo controleren:
PHP Code:
if(!isset($_SESSION['login'])) {
echo 'je bent niet ingelogd!';
}else {
echo 'je bent ingelogd en al het andere dat dan op die pagina moet worden weergegeven';
}
-
14-07-2010, 12:28 #15
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Dan heb je toch een probleem met session_start(); ;-)
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic