2014-08-29 4 views
0

Я пытаюсь записать в txt-файл из формы ... идея состоит в том, что пользователь нажимает кнопку регистрации и сохраняет файл txt и возвращается на индексную страницу.fwrite php function not writing

Это мой PHP-файл:

<?php 
      if(!empty($_POST)){ 
       $rut = $_POST['rut']; 
       $dv = $_POST['dv']; 
       $pnom = $_POST['pnom']; 
       $snom = $_POST['snom']; 
       $pape = $_POST['pape']; 
       $mape = $_POST['mape']; 
       $sex = $_POST['sex']; 
       $dir = $_POST['dir']; 
       $comu = $_POST['comu']; 
       $pais = $_POST['pais']; 
       $fono = $_POST['fono']; 
       $movil = $_POST['movil']; 
       $mail = $_POST['mail']; 
       $user = $_POST['user']; 
       $pass = $_POST['pass']; 
       $rpas = $_POST['rpas']; 

       $usuarios = fopen("usuarios.txt", "a"); 
       fwrite($usuarios, $rut); 
       fwrite($usuarios,$dv,";"); 
       fwrite($usuarios,$pnom,";"); 
       fwrite($usuarios,$snom,";"); 
       fwrite($usuarios,$pape,";"); 
       fwrite($usuarios,$mape,";"); 
       fwrite($usuarios,$sex,";"); 
       fwrite($usuarios,$dir,";"); 
       fwrite($usuarios,$comu,";"); 
       fwrite($usuarios,$pais,";"); 
       fwrite($usuarios,$fono,";"); 
       fwrite($usuarios,$movil,";"); 
       fwrite($usuarios,$mail,";"); 
       fwrite($usuarios,$user,";"); 
       fwrite($usuarios,$pass,";"); 
       fwrite($usuarios,$rpas,"\r\n"); 
       fclose($usuarios); 
      } 
?> 

И это форма HTML-файл:

<html> 
<head> 
    <title>E1Formulario</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link rel="stylesheet" type="text/css" href="diseno/diseno.css"> 
</head> 
<script language="JavaScript" src="funciones.js"></script> 
<body> 
    <form name="formulario" action="generar_txt.php" method="POST"> 
     <table border="2" align="center" width="50%"> 
      <th colspan="2">FORMULARIO DE INGRESO</th> 
      <tr> 
       <td align="left"> 
        Rut:<input name="rut" type="text" size="8"> 
        <select name="dv"> 
         <option value = 0>0</option> 
         <option value = 1>1</option> 
         <option value = 2>2</option> 
         <option value = 3>3</option> 
         <option value = 4>4</option> 
         <option value = 5>5</option> 
         <option value = 6>6</option> 
         <option value = 7>7</option> 
         <option value = 8>8</option> 
         <option value = 9>9</option> 
         <option value = K>K</option> 
        </select> 
        <br><label name="lrut" style="color:#cc0000">*(Campo Obligatorio)</label> 
       </td> 
       <td align="left">Primer Nombre:* <input name="pnom" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 

      </tr> 
      <tr> 
       <td align="left">Segundo Nombre: <input name="snom" type="text"></td> 
       <td align="left">Apellido Paterno: <input name="pape" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Apellido Materno: <input name="mape" type="text"></td> 
       <td align="left"> 
        Sexo<br> 
        Masculino <input name="sex" type="radio" value="Masculino"><br> 
        Femenino <input name="sex" type="radio" value="Femenino"> 
        <br><label style="color:#cc0000">*(Campo Obligatorio)</label> 
       </td> 
      </tr> 
      <tr> 
       <td align="left">Dirección: <input name="dir" type="text" size="50"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Comuna: <input name="comu" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">País: <input name="pais" type="text" size="15"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Teléfono: <input name="fono" type="text" size="9" onkeypress="JavaScript: return isNumber(event);"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Movil: <input name="movil" type="text" onkeypress="JavaScript: return isNumber(event);"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Email: <input name="mail" type="text" size="25"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left">Usuario: <input name="user" type="text"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
       <td align="left">Contraseña: <input name="pass" type="password"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td align="left" colspan="2">Repetir Contraseña: <input name="rpas" type="password" size="9"><br><label style="color:#cc0000">*(Campo Obligatorio)</label></td> 
      </tr> 
      <tr> 
       <td colspan="2" align="center"> 
        <input class="boton" name="reg" type="button" value="REGISTRAR" onclick="JavaScript: verificar_datos();"/> 
       </td> 
      </tr> 
     </table> 
    </form> 
</body> 

Это функция, отправить форму в файл PHP и затем поступает в индексный файл html:

Функция verificar_datos() {

var f = document.formulario; 

//Validar que el usuario ingrese todos los campos obligatorios 
if(f.rut.value === ""){ 
    alert("El Rut es un campo obligatorio!"); 
    f.rut.focus(); 
    return 0; 
} 
if(revisarRut(f.rut.value.concat(f.dv.value)) === 0){ 
    return 0; 
} 

if(f.pnom.value === ""){ 
    alert("El Nombre es un campo obligatorio!"); 
    f.pnom.focus(); 
    return 0; 
} 
if(f.pape.value === ""){ 
    alert("El Apellido Paterno es un campo obligatorio!"); 
    f.pape.focus(); 
    return 0; 
} 
if(f.sex.value === ""){ 
    alert("El Sexo es un campo obligatorio!"); 
    f.sex.focus(); 
    return 0; 
} 
if(f.dir.value === ""){ 
    alert("La Dirección es un campo obligatorio!"); 
    f.dir.focus(); 
    return 0; 
} 
if(f.comu.value === ""){ 
    alert("La Comuna es un campo obligatorio!"); 
    f.comu.focus(); 
    return 0; 
} 
if(f.pais.value === ""){ 
    alert("El País es un campo obligatorio!"); 
    f.pais.focus(); 
    return 0; 
} 

if(revisarTelefonos() === 0){ 
    return 0; 
} 

if(verificarEmail() === 0){ 
    return 0; 
} 

if(f.user.value === ""){ 
    alert("Favor ingresar su Usuario"); 
    f.user.focus(); 
    return 0; 
} 
if(f.pass.value === ""){ 
    alert("Favor Ingrese su Contraseña"); 
    f.pass.focus(); 
    return 0; 
} 
if(f.rpas.value === ""){ 
    alert("Favor repetir su contraseña en el campo repetir"); 
    f.rpas.focus(); 
    return 0; 
} 
if(f.rpas.value !== f.pass.value){ 
    alert("La Segunda Contraseña no concuerda"); 
    f.rpas.value = ""; 
    f.rpas.focus(); 
    return 0; 
} 
f.submit(); 
alert("DATOS DE USUARIO INGRESADOS EXITOSAMENTE"); 
window.location= 'index.html'; 

}

Я был бы рад, если кто-то может вести меня, потому что я думаю, что у меня есть все правильно, но я до сих пор не получить PHP писать на текстовый файл.

+0

Попробуйте добавить 'error_reporting (E_ALL); ini_set ('display_errors', 1); 'в файле' .php'. Вы должны получить сообщение об ошибке. –

+0

Вы просто предполагаете, что fopen() никогда не может потерпеть неудачу. Плохое предположение. '$ fh = fopen (...); if (! $ fh) {die ("Невозможно открыть файл"); } ' –

+0

Вы проверили разрешения папки, в которую будет записан текстовый файл? Пользователю Apache понадобятся права на запись –

ответ

0

Во-первых, добавьте последующую строку, чтобы начать вашего PHP File

error_reporting(E_ALL); 

Теперь измените следующую строку:

$usuarios = fopen("usuarios.txt", "a"); 

To:

$usuarios = fopen("usuarios.txt", "a+"); 

А + будет создайте файл, если он не существует.

И проверьте, открыт ли файл.

$ usuarios = fopen ("usuarios.txt", "a +");

if (!$usuarios) { 
    die("Could not open file"); 
} else { 
    fwrite($usuarios, $rut); 
    fwrite($usuarios,$dv,";"); 
    fwrite($usuarios,$pnom,";"); 
    fwrite($usuarios,$snom,";"); 
    fwrite($usuarios,$pape,";"); 
    fwrite($usuarios,$mape,";"); 
    fwrite($usuarios,$sex,";"); 
    fwrite($usuarios,$dir,";"); 
    fwrite($usuarios,$comu,";"); 
    fwrite($usuarios,$pais,";"); 
    fwrite($usuarios,$fono,";"); 
    fwrite($usuarios,$movil,";"); 
    fwrite($usuarios,$mail,";"); 
    fwrite($usuarios,$user,";"); 
    fwrite($usuarios,$pass,";"); 
    fwrite($usuarios,$rpas,"\r\n"); 
    fclose($usuarios); 
} 

Теперь все будет работать должным образом.

+0

Спасибо за помощь. Однако я сделал все, как вы сказали, и я до сих пор не получил файл.Я использую xampp с apache, и у меня нет проблем с разрешением, потому что когда-то я получил php для записи, но теперь как-то я не могу –

+0

Итак, сначала попробуйте создать файл. –

+0

Что вы подразумеваете под созданием файла в первую очередь? im sorry –

0

Также вы должны проверить файл «usuarios.txt» доступен на запись с вашего веб-сервера пользователя в системе, как апач или WWW-пользователь и т.д. просто проверить CHMOD файла и каталог

+0

Несколько дней назад мой PHP-код действительно работал, но теперь я сделал некоторые изменения (создайте новый php-файл и вставьте весь код там). Поэтому я думаю, что с файлом нет проблем с разрешением. –

+0

вы можете проверить php's error_log, он может дать некоторое представление о проблеме. Также может быть, вы не знаете, если вы запустите php из cli, и после этого вы запустите его с веб-сервера, и он не работает, это может быть связано с разрешениями файла и каталога, который содержит его –