ho preso da questo sito http://www.mtxweb.ch/php_learn/?p=389 un form di registrazione e funziona correttamente.
Ora vorrei creare un form anche di login che funzioni sulle registrazioni create in quel form.
Potete aiutarmi?
ho preso da questo sito http://www.mtxweb.ch/php_learn/?p=389 un form di registrazione e funziona correttamente.
Ora vorrei creare un form anche di login che funzioni sulle registrazioni create in quel form.
Potete aiutarmi?
Dove ti sei bloccato?
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
mi manca proprio la sezione li login una volta che mi registro devo accedere quindi come devo creare il file di login.php?
ho creato questo file di login :
<?php
include('db_config.php');
if(isset($_POST['login'])) {
$username = isset($_POST['username']) ? clear($_POST['username']) : false;
$password = isset($_POST['password']) ? clear($_POST['password']) : false;
if(empty($username) || empty($password)) {
echo 'Riempi tutti i campi.<br /><br /><a href="javascript:history.back();">Indietro</a>';
} elseif(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username LIKE '$username'")) == 0) {
echo 'Username non trovato.<br /><br /><a href="javascript:history.back();">Indietro</a>';
} else {
$password = md5($password);
$ip = $_SERVER['REMOTE_ADDR'];
if(mysql_num_rows(mysql_query("SELECT * FROM users WHERE username LIKE '$username' AND password='$password'")) > 0) {
$username = mysql_result(mysql_query("SELECT username FROM users WHERE username LIKE '$username'"), 0);
$userid = mysql_result(mysql_query("SELECT id FROM users WHERE username LIKE '$username'"), 0);
mysql_query("UPDATE users SET last_login='".time()."', last_ip='$ip' WHERE id='$userid'") or die(mysql_error());
$_SESSION['username'] = $username;
$_SESSION['userid'] = $userid;
header('Location: index.php');
}
}
} else {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<label>Username: <input type="text" name="username" required maxlength="16" /></label><br />
<label>Password: <input type="password" name="password" required maxlength="20" /></label><br />
<input type="submit" name="login" value="Accedi" />
</form>
<?php
}
?>
quando provo ad effettuare un accesso non accade nulla va in una pagina bianca e vuota (test sul mio server Locale) puoi aiutarmi
ti allego da scaricare ,lo zip con tutto il mio form di registrazione che puoi visualizzare
http://www.alessiobiscotto.com/scaricare.html
Se per caso il lavoro richiede troppo tempo, contattatmi e ci metteremo d'accordo x un prezzo
info@alessiobiscotto.com
questo è il mio DATABASE:
-- phpMyAdmin SQL Dump
-- version 4.4.9
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Creato il: Lug 28, 2015 alle 10:26
-- Versione del server: 5.5.42
-- Versione PHP: 5.6.10
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `miodb`
--
-- --------------------------------------------------------
--
-- Struttura della tabella `users`
--
CREATE TABLE `users` (
`id` int(4) NOT NULL,
`username` varchar(20) NOT NULL,
`email` varchar(60) NOT NULL,
`password` varchar(50) NOT NULL,
`key_control` varchar(50) NOT NULL,
`ver` int(1) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
--
-- Dump dei dati per la tabella `users`
--
INSERT INTO `users` (`id`, `username`, `email`, `password`, `key_control`, `ver`) VALUES
(1, 'bisco11', 'susylove87@live.it', 'a0a3913e79d9cb716f5bcdaebd2456b1', 'WwsYaq24k5s3xRG9HKU0PPzYhajTXWHpoZloJfKw', 0),
(2, 'mariogardini', 'mariogardini@gardini.it', 'e10adc3949ba59abbe56e057f20f883e', 'OHPp4B0XQ1yC38pCqDGHPHxhOFnxt9udHEsEGn4x', 0);
--
-- Indici per le tabelle scaricate
--
--
-- Indici per le tabelle `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT per le tabelle scaricate
--
--
-- AUTO_INCREMENT per la tabella `users`
--
ALTER TABLE `users`
MODIFY `id` int(4) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=3;
Ultima modifica di bisco11; 28-07-2015 a 10:27
Perchè nella query usi LIKE anzichè = ?
Comunque ho modificato leggermente il tuo script in quanto non avevo tempo/voglia di utilizzare il tuo script.. a me così funziona...
Mancava un ELSE nel caso non trovi l'accoppiamento user - password
Codice PHP:
<?php
ERROR_REPORTING(E_ALL);
function clear($clear){
return $clear;
}
if(isset($_POST['login'])) {
$username = isset($_POST['username']) ? clear($_POST['username']) : false;
$password = isset($_POST['password']) ? clear($_POST['password']) : false;
if(empty($username) || empty($password)) {
echo 'Riempi tutti i campi.<br /><br /><a href="javascript:history.back();">Indietro</a>';
} else {
//$password = md5($password);
$ip = $_SERVER['REMOTE_ADDR'];
if($username == "olo" && $password == "lol") {
$_SESSION['username'] = $username;
$_SESSION['ip'] = $ip;
header('Location: index.php');
}else{
header('Location: error.php');
}
}
} else {
echo <<<EOF
<form action="{$_SERVER['PHP_SELF']}" method="POST">
<label>Username: <input type="text" name="username" required maxlength="16" /></label><br />
<label>Password: <input type="password" name="password" required maxlength="20" /></label><br />
<input type="submit" name="login" value="Accedi" />
</form>
EOF;
}
?>
eXvision
ciao, ti ringrazio per vaermi dedicato tempo.
Comunque ho sostituito il mio login.php con questo script che ha postato tu, ma non funziona, quando provo ad accedere mi apre la pagina error-defination.php tu avevi messo solo error.php.... in questo script manca il riferimento al database anke giusto?
certo, come ti avevo scritto per evitare di dover creare db ho eliminato tutti i riferimenti a mysql.
Questo per verificare che il login avvenisse correttamente.
Per gli altri file da te citati (vedi error-defination.php) non sapevo neanche dell'esistenza in quanto ho guardato solo quello che hai scritto nel primo post.
Se vuoi far la prova di login, come vedi dallo script, username = olo e password = lol
Una volta che hai verificato che il tutto funziona devi riscrivere lo script reinserendo i riferimenti al db
eXvision